Python SSL Certificate Error Nasıl Çözülür? 5 Kesin Çözüm (2025)

21.12.2025 10:48 Haber

Python'da "SSL: CERTIFICATE_VERIFY_FAILED" hatası mı alıyorsunuz (getting SSL certificate error)? Alesta Web olarak bu hatayı 5 dakikada çözmenize yardımcı olacağız. Bu SSL hatası (SSL error), özellikle pip install, requests kütüphanesi veya web scraping işlemlerinde çok yaygındır. Hadi birlikte bakalım nasıl çözeceğiz!

SSL Certificate Hatası Nedir? (What is SSL Certificate Error?)

Python'da SSL CERTIFICATE_VERIFY_FAILED hatası (certificate verification error), Python'un HTTPS bağlantısı kurduğu web sitesinin SSL sertifikasını doğrulayamaması durumunda ortaya çıkar. Alesta Web ekibi olarak binlerce kullanıcının bu hatayla karşılaştığını gördük.

Tipik Hata Mesajı / Typical Error Message

ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED]
certificate verify failed: unable to get local issuer certificate (_ssl.c:1129)

# veya / or

urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED]>
      

Bu hata (this error) genellikle şu durumlarda görülür:

  • pip install paket-adi komutu çalıştırırken
  • requests.get() ile HTTPS sitesine istek atarken
  • Web scraping yaparken (BeautifulSoup, Selenium)
  • API'lere bağlanırken (REST API calls)

Hatanın Sebepleri (Root Causes)

Alesta Web olarak yaptığımız analizlere göre, bu hatanın (SSL error) en yaygın 5 sebebi şunlar:

  1. Güncel olmayan certifi paketi: Python'un SSL sertifikalarını yönettiği certifi paketi (certifi package) eski olabilir
  2. Eksik root CA sertifikaları: Sistemde root certificate authority sertifikaları yok
  3. Kurumsal proxy/firewall: Şirket ağlarında proxy SSL sertifikasını değiştirebilir
  4. Eski Python versiyonu: Python 3.6 ve altı versiyonlar SSL desteği zayıf
  5. MacOS/Windows sertifika deposu sorunu: İşletim sistemi sertifika deposu (certificate store) güncel değil
? Alesta Web İpucu:

Hatayı çözmeden önce hangi durumda aldığınızı belirleyin (identify the scenario). pip install sırasında mı, yoksa kod çalıştırırken mi? Bu, doğru çözümü seçmenizi sağlar.

Yöntem 1: certifi Paketini Güncelleme (Update certifi Package)

En basit ve etkili çözüm (most effective solution)! Python'un requests kütüphanesi, SSL sertifikalarını doğrulamak için certifi paketini kullanır. Alesta Web deneyimlerimize göre, %70 durumda bu yöntem sorunu çözer.

Adım 1: certifi Paketini Güncelle / Update certifi

# Windows, Linux, MacOS için / for all platforms
pip install --upgrade certifi

# veya pip3 kullanıyorsanız / or if using pip3
pip3 install --upgrade certifi
      

Adım 2: Kurulumu Doğrula / Verify Installation

python -c "import certifi; print(certifi.where())"
      

Bu komut (this command), sertifika dosyasının yolunu gösterir. Örnek çıktı (sample output):

C:\Users\USERNAME\AppData\Local\Programs\Python\Python312\Lib\site-packages\certifi\cacert.pem
      
✅ Test Edin / Test It:
python -c "import requests; print(requests.get('https://www.google.com').status_code)"
      

200 çıktısı alırsanız sorun çözülmüş demektir!

Yöntem 2: Python ve OpenSSL Güncelleme (Upgrade Python & OpenSSL)

Eski Python versiyonları (old Python versions) güncel SSL protokollerini desteklemez. Alesta Web olarak Python 3.10 veya üstü kullanmanızı öneriyoruz.

Python Versiyonunu Kontrol Et / Check Python Version

python --version

# OpenSSL versiyonu / OpenSSL version
python -c "import ssl; print(ssl.OPENSSL_VERSION)"
      

Eğer Python 3.8'den eski kullanıyorsanız (if using older than 3.8):

  1. Python.org'dan en güncel versiyonu indirin (download latest version)
  2. Kurulum sırasında "Add Python to PATH" seçeneğini işaretleyin
  3. Kurulum tamamlandıktan sonra terminali yeniden başlatın (restart terminal)
? Bilgi / Info:

