Bu, sertifika arızalarının en kafa karıştırıcılarındandır; çünkü sizde çalışır. Masaüstü tarayıcılar, başka sitelerden gördükleri ara sertifikaları saklar ve boşluğu sessizce doldurur; o ara sertifikayı hiç görmemiş bir telefon ile her komut satırı istemcisi ise bunu yapamaz.
Belirtisi
- Dizüstünüzde sorunsuz, telefonda güvenilmez.
- curl, unable to get local issuer certificate der.
- Tarayıcılar memnunken bir ödeme geçidi ya da web kancası bağlanamaz.
Doğrulayın
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com < /dev/null 2>/dev/null \
| grep -E '^ *[0-9]+ s:|Verify return code'
Listede en az iki sertifika görmek istersiniz — sizinki ve ara sertifika — bir de Verify return code: 0 (ok). Tek bir sertifika ile birlikte bir doğrulama hatası, tam olarak bu arızadır.
Sebebi tek bir dosya adıdır
fullchain.pem yerine cert.pem sunmak. cert.pem yalnızca sizin sertifikanızdır; fullchain.pem ise sizin sertifikanızın ardından ara sertifikanın geldiği dosyadır. Yapılandırmadaki tek bir sözcüktür, ve neredeyse her zaman sorunun tamamıdır.
# nginx - correct
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
# apache / litespeed
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem
Yeniden yükleyin ve bir daha bakın
sudo nginx -t && sudo systemctl reload nginx
curl -sS -o /dev/null -w '%{http_code}\
' https://yourdomain.com
Önbelleği olmayan bir yerden deneyin
Siteyi hiç ziyaret etmemiş bir makinede curl, ya da site verileri temizlenmiş, mobil veriye bağlı bir telefon. Size yanıtı veremeyecek tek istemci, kendi tarayıcınızdır — bkz. Kablosuz ağda çalışıyor, mobil veride çalışmıyor.