Sunucu yalnızca kendi (leaf) sertifikasını gönderip ara sertifikayı (intermediate) atladığında, bazı istemciler zinciri kuramaz. Masaüstü tarayıcılar çoğu zaman eksik halkayı AIA (Authority Information Access) alanındaki adresten indirerek sorunu gizler; curl, Java, Android uygulamaları ve API istemcileri ise genelde bunu yapmaz.
Nasıl fark edilir?
- Masaüstü Chrome'da kilit simgesi yeşil, ama mobil uygulama veya entegrasyon bağlanamıyor.
- curl:
(60) SSL certificate problem: unable to get local issuer certificate - Java:
PKIX path building failed openssl s_client -showcertsçıktısında yalnızca tek sertifika listelenir.
Doğru zinciri hazırlama
Zincir sırası şöyle olmalıdır: önce sizin sertifikanız, hemen ardından onu imzalayan ara sertifika, varsa bir sonraki ara sertifika. Kök sertifika dahil edilmez. CA size genellikle ayrı bir "CA bundle" dosyası verir; bunu birleştirin:
cat alanadi.crt ara-bundle.crt > fullchain.crt
Sunucuya tanıtma
nginx:
ssl_certificate /etc/ssl/fullchain.crt;
ssl_certificate_key /etc/ssl/alanadi.key;
Apache 2.4.8 ve üzeri: birleştirilmiş dosyayı SSLCertificateFile ile verebilirsiniz; eski sürümlerde ara sertifika SSLCertificateChainFile ile ayrıca tanımlanır.
IIS: ara sertifikayı "Intermediate Certification Authorities" deposuna, sertifikayı "Personal" deposuna kurun, sonra siteye bağlamayı yenileyin.
Doğrulama
openssl s_client -connect alanadi.com:443 -servername alanadi.com -showcerts
Çıktıda en az iki sertifika görmeli ve sonunda Verify return code: 0 (ok) satırını yakalamalısınız. Yapılandırmayı değiştirdikten sonra web sunucusunu yeniden yükleyin.
Sık yapılan hatalar
- Ara sertifikaları yanlış sırada birleştirmek.
- Başka bir ürünün (örneğin farklı CA'nın) ara sertifikasını kullanmak.
- Değişikliğin ardından servisi yeniden başlatmamak.
Kurulum sonrası sonucu SSL kontrol aracımızla görebilir, yeni sertifika için SSL sertifikaları sayfasına bakabilirsiniz.