SSL Sertifikası

Nginx SSL: no ssl_certificate is defined

Nginx 'no ssl_certificate is defined' diyorsa 443 bloğunda sertifika yönergesi eksiktir. Doğru sunucu bloğu yapısını ve kontrol komutlarını gösteriyoruz.

Nginx, listen 443 ssl; tanımlı bir sunucu bloğunda sertifika bulamadığında no "ssl_certificate" is defined for the "listen ... ssl" directive uyarısı verir. Sertifika yolu yazılmamış, yanlış bloğa yazılmış ya da yorum satırında kalmış olabilir.

Nedenler

  • İlgili server bloğunda ssl_certificate ve ssl_certificate_key yok.
  • Bu yönergeler başka bir server bloğuna ya da yanlış include dosyasına yazılmış.
  • Yapılandırma dosyası sites-enabled altına bağlanmamış, eski kopya yükleniyor.
  • Yönergenin başında yanlışlıkla # kalmış.

Doğru yapı

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name alanadi.com www.alanadi.com;

    ssl_certificate     /etc/nginx/ssl/alanadi-fullchain.crt;
    ssl_certificate_key /etc/nginx/ssl/alanadi.key;
    ssl_protocols       TLSv1.2 TLSv1.3;
}

Birden fazla alan adı aynı IP'yi kullanıyorsa her server bloğunun kendi sertifikası olmalıdır; aksi halde ilk tanımlı blok varsayılan sayılır ve diğerleri bu sertifikayla karşılanır.

Kontrol adımları

  1. Etkin yapılandırmayı birleşik görün: nginx -T | grep -n "ssl_certificate".
  2. Söz dizimini sınayın: nginx -t.
  3. Yüklemeden sonra systemctl reload nginx yapın.
  4. Dışarıdan test edin:
    openssl s_client -connect alanadi.com:443 -servername alanadi.com < /dev/null | openssl x509 -noout -subject -dates
    

Not

ssl_certificate dosyasına sunucu sertifikasının ardından ara sertifikaları da ekleyin (fullchain); eksik zincir bazı istemcilerde hata doğurur. Sertifika almadıysanız SSL sertifikaları sayfasından seçenekleri inceleyebilirsiniz.

Ek ipuçları

Varsayılan bir 443 sunucu bloğu tanımlamak istiyorsanız, onun da geçerli bir sertifikası olmalıdır; gerçek olmayan alan adları için geçici bir sertifika yerine ssl_reject_handshake on; (Nginx 1.19.4 ve sonrası) ile eşleşmeyen isteklerin el sıkışmasını reddedebilirsiniz. Böylece yanlış alan adına yanlış sertifika sunmazsınız.

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ç