SSL Sertifikası

OpenSSL: wrong version number

OpenSSL 'wrong version number' çoğunlukla HTTPS isteğinin HTTP portuna gitmesinden çıkar. Nginx, Apache ve proxy senaryolarında nedeni bulun.

error:1408F10B:SSL routines:ssl3_get_record:wrong version number (OpenSSL 3'te error:0A00010B) hatası, istemci TLS başlatmaya çalışırken karşıdan TLS yerine başka bir protokol yanıtı aldığında çıkar. Bu, TLS sürümünün gerçekten yanlış olmasından çok, portun TLS konuşmadığının işaretidir.

En sık nedenler

  • HTTPS isteği düz HTTP dinleyen bir porta yapılıyor (ör. https://alanadi.com:80 veya 8080).
  • Nginx'te listen 443; yazılmış ama ssl parametresi eksik.
  • Apache'de SSLEngine on yok ya da 443 bloğu yüklenmemiş.
  • Bir proxy ayarında HTTP backend'e proxy_pass https://... verilmiş (veya tersi).
  • Sunucu TLS yerine SSH, SMTP gibi başka bir servise ait portta dinliyor.

Teşhis

curl -v http://alanadi.com:443/        # düz HTTP yanıt dönüyorsa port TLS değil
openssl s_client -connect alanadi.com:443 -servername alanadi.com
sudo ss -tlnp | grep ':443 '

Yanıtta "HTTP/1.1 400 Bad Request" gibi düz metin görüyorsanız o port TLS beklemiyordur.

Çözüm adımları

  1. Nginx'te SSL'i açıkça belirtin:
    listen 443 ssl;
    
  2. Apache'de sanal konakta SSLEngine on ve sertifika yönergeleri olmalı; a2enmod ssl ile modülü etkinleştirin.
  3. Reverse proxy kullanıyorsanız backend'in gerçekten TLS konuşup konuşmadığını kontrol edip proxy_pass şemasını eşleştirin.
  4. Uygulamada yanlış port veya https şeması yazılmış mı, bağlantı dizesini gözden geçirin.
  5. Değişikliklerden sonra yapılandırmayı sınayıp yeniden yükleyin.

Sonuç

Hata sertifikanızla değil, bağlantı şeması ve dinleme ayarıyla ilgilidir. Kurulum sonrası SSL denetleme aracı doğru çalıştığını gösterir; sertifikaya ihtiyacınız varsa SSL sertifikaları sayfasına bakın.

Ek ipuçları

Uygulama sunucusunun önünde yük dengeleyici varsa, TLS'in sonlandırıldığı noktayı netleştirin: dış bağlantı TLS, iç bağlantı düz HTTP olabilir. Bu durumda uygulamanın bağlantı adresi https değil http ile yazılmalıdır. Yerel geliştirmede 8080 gibi portlara https:// ile gitmek de aynı hatayı verir.

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ç