Arama Yap Mesaj Gönder
Biz Sizi Arayalım
+90
X
X
X
X

Bize Ulaşın

Konum Halkalı merkez mahallesi fatih cd ozgur apt no 46 , Küçükçekmece , İstanbul , 34303 , TR
NGINX Teknik Rehberi

NGINX SSL Sertifikası Çalışmıyor: Chain, Key ve Handshake Rehberi

NGINX SSL hataları sertifika dosyasının bulunamaması, private key eşleşmemesi, eksik intermediate chain, yanlış SNI vhost, süresi dolmuş sertifika veya TLS uyumsuzluğundan kaynaklanabilir. Bu rehber sertifika–anahtar eşleşmesini ve gerçek sunulan zinciri doğrular.

SSL HandshakeFullchainPrivate KeySNICertbot
root@sunucu:~SSH
nginx: [emerg] SSL_CTX_use_PrivateKey("/etc/ssl/private/example.key") failed
error:05800074:x509 certificate routines::key values mismatch
SSL_do_handshake() failed
İstek akışıİstemci, NGINX ve backend arasındaki kopma noktası
YapılandırmaEtkin server ve location bloklarının doğrulanması
Canlı teşhisLog, socket, port ve servis kontrolleri
Güvenli uygulamaTest, kontrollü reload ve sonuç doğrulaması
01
Teknik açıklama

NGINX SSL ve handshake hatası ne anlama gelir?

HTTPS bağlantısında NGINX doğru sertifika zincirini ve eşleşen private key’i yüklemeli, istemcinin SNI adına uygun vhost’u seçmeli ve ortak TLS protokol/şifre kümesinde anlaşmalıdır.

ssl_certificate için çoğunlukla sunucu sertifikası ile intermediate sertifikaları doğru sırada içeren fullchain dosyası kullanılmalıdır. Eksik chain bazı tarayıcılarda çalışırken diğer istemcilerde doğrulama hatası oluşturabilir.

Private key ile sertifika eşleşmiyorsa NGINX config testi key values mismatch benzeri hatayla başarısız olur. Dosya adlarına güvenmek yerine public key fingerprint/modulus karşılaştırılmalıdır.

Aynı IP’de birden fazla HTTPS domain SNI ile ayrılır. server_name eşleşmesi veya default SSL server yanlışsa kullanıcı başka domaine ait sertifikayı görebilir.

Certbot yenilemesi başarılı olsa bile NGINX eski kopya dosyaya bakıyor veya reload edilmemiş olabilir. Sunulan canlı sertifikanın seri numarası disk dosyasıyla karşılaştırılmalıdır.

Sertifikayı ve key’i e-posta veya açık terminal çıktısında paylaşmayın; private key içeriği yerine yalnız public fingerprint ve dosya izinleri karşılaştırılmalıdır.

02
Log mesajları ve anlamları

SSL, certificate chain ve handshake mesajları

E-postada, tarayıcıda veya SSH günlüğünde gördüğünüz ifadeyi aratın. Her kartta anlam, muhtemel neden ve güvenli ilk işlem bulunur.

8 kayıt
01kritik

key values mismatch

Anlamı: Sertifika ile private key aynı anahtar çiftine ait değil.

Muhtemel neden: Yanlış key dosyası veya yenileme sonrası path karışıklığı.

Public key hash değerlerini karşılaştırın.
02kritik

SSL_CTX_use_PrivateKey_file failed

Anlamı: NGINX private key’i yükleyemedi.

Muhtemel neden: Dosya yok, izin, format, şifreli key veya eşleşme hatası.

nginx -t ve dosya izin/format kontrolü yapın.
03kritik

cannot load certificate ... BIO_new_file failed

Anlamı: Sertifika dosyası açılamıyor.

Muhtemel neden: Yanlış path, kırık symlink veya izin.

realpath ve namei ile dosya zincirini doğrulayın.
04uyari

SSL_do_handshake() failed

Anlamı: TLS müzakeresi tamamlanamadı.

Muhtemel neden: Protokol/şifre uyumsuzluğu, istemci sorunu veya kötü trafik.

OpenSSL s_client ile hostname ve TLS sürümü bazında test edin.
05uyari

certificate has expired

Anlamı: Sunulan sertifikanın geçerlilik süresi bitmiş.

Muhtemel neden: Yenileme veya reload başarısız.

Canlı sertifika tarihini ve Certbot timer/logunu kontrol edin.
06uyari

unable to get local issuer certificate

Anlamı: İstemci zinciri güvenilen köke tamamlayamıyor.

Muhtemel neden: Eksik veya yanlış intermediate chain.

ssl_certificate dosyasında fullchain sırasını doğrulayın.
07uyari

wrong certificate is served

Anlamı: İstenen hostname için başka vhost sertifikası sunuluyor.

Muhtemel neden: SNI/server_name/default_server hatası.