Python 3.13 (2025'te çıktı) en güncel SSL/TLS desteğine sahip. Yeni projeler için bu versiyonu tercih edin (prefer this version for new projects).

Yöntem 3: Özel Sertifika Yolu Belirleme (Custom Certificate Path)

Şirket ağlarında veya özel durumlarda (in corporate networks), SSL sertifikasının yolunu manuel belirtmeniz gerekebilir.

requests Kütüphanesinde / In requests Library

import requests
import certifi

# Sertifika yolunu belirt / specify certificate path
response = requests.get(
    'https://example.com',
    verify=certifi.where()
)

print(response.status_code)
      

Özel Sertifika Dosyası Kullanma / Using Custom Certificate File

import requests

# Şirket sertifikası / corporate certificate
response = requests.get(
    'https://internal-api.company.com',
    verify='/path/to/company-cert.pem'
)
      
⚠️ GÜVENLİK UYARISI / SECURITY WARNING:

Alesta Web olarak şunu kesinlikle önermiyoruz: verify=False kullanmak! Bu, SSL doğrulamasını tamamen kapatır (disables SSL verification completely) ve man-in-the-middle saldırılarına (MITM attacks) karşı savunmasız kalırsınız. Production kodunda ASLA kullanmayın!

# ❌ ASLA YAPMAYIN / NEVER DO THIS
requests.get('https://example.com', verify=False)  # Tehlikeli!
      

Yöntem 4: pip için Geçici Çözüm (Temporary Fix for pip)

Sadece pip install sırasında hata alıyorsanız (only during pip install), geçici bir çözüm (temporary solution) şu:

Güvenilir Host Belirleme / Trusted Host

pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org paket-adi

# Örnek / Example
pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org requests
      
⚠️ DİKKAT / WARNING:

Bu yöntem güvenlik risklidir (security risk). Sadece acil durumlar için kullanın. Alesta Web olarak kalıcı çözüm için Yöntem 1 veya 2'yi öneririz.

Kalıcı Yapılandırma / Permanent Configuration

Eğer sürekli bu parametreleri kullanmak istemiyorsanız (if you don't want to type these every time), pip yapılandırma dosyasına ekleyin:

# Windows: C:\Users\USERNAME\pip\pip.ini
# Linux/Mac: ~/.config/pip/pip.conf

[global]
trusted-host = pypi.org
               files.pythonhosted.org
      

Yöntem 5: Windows İçin Özel Sertifika Yükleme (Windows Certificate Installation)

Windows kullanıcıları için (for Windows users), Python bazen işletim sistemi sertifika deposunu kullanmayabilir. Alesta Web çözümü:

Windows Install Certificates Script

# Python kurulum klasörüne gidin / navigate to Python installation folder
# Örnek: C:\Users\USERNAME\AppData\Local\Programs\Python\Python312

# Şu dosyayı çalıştırın / run this file
# Install Certificates.command (MacOS)
# veya / or
# pip.exe install --upgrade certifi
      

Python 3.6+ ile gelen Install Certificates.command scripti (certificate installation script), sistem sertifikalarını Python'a ekler.

MacOS için / For MacOS

# Terminal'de çalıştır / run in terminal
cd /Applications/Python\ 3.12/
./Install\ Certificates.command
      

Sık Karşılaşılan Hatalar ve Çözümleri (Common Errors & Solutions)

❌ "pip not found" hatası / pip not found error

Çözüm:

python -m pip install --upgrade certifi
      

❌ "Permission denied" hatası / Permission denied error

Çözüm (Windows):

# Yönetici olarak çalıştır / run as administrator
pip install --upgrade certifi --user
      

Çözüm (Linux/Mac):

sudo pip3 install --upgrade certifi
      

❌ "SSL module not available" hatası

Alesta Web İpucu: Python OpenSSL olmadan derlenmiş. Python'u yeniden yükleyin (reinstall Python) veya sistem paketlerinden OpenSSL kurun:

# Ubuntu/Debian
sudo apt-get install libssl-dev

# MacOS
brew install openssl
      
? Alesta Web Pro Tip:

Kurumsal ortamlarda (in corporate environments) proxy ayarları da SSL hatalarına neden olabilir. Proxy kullanıyorsanız (if using proxy):

# Proxy ayarları / proxy settings
export HTTP_PROXY="http://proxy.company.com:8080"
export HTTPS_PROXY="http://proxy.company.com:8080"

# pip için / for pip
pip install --proxy=http://proxy.company.com:8080 paket-adi
      

? Kaynaklar ve Referanslar / Sources and References

Bu makalede kullanılan bilgiler aşağıdaki güvenilir kaynaklardan alınmıştır (information used from reliable sources):

Alesta Web olarak tüm bilgileri doğruladık ve test ettik (we verified and tested all information).

✅ Sorun Çözüldü! (Problem Solved!)

Artık Python SSL CERTIFICATE_VERIFY_FAILED hatası (SSL certificate error) geride kaldı! Alesta Web olarak bu rehberde 5 farklı çözüm yöntemi anlattık. Çoğu durumda Yöntem 1 (certifi güncelleme) yeterli olacaktır.

Hızlı Özet / Quick Summary:

  • ✅ certifi paketi güncellendi (certifi package updated)
  • ✅ Python/OpenSSL versiyonu kontrol edildi
  • ✅ SSL sertifika doğrulaması çalışıyor (SSL verification working)
  • ✅ pip install ve requests kütüphanesi sorunsuz
  • ✅ Güvenlik en üst seviyede (security at maximum level)
⚠️ HATIRLATMA / REMINDER:

Production kodunda ASLA verify=False kullanmayın (never use verify=False in production)! Bu, sisteminizi güvenlik açıklarına karşı savunmasız bırakır.

Faydalı Linkler / Useful Links:

© 2025 AlestaWeb - Tüm hakları saklıdır. / All rights reserved.

WM Tools
💫

WebMaster Tools

15 Profesyonel Araç