Modern tarayıcılar alan adını Common Name yerine Subject Alternative Name (SAN) uzantısından doğrular. Bu yüzden birden fazla alan adını tek sertifikada toplamak ya da CN'e ek olarak SAN listesi vermek gerekir. OpenSSL ile SAN eklemenin iki yolu vardır.
Yöntem 1: Yapılandırma dosyası
san.cnf dosyasını oluşturun:
[req]
default_bits = 2048
prompt = no
default_md = sha256
distinguished_name = dn
req_extensions = req_ext
[dn]
C = TR
ST = Istanbul
L = Istanbul
O = Ornek Ltd
CN = alanadi.com
[req_ext]
subjectAltName = @alt_names
[alt_names]
DNS.1 = alanadi.com
DNS.2 = www.alanadi.com
DNS.3 = mail.alanadi.com
Ardından anahtar ve CSR'yi üretin:
openssl req -new -newkey rsa:2048 -nodes -keyout alanadi.key -out alanadi.csr -config san.cnf
Yöntem 2: Tek satırda -addext
OpenSSL 1.1.1 ve üzerinde yapılandırma dosyası olmadan da SAN verilebilir:
openssl req -new -newkey rsa:2048 -nodes -keyout alanadi.key -out alanadi.csr -subj "/C=TR/O=Ornek Ltd/CN=alanadi.com" -addext "subjectAltName=DNS:alanadi.com,DNS:www.alanadi.com"
Doğrulama
openssl req -in alanadi.csr -noout -text | grep -A1 "Alternative Name"
Listede tüm alan adlarını görmelisiniz. Anahtarı alanadi.key olarak güvenle saklayın; yalnızca CSR dosyası CA'ya gönderilir.
Dikkat edilecekler
- CA'lar genellikle alan adı listesini sipariş formundan alır; CSR'deki SAN bilgisi yok sayılabilir ya da formla karşılaştırılır. Formu ve CSR'yi tutarlı doldurun.
- CN alanındaki ad SAN listesinde de bulunmalıdır.
- Wildcard için
DNS:*.alanadi.comyazılır; kök alan adı wildcard kapsamına girmez, ayrıca eklenmelidir. - Çok alanlı (SAN/UCC) sertifikalar için ürünleri SSL sertifikaları sayfasında, wildcard için wildcard SSL sayfasında bulabilirsiniz.
Sık hatalar
En sık karşılaşılan sorun, SAN bilgisini yalnızca CN'e yazıp uzantıyı hiç eklememektir; modern tarayıcılar böyle bir sertifikayı NET::ERR_CERT_COMMON_NAME_INVALID hatasıyla reddeder. Yapılandırma dosyasında req_extensions satırının eksik olması da uzantının CSR'ye girmemesine yol açar. CSR'yi CA'ya gönderdikten sonra SAN ekleyemezsiniz; gerekiyorsa yeni CSR üretmek gerekir.
Komut yazmadan CSR üretmek isterseniz CSR oluşturucu aracını da kullanabilirsiniz.