Chrome, sunucunun gönderdiği sertifika baytlarını ayrıştıramadığında bu hatayı verir. Yani sorun sertifikanın güvenilirliği değil, biçimidir: dosya bozuk, yanlış kodlanmış veya yanlış türde içerik sunuluyordur.
Belirtiler
- Sayfa açılmaz ve
ERR_SSL_SERVER_CERT_BAD_FORMATgörünür. - Sunucu yapılandırması yeni değiştirilmiş veya sertifika elle kopyalanmıştır.
- Sunucu yeniden başlatma sırasında sertifikayla ilgili uyarı verebilir.
Olası nedenler
- Sertifika dosyası DER (ikili) biçimindedir, sunucu ise PEM bekler.
- PEM içeriğinde satır sonları bozulmuş,
-----BEGIN CERTIFICATE-----başlığı eksik veya metin ortasına boşluk girmiştir. - Dosyaya yanlışlıkla özel anahtar, CSR veya PKCS#7/PFX içeriği konulmuştur.
- Kopyalarken karakter kodlaması değişmiş (örneğin BOM veya Windows satır sonları).
- Zincir dosyası yanlış birleştirilmiştir.
Adım adım çözüm
Önce dosyanın geçerli bir sertifika olup olmadığını denetleyin:
openssl x509 -in sertifika.crt -noout -subject -dates
# DER ise:
openssl x509 -inform der -in sertifika.cer -out sertifika.pem
# PKCS#7 paketinden çıkarma:
openssl pkcs7 -print_certs -in paket.p7b -out zincir.pem
- Komut hata veriyorsa dosya bozuktur; CA panelinden sertifikayı yeniden indirin.
- Gerekirse DER'i PEM'e dönüştürün.
- Tam zinciri şu sırada birleştirin: önce yaprak, sonra ara sertifikalar.
cat alanadi.crt ara1.crt ara2.crt > fullchain.pem - Özel anahtarın sertifikayla eşleştiğini doğrulayın (modülüs karmaları aynı olmalı).
- Yapılandırmayı test edip yeniden yükleyin (
nginx -tveyaapachectl configtest).
Windows/IIS'te sertifikayı PFX olarak içe aktarıp siteye bağlamak çoğu zaman biçim sorunlarını ortadan kaldırır.
Önleme
- Sertifikaları e-posta gövdesinden kopyalamak yerine dosya olarak indirin.
- Sunucuya aktarırken ikili biçimi bozmayan araçlar (SFTP, scp) kullanın.
- Kurulumdan sonra SSL Checker ile sonucu doğrulayın.
Özetle bu hata bir güven sorunu değil, dosya biçimi sorunudur; openssl ile doğrulayıp doğru PEM zincirini yeniden oluşturmak çoğu durumda yeterlidir.