openssl s_client -servername ile sunulan subject/SAN değerini kontrol edin.
08bilgi

no "ssl_certificate" is defined for the "listen ... ssl" directive

Anlamı: SSL dinleyen server bloğunda sertifika tanımlı değil.

Muhtemel neden: Eksik include veya yanlış server blok yapısı.

Etkin ssl server bloğunu nginx -T ile inceleyin.

Bu ifadeyle eşleşen kayıt bulunamadı.

03
Güvenli ilk inceleme

SSH teşhis komutları ve hangi çıktıya bakılmalı?

Komutlar root erişimi içindir. Önce yalnızca durum ve log toplayın; nedeni görmeden kalıcı ayar değiştirmeyin.

NGINX SSL config testi
nginx -t
nginx -T | grep -nE 'listen .*ssl|server_name|ssl_certificate(_key)?'

Etkin sertifika yollarını ve SSL vhost’ları gösterir.

Canlı sertifika inceleme
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -subject -issuer -serial -dates -ext subjectAltName

Gerçekte sunulan sertifika ve SAN bilgilerini gösterir.

Sertifika-key eşleşmesi
openssl x509 -in /etc/letsencrypt/live/example.com/fullchain.pem -pubkey -noout | openssl sha256
openssl pkey -in /etc/letsencrypt/live/example.com/privkey.pem -pubout | openssl sha256

Private key’i göstermeden public key hash eşleşmesini doğrular.

Chain doğrulama
openssl verify -CAfile /etc/ssl/certs/ca-certificates.crt /etc/letsencrypt/live/example.com/cert.pem
openssl s_client -connect example.com:443 -servername example.com -showcerts </dev/null

Sertifika zincirini ve sunulan ara sertifikaları kontrol eder.

Certbot yenileme
certbot certificates
systemctl status certbot.timer --no-pager
journalctl -u certbot -n 100 --no-pager

Yenileme tarihi, timer ve hata kayıtlarını gösterir.

Test ve reload
nginx -t && systemctl reload nginx
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | openssl x509 -noout -serial -dates

Yeni sertifikanın canlı sunulduğunu doğrular.

04
Barındırma ortamına göre

Ubuntu/Debian, AlmaLinux/CloudLinux ve Plesk kontrolleri

NGINX hatasının temel nedeni aynı olsa da paket yolları, servis adları, güvenlik katmanları ve sanal host yönetimi kullanılan Linux dağıtımına veya Plesk altyapısına göre değişir.

Ubuntu / Debian

NGINX SSL ve Handshake Hatası için systemd, paket yolu ve journald kontrolleri.

  • Önce etkin NGINX yapılandırmasını ve servis durumunu doğrulayın.
  • Domain error logu ile systemd günlüğünü aynı zaman aralığında karşılaştırın.
  • Değişiklikten önce nginx -t, ardından kesintisiz reload uygulayın.
nginx -t certbot certificates echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates -subject

AlmaLinux / CloudLinux

NGINX SSL ve Handshake Hatası için SELinux, PHP-FPM pool ve RHEL tabanlı servis kontrolleri.

  • NGINX ve ilgili backend servislerinin aktif durumunu kontrol edin.
  • SELinux AVC kayıtlarını ve güvenlik katmanlarını gözden geçirin.
  • Konfigürasyon testi geçmeden servisi yeniden başlatmayın.
nginx -t certbot certificates 2>/dev/null echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates -subject

Plesk Obsidian

Plesk tarafından üretilen NGINX sanal host dosyalarında nginx ssl ve handshake hatası kontrolü.

  • Domains > Apache & nginx Settings bölümündeki ek direktifleri inceleyin.
  • Elle oluşturulan ve Plesk tarafından üretilen dosyaları birbirinden ayırın.
  • Gerekirse yalnız ilgili domain için web yapılandırmasını yeniden oluşturun.
plesk bin certificate --list -domain example.com nginx -t plesk repair web example.com -n
05
Güvenli çözüm sırası

NGINX SSL ve handshake hatası çözüm sırası

Diskteki dosyaya değil canlı sunulan sertifikaya bakın; path, eşleşme, chain, SNI ve TLS katmanlarını sırayla doğrulayın.

1

Canlı sertifikayı hostname ile okuyun

SNI kullanarak subject, SAN, issuer ve tarihleri kaydedin.

echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -subject -issuer -dates -serial
2

Etkin NGINX sertifika yollarını bulun

Gerçek server bloğunun hangi certificate ve key dosyasını kullandığını doğrulayın.

nginx -T | grep -nE 'server_name example.com|ssl_certificate(_key)?'
3

Dosya varlık ve izinlerini kontrol edin

Symlink zinciri, owner ve key erişimi güvenli olmalıdır.

namei -l /etc/letsencrypt/live/example.com/fullchain.pem namei -l /etc/letsencrypt/live/example.com/privkey.pem
4

