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'
어떤 이유로 컬은 –tlsv1.2 명령으로 TLSv1.2를 사용하도록 강요하더라도 TLSv1.3을 사용하는 것 같습니다 (여전히 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 인 경우에도 HTTPS가 아닌 HTTP로 액세스해야합니다. 그럼에도 불구하고 프록시는 HTTPS 연결을 제대로 처리하고 종단 간 암호화를 유지합니다. 이것이 수행되는 방법에 대한 자세한 내용 은 HTTP CONNECT 메소드 를 참조하십시오 .
답변
간단한 대답
프록시 서버 뒤에있는 경우 curl에 프록시를 설정하십시오. 컬은 서버에 연결할 수 없어 잘못된 버전 번호를 표시합니다. subl ~ / .curlrc 를 열어 프록시를 설정 하거나 다른 텍스트 편집기를 사용하십시오. 그런 다음 파일에 다음 행을 추가하십시오. proxy = proxyserver : proxyport 예 : proxy = 10.8.0.1:8080
프록시 뒤에 있지 않은 경우 curlrc 파일에 프록시 설정이 포함되어 있지 않은지 확인하십시오.
답변
Nginx를 사용하여이 오류가 발생하는 경우 서버 구성에 다음을 추가해보십시오.
server {
listen 443 ssl;
...
}
이 문제는 Nginx가 수신중인 포트에 관계없이 HTTPS를 예상하는 클라이언트에 HTTP 서버를 제공하기 때문에 발생합니다. 사용자가 지정하면 ssl
에 listen
지시, 당신은 서버 측에이를 취소합니다.
답변
한 줄로 더 간단하게 :
proxy = 192.168.2.1 : 8080; curl -v example.com
예. $ 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 % 총 수신 % Xferd 평균 속도 시간 시간 시간 현재 Dload 업로드 총 소비 잔여 속도 000 000-:-:–:-:–:-:-0
- 172.217.163.46:443 시도 중 …
- TCP_NODELAY 설정
- google.com (172.217.163.46) 포트 443 (# 0)에 연결됨
- ALPN, h2 제공
- http / 1.1을 제공하는 ALPN
- 인증서 확인 위치를 성공적으로 설정했습니다.
- CAfile : /etc/ssl/certs/ca-certificates.crt CApath : / etc / ssl / certs} [5 바이트 데이터]
- TLSv1.3 (OUT), TLS 핸드 셰이크, 클라이언트 hello (1) :} [512 바이트 데이터]