1. ホーム
  2. ssl

[解決済み] curlです。(35) error:1408F10B:SSLルーチン:ssl3_get_record:バージョン番号が間違っている

2022-02-24 07:26:05

質問

curl(またはlibcurl)を使用して、任意のサーバ(例:google.com)に接続しようとすると、エラーメッセージが表示されます。

curl: (35) error:1408F10B:SSLルーチン:ssl3_get_record:間違ったバージョン番号

バーボーズ出力です。

$ 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'  

なぜかcurlはTLSv1.3を使うようで、-tlsv1.2コマンドで強制的にTLSv1.2を使わせても(TLSv1.3 (OUT), ..."と表示されます。 CurlもOpenSSLも最新版を使っているのですが...。

$ 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  

これは、私のプログラムのインストールに関連する問題だと思います。 このエラーメッセージが何を意味するのか、どなたか説明してください。

解決方法を教えてください。

<ブロッククオート
* Uses proxy env variable http_proxy == 'https://proxy.in.tum.de:8080'   
                                         ^^^^^

https:// は間違いです。 http:// . ターゲットURLがHTTPSであっても、プロキシ自体はHTTPでアクセスする必要があり、HTTPSではありません。しかし、プロキシは HTTPS 接続を適切に処理し、エンドツーエンドの暗号化を維持します。参照 HTTP CONNECTメソッド を参照してください。