Nginx yapılandırma sınamasında PEM_read_bio_X509_AUX() failed (SSL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE) veya benzeri bir mesaj çıkıyorsa, ssl_certificate ile gösterilen dosya Nginx'in beklediği PEM yapısında değildir.
Sık görülen nedenler
- Dosya CSR (
BEGIN CERTIFICATE REQUEST) ya da özel anahtardır; sertifika yerine yanlış dosya gösterilmiştir. - Sertifika DER/binary (.cer, .der) biçimindedir, metin değildir.
- Kopyalarken
-----BEGIN CERTIFICATE-----satırı kesilmiştir. - Dosyanın başında BOM, fazladan boşluk ya da Windows satır sonu bozulması vardır.
- Yol bir dizini gösteriyor veya dosya boş.
Teşhis ve çözüm
- İçeriğin başlığına bakın:
head -n 2 /etc/nginx/ssl/site.crt file /etc/nginx/ssl/site.crt - Dosya ikili ise PEM'e çevirin:
openssl x509 -inform der -in site.cer -out site.pem - PKCS#7 (.p7b) paketi aldıysanız:
openssl pkcs7 -print_certs -in paket.p7b -out fullchain.pem - Zinciri doğru sırayla birleştirin: önce sunucu sertifikası, sonra ara sertifikalar.
cat alanadi.crt ara.crt > alanadi-fullchain.crt - Dosyanın ayrıştığını sınayın:
openssl x509 -in alanadi-fullchain.crt -noout -subject. nginx -tardından reload.
Önleme
E-postadan veya web arayüzünden metin kopyalarken başlık ve bitiş satırlarının tam geldiğinden emin olun; mümkünse dosyayı indirerek kullanın. Kurulum sonrası zincir ve sertifika durumunu SSL denetleme aracıyla görebilir, benzer hatalar için SSL sorun giderici sayfasını deneyebilirsiniz.
Ek ipuçları
Hata mesajındaki "Expecting: TRUSTED CERTIFICATE" ifadesi yalnızca OpenSSL'in beklediği türü belirtir; asıl mesele başlık satırının bulunmamasıdır. Sertifika ve anahtar dosyalarını karıştırmamak için adlarına .crt ve .key uzantılarını tutarlı biçimde verin ve başlık satırına bakarak hangisinin hangisi olduğunu teyit edin.