SSL Sertifikası

Nginx SSL: SSL_CTX_use_PrivateKey failed

Nginx, private key yüklenemediğinde SSL_CTX_use_PrivateKey hatasıyla başlamaz. Anahtar uyuşmazlığı, parola ve biçim sorunlarını burada ayıklıyoruz.

Nginx'i başlatırken veya nginx -t çalıştırırken SSL_CTX_use_PrivateKey("/etc/nginx/ssl/site.key") failed görüyorsanız, belirtilen özel anahtar ya okunamıyor ya da sertifikayla eşleşmiyor. Hatanın devamındaki OpenSSL kodu nedeni ayırt eder.

Devamındaki koda göre neden

  • key values mismatch: sertifika başka bir anahtarla üretilmiş.
  • bad decrypt / bad password read: anahtar parola ile korunuyor.
  • no start line / PEM_read_bio: dosya PEM değil ya da başlık satırı eksik.
  • Permission denied: Nginx ana süreci dosyayı okuyamıyor.

Çözüm adımları

  1. Eşleşmeyi doğrulayın (çıktılar aynı olmalı):
    openssl x509 -noout -modulus -in site.crt | openssl md5
    openssl rsa  -noout -modulus -in site.key | openssl md5
    
    EC anahtar kullanıyorsanız openssl ec -in site.key -noout -text ile anahtarı, openssl x509 -in site.crt -noout -pubkey ile genel anahtarı karşılaştırın.
  2. Parola varsa kaldırın:
    openssl rsa -in site.key -out site-nopass.key
    chmod 600 site-nopass.key
    
  3. Başlığı kontrol edin: head -1 site.key çıktısı -----BEGIN PRIVATE KEY----- veya -----BEGIN RSA PRIVATE KEY----- olmalı.
  4. Yapılandırmadaki yolları güncelleyin:
    ssl_certificate     /etc/nginx/ssl/site-fullchain.crt;
    ssl_certificate_key /etc/nginx/ssl/site-nopass.key;
    
  5. nginx -t ardından systemctl reload nginx.

Sık yapılan hata

Yenileme sonrasında yeni sertifikayı koyup eski anahtarı bırakmak en yaygın nedendir. Sertifikayı yeni bir CSR ile aldıysanız mutlaka o CSR'ın anahtarını kullanın. Yeni CSR üretmek için CSR oluşturucuyu kullanabilir, sertifikanızı yükledikten sonra SSL denetleme aracıyla sonucu teyit edebilirsiniz.

Ek ipuçları

Nginx ana süreci root olarak başladığı için anahtar dosyasını root okuyabiliyorsa izin sorunu çıkmaz; yine de chmod 600 ve sahibinin root olması güvenli bir ayardır. Sertifikayı yenilerken dosya adlarını sabit tutarsanız yapılandırmayı değiştirmeden yalnızca reload yeterli olur. Parola korumalı anahtar kullanmanız gerekiyorsa ssl_password_file yönergesini değerlendirin.

Bu makale faydalı oldu mu?

Makale Ara

Sunucu SSL Hataları

Yardıma mı İhtiyacınız Var?

Aradığınızı bulamadıysanız destek ekibimiz size yardımcı olabilir.

Destek Talebi Aç