github에서 벗어날 수 없음, sslv3 핸드 셰이크 오류


10

최근에 실패하기 시작한 github에서 mod 보안을 다운로드하는 스크립트가 있습니다. 서버는 CentOS 6을 실행하지만 RHEL 6에는 동일한 문제가있을 수 있습니다. 출력은 다음과 같습니다.

# wget https://github.com/downloads/SpiderLabs/ModSecurity/modsecurity-apache_2.7.1.tar.gz
--2014-07-22 18:49:46--  https://github.com/downloads/SpiderLabs/ModSecurity/modsecurity-apache_2.7.1.tar.gz
Resolving github.com... 192.30.252.129
Connecting to github.com|192.30.252.129|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://cloud.github.com/downloads/SpiderLabs/ModSecurity/modsecurity-apache_2.7.1.tar.gz [following]
--2014-07-22 18:49:47--  https://cloud.github.com/downloads/SpiderLabs/ModSecurity/modsecurity-apache_2.7.1.tar.gz
Resolving cloud.github.com... 54.230.99.219, 205.251.219.190, 54.230.97.212, ...
Connecting to cloud.github.com|54.230.99.219|:443... connected.
OpenSSL: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
Unable to establish SSL connection.

이 문제를 해결하거나 해결하는 방법에 대한 아이디어가 있습니까?


2
예를 들어curl
Rabin

2
더 구체적으로 말하면, 54.230.99.219와 cloud.github.com에 대한 여러 (다른) A 모두 ServerNameIndication에 대한 옵션없이 s_client에 핸드 셰이크 실패를 제공합니다. serverfault.com/questions/560053/… 라고 말합니다 (몇 달 전) RedHat wget은 SNI를 수행하지 않지만 curl은 수행합니다.
dave_thompson_085


솔직히 말해서 @ dave_thompson_085 또는 Rabin이 귀하의 해결 방법이 훌륭하게 작동하더라도 장기적인 해결책으로 더 많은 의견을 게시 한 것처럼 의견을 게시 한 것을 선호합니다!
Kristofer

답변:


2

내가 실수하지 않으면이 repo 를 의미합니다 . URL 양식 릴리스 를 가져 오십시오 .

이 사건은 저에게 효과적입니다.

$ wget https://github.com/SpiderLabs/ModSecurity/archive/v2.8.0.tar.gz

추신 : 나는 또한 당신의 사건을 실행하려고 할 때 같은 오류 메시지가 있습니다;

$ wget https://github.com/downloads/SpiderLabs/ModSecurity/modsecurity-apache_2.7.1.tar.gz

흠,이 URL에는 md5가 없습니다 :(
Kristofer

raw.githubusercontent.com/$ {USER} / $ {REPO} /path/to/file.tar.gz
Maksim Kostromin

10

curl명령을 사용하여 다운로드 할 수 있습니다 .

curl -LO https://github.com/downloads/SpiderLabs/ModSecurity/modsecurity-apache_2.7.1.tar.gz

5
curl -L -OwgetHTTP 리디렉션을 따르기 때문에 보다 나은 대안입니다 (Github에서 CDN을 가리키고 싶기 때문에 특히 유용합니다).
strangefeatures

또한 CentOS 6.5 버전에서 한 가지 문제 curl는 SNI 를 지원 하지만 지원 wget하지 않는 것입니다. 따라서 일부 사이트의 wget경우 때때로 잘못된 호스트에 대한 인증서가 제공되고 제대로 curl작동 하더라도 인증서 실패가 발생 합니다.
rakslice

7

SSLv3 심각한 보안 문제로 인해 서버 측에서 SSLv3 암호화 핸드 셰이크를 비활성화했습니다. 또한 wget 클라이언트는 구식 버전이며 여전히이 SSLv3 암호화를 기본으로 사용합니다. 두 가지 옵션이 있습니다.

  • wget 앞에 --secure-protocol = TLSv1 플래그를 사용하십시오. wget --secure-protocol=TLSv1
  • 기본 TLSv1 프로토콜로 사용되는 업데이트 된 wget 버전 설치

5

wget 버전을 확인해야합니다.

이전 버전 wget(<1.15) 과 동일한 문제가있었습니다 .


2
이것은 답변이 아니라 질문에 대한 의견이어야합니다.
Danny Staple

0

해결 방법은 호스트를 신뢰하는 경우 다음을 지정 --no-check-certificate하거나 추가하십시오.

check_certificate = off

당신의 ~/.wgetrc(권장하지 않음).

드문 경우이지만 시스템 시간으로 인해 동기화되지 않을 수 있으므로 이전에 작동했던 인증서가 무효화됩니다.


-1

이 시도:

update-crypto-policies --set LEGACY

3
사이트에 오신 것을 환영합니다. 기여해 주셔서 감사합니다. 어떤 설명을 포함하도록 게시물을 편집하겠습니까? 특히 OP에서 설명하는 증상 중 어느 것이 암호화 정책이 문제인지, 그리고 이러한 방식으로 변경하여이를 해결할 수있는 이유는 무엇입니까? 아이디어는 가능한 한 독립적으로 답변하여 OP뿐만 아니라 유사한 문제에 직면 한 다른 사람들에게도 유용합니다.
AdminBee

1
이것이 RHEL 8에 의해 도입 된 도구라면,이 질문이 RHEL6에 관한 것임을 알아야합니다.
Jeff Schaller
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.