Sertifika ve key eşleşmesini doğrulayın

Public key hash’leri aynı olmalıdır.

openssl x509 -in CERT -pubkey -noout | openssl sha256 openssl pkey -in KEY -pubout | openssl sha256
5

Chain ve SNI yapılandırmasını inceleyin

Fullchain sırası ve server_name/default SSL vhost doğru olmalıdır.

openssl s_client -connect example.com:443 -servername example.com -showcerts </dev/null
6

Config test, reload ve yeniden doğrulama

Yeni serial/tarih canlı endpoint’te görünmelidir.

nginx -t && systemctl reload nginx
06
Belirtiye göre ayrım

Özel senaryolar ve karar ağacı

Key values mismatch

Yanlış private key dosyası seçilmiştir; hash eşleştirmesi yapılır.

openssl x509 -in CERT -pubkey -noout | openssl sha256; openssl pkey -in KEY -pubout | openssl sha256
Sertifika süresi doldu

Certbot timer, challenge ve reload adımları kontrol edilir.

certbot certificates; systemctl list-timers | grep certbot
Eksik intermediate chain

cert.pem yerine doğru fullchain dosyası kullanılmalıdır.

openssl s_client -connect example.com:443 -servername example.com -showcerts </dev/null
Yanlış domain sertifikası

SNI, server_name ve default_server sırası incelenir.

nginx -T | grep -nE 'listen .*443|server_name|ssl_certificate'
Cloudflare Origin Certificate

Origin sertifikası doğrudan tarayıcı güveni için değil Cloudflare-origin bağlantısı içindir.

Origin ve proxied hostname sertifikalarını ayrı openssl komutuyla okuyun.
Plesk’te sertifika seçili ama eski görünüyor

Hosting Settings ve mail/panel sertifika atamaları ayrı kontrol edilir.

plesk bin certificate --list -domain example.com

Kesinlikle yapmayın

  • Private key içeriğini terminal çıktısında veya destek mesajında paylaşmayın.
  • Sertifika ve chain dosyalarını rastgele birleştirmeyin.
  • TLS sorununu çözmek için güvenli protokolleri gereksiz yere kapatmayın.
  • Certbot yenilendi diye NGINX’in otomatik yeni dosyayı sunduğunu varsaymayın.
  • Private key dosyasına 644/777 gibi geniş izinler vermeyin.

Çözüm sonrası doğrulama

  • nginx -t başarılıdır.
  • Canlı sertifika doğru hostname SAN’ını içerir.
  • Sertifika ve private key public hash değerleri eşleşir.
  • Chain istemci tarafından güvenilir köke tamamlanır.
  • Canlı serial ve geçerlilik tarihleri beklenen yenilenmiş sertifikaya aittir.
07
Resmî teknik kaynaklar

NGINX ve ilgili bileşenlerin resmî dokümantasyonu

08
İç SEO içerik kümesi

İlgili NGINX hata çözümleri

09
Sık sorulan sorular

NGINX SSL ve Handshake Hatası hakkında merak edilenler

NGINX key values mismatch ne demek?

Sertifika ile ssl_certificate_key dosyasının aynı anahtar çiftine ait olmadığını gösterir.

fullchain.pem neden kullanılmalı?

Sunucu sertifikasıyla gerekli intermediate sertifikaları birlikte sunar; istemcinin güven zincirini tamamlamasına yardımcı olur.

NGINX yanlış sertifika neden gösterir?

SNI server_name eşleşmesi, default SSL vhost veya listen sırası yanlış olduğunda başka vhost sertifikası sunulabilir.

Certbot yeniledi ama eski sertifika görünüyor, neden?

NGINX farklı dosya yolunu kullanıyor, reload edilmemiş veya CDN eski sertifikayı sunuyor olabilir.

SSL_do_handshake failed her zaman sunucu hatası mı?

Hayır. Botlar, eski istemciler ve uyumsuz TLS teklifleri de bu logu üretebilir; frekans ve istemci bilgisi incelenmelidir.

Sertifika-key eşleşmesi güvenli nasıl kontrol edilir?

Private key’i göstermeden her iki dosyadan public key çıkarıp SHA-256 hash değerlerini karşılaştırabilirsiniz.

Plesk’te SSL hangi alanlarda ayrı atanır?

Domain hosting, panel hostname ve mail hizmeti sertifikaları ayrı atanabilir; her endpoint canlı olarak doğrulanmalıdır.

EKA YAZILIM VE BİLİŞİM SİSTEMLERİ

Sunucunuzdaki hatayı kalıcı olarak çözelim

cPanel, WHM, CloudLinux, LiteSpeed, MariaDB, Exim ve güvenlik katmanlarını birlikte analiz ederek yalnızca servisi kaldırmak yerine arızanın temel nedenini gideriyoruz.

Sunucu Desteği Al WhatsApp
Top