curl, HTTPS isteğinde sertifikayı doğrulayamadığında şu hatayla durur:
curl: (60) SSL certificate problem: unable to get local issuer certificate
Aynı aileden hata kodları: (35) el sıkışma hataları, (51) alan adı uyuşmazlığı (eski sürümlerde), (60) güvenilmeyen veya doğrulanamayan zincir.
Olası nedenler
- Sunucu ara sertifikayı göndermiyor.
- curl'ün kullandığı CA paketi eski veya bulunamıyor.
- Kendinden imzalı veya özel CA sertifikası kullanılıyor.
- Kurumsal proxy/SSL denetim cihazı araya giriyor.
- Sertifikanın süresi dolmuş veya istemci saati yanlış.
Teşhis
curl -vI https://alanadi.com
Ayrıntılı çıktıda kullanılan CA dosyası (CAfile), sunucunun sertifika bilgileri ve hata noktası görünür. Sunucu tarafını görmek için openssl s_client -connect alanadi.com:443 -showcerts kullanın; yalnızca tek sertifika geliyorsa ara sertifika eksiktir.
Çözümler
- Sunucuyu düzeltin: eksik ara sertifikayı ekleyin. Bu kalıcı ve doğru çözümdür.
- CA paketini güncelleyin: işletim sistemi paketlerini (
ca-certificates) yenileyin. - Özel CA için kök verin:
curl --cacert /etc/ssl/kurum-ca.pem https://ic-servis.sirket.local
- Belirli bir CA paketini ortam değişkeniyle tanıtın:
CURL_CA_BUNDLE.
Windows'a özgü durum
Windows'ta curl (Schannel) bazen CRYPT_E_NO_REVOCATION_CHECK (0x80092012) hatası verir; iptal sunucusuna erişilemediği anlamına gelir. Geçici test için --ssl-no-revoke seçeneği kullanılabilir, ancak asıl çözüm iptal adreslerine ağ erişimini açmaktır.
Uyarı
-k / --insecure doğrulamayı tamamen kapatır ve yalnızca geçici tanılama içindir. Sunucu zincirini SSL kontrol aracıyla inceleyin; yeni sertifika gerekiyorsa SSL sertifikaları sayfasına bakın.