curl: (35) hata: 1408F10B: SSL rutinleri: ssl3_get_record: yanlış sürüm numarası


116

Curl (veya libcurl) kullanarak herhangi bir sunucuya (ör. Google.com) bağlanmaya çalıştığımda şu hata mesajını alıyorum:

curl: (35) hata: 1408F10B: SSL rutinleri: ssl3_get_record: yanlış sürüm numarası

Ayrıntılı çıktı:

$ curl www.google.com --verbose  
* Rebuilt URL to: www.google.com/  
* Uses proxy env variable no_proxy == 'localhost,127.0.0.1,localaddress,.localdomain.com'  
* Uses proxy env variable http_proxy == 'https://proxy.in.tum.de:8080'  
*   Trying 131.159.0.2...  
* TCP_NODELAY set  
* Connected to proxy.in.tum.de (131.159.0.2) port 8080 (#0)  
* successfully set certificate verify locations:  
*   CAfile: /etc/ssl/certs/ca-certificates.crt  
  CApath: none  
* TLSv1.3 (OUT), TLS handshake, Client hello (1):  
* error:1408F10B:SSL routines:ssl3_get_record:wrong version number  
* Closing connection 0  
curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number'  

Bazı nedenlerden dolayı curl, --tlsv1.2 komutuyla TLSv1.2'yi kullanmaya zorlasam bile TLSv1.3 kullanıyor gibi görünüyor (yine de TLSv1.3 (OUT) yazdıracak, ... "En yeni sürümü kullanıyorum Curl ve OpenSSL için:

$ curl -V  
curl 7.61.0-DEV (x86_64-pc-linux-gnu) libcurl/7.61.0-DEV OpenSSL/1.1.1 zlib/1.2.8  
Release-Date: [unreleased]  
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp  
Features: AsynchDNS IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP UnixSockets HTTPS-proxy  

Sanırım bu, programların kurulumuyla ilgili bir sorun. Biri bana bu hata mesajının ne anlama geldiğini açıklayabilir mi?

Yanıtlar:


195
* Uses proxy env variable http_proxy == 'https://proxy.in.tum.de:8080'   
                                         ^^^^^

https://Yanlış, olması gerektiği http://. Hedef URL HTTPS olsa bile, proxy'ye HTTPS değil HTTP ile erişilmelidir. Proxy yine de HTTPS bağlantısını düzgün bir şekilde idare edecek ve uçtan uca şifrelemeyi koruyacaktır. Bunun nasıl yapıldığının ayrıntıları için HTTP BAĞLANTISI yöntemine bakın .



6

Basit cevap

Bir proxy sunucusunun arkasındaysanız, lütfen curl için proxy'yi ayarlayın. Curl sunucuya bağlanamadığı için yanlış sürüm numarası gösteriyor. Subl ~ / .curlrc dosyasını açarak veya başka bir metin düzenleyici kullanarak proxy'yi ayarlayın . Ardından aşağıdaki satırı dosyaya ekleyin: proxy = proxyserver: proxyport Örneğin proxy = 10.8.0.1:8080

Bir proxy arkasında değilseniz, curlrc dosyasının proxy ayarlarını içermediğinden emin olun.


6

Herhangi biri Nginx'i kullanarak bu hatayı alıyorsa, aşağıdakileri sunucu yapılandırmanıza eklemeyi deneyin:

server {
    listen 443 ssl;
    ...
}

Sorun, Nginx'in dinlediğiniz bağlantı noktasında HTTPS bekleyen bir istemciye bir HTTP sunucusu sunmasından kaynaklanıyor. Belirttiğiniz zaman ssliçinde listenyönergede, sunucu tarafında bu kadar açık.


2
teşekkürler, bu beni çözüme götürdü, bahsedilen nginx yapılandırma satırındaki '
ssl'yi kaçırdım

0

Daha basit bir şekilde tek satırda:

proxy = 192.168.2.1: 8080; curl -v example.com

Örneğin. $ proxy = 192.168.2.1: 8080; curl -v example.com

xxxxxxxxx-ASUS: ~ $ proxy = 192.168.2.1: 8080; curl -v https: //google.com | head -c% 15 Toplam Alınan% Xferd Ortalama Hız Süre Zaman Zaman Geçerli Yükleme Yükleme Toplam Harcanan Kalan Hız 0 0 0 0 0 0 0 0 -: -: - -: -: - -: -: - 0

  • 172.217.163.46:443 deneniyor ...
  • TCP_NODELAY grubu
  • Google.com (172.217.163.46) 443 (# 0) numaralı bağlantı noktasına bağlandı
  • ALPN, h2 sunuyor
  • ALPN, http / 1.1 sunuyor
  • başarıyla ayarlanmış sertifika doğrulama yerleri:
  • CAfile: /etc/ssl/certs/ca-certificates.crt CApath: / etc / ssl / certs} [5 baytlık veri]
  • TLSv1.3 (OUT), TLS anlaşması, İstemci merhaba (1):} [512 bayt veri]
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.