Cygwin의 HTTPS URL에서 wget을 실행할 때 인증서 오류를 어떻게 수정합니까?


164

예를 들어, 실행 wget https://www.dropbox.com하면 다음 오류가 발생합니다.

ERROR: The certificate of `www.dropbox.com' is not trusted.
ERROR: The certificate of `www.dropbox.com' hasn't got a known issuer.

답변:


131

여기에서 현재 해키 솔루션을 살펴보면 결국 적절한 솔루션을 설명해야한다고 생각합니다.

먼저ca-certificates 인증서를 얻으려면 Cygwin의 setup.exe를 통해 cygwin 패키지 를 설치해야합니다 .

컬 (curl) 또는 이와 유사한 핵을 사용하여 인증서를 다운로드하는 것은 (주변 답변 조언으로) 근본적으로 안전하지 않으며 시스템을 손상시킬 수 있습니다.

둘째, Cygwin 환경에서 인증서가 기본적으로 선택되지 않으므로 wget에 인증서의 위치를 ​​알려야합니다. 명령 행 매개 변수 --ca-directory=/usr/ssl/certs(쉘 스크립트에 가장 적합) 또는 파일 에 추가하여이를 수행 ca_directory = /usr/ssl/certs할 수 ~/.wgetrc있습니다.

ln -sT /usr/ssl /etc/ssl다른 답변에서 지적한대로 실행 하여 문제를 해결할 수도 있지만 시스템에 대한 관리 액세스 권한이있는 경우에만 작동 합니다. 내가 설명한 다른 솔루션에는 필요하지 않습니다.


5
이 답변, 특히 ~ / .wgetrc 파일에 대한 알림에 감사드립니다. MacPorts 사용자로서, 내 인증서는 / opt / local / etc / openssl에 있으며, 누군가가 유용하다고 생각합니다.
브라이스 앤더슨

3
그리고 fink의 경우 /sw/etc/ssl/certs/ca-bundle.crt에 있으며 여기에ca-bundle 설명 된대로 패키지의 일부로 제공됩니다 .
jhfrontz

그것이 오타인지 확실하지 않지만 ln -s /etc/ssl /usr/ssl나를 위해 일했습니다.
zkent

240

인증서의 유효성을 검사하지 않으 --no-check-certificate려면 wget 명령 행에 옵션을 추가하십시오 . 이것은 나를 위해 잘 작동했습니다.

참고 : 이렇게하면 MITM (Man-in-the-Middle) 공격이 발생하므로 보안에 관심이있는 사람에게는 권장되지 않습니다.


1
이것은 나를 위해 일했습니다. 인증서 설치 및 업데이트와 관련된 다른 솔루션으로는 해결되지 않았습니다. 내 특별한 경우에는 보안 문제가 없습니다.
marlar

103

알려진 루트 CA가없고 우분투 또는 데비안을 사용할 때 문제가 발생하면 다음 한 줄로 문제를 해결할 수 있습니다.

sudo apt-get install ca-certificates

1
apt-get은 cygwin에 있습니까? apt-get은 redgat에 있습니까? ;)
Denis Chenu 2016 년

5
ca 인증서는 이미 내 컴퓨터에 설치되어 있습니다. 실행 update-ca-certificates하면 문제가 해결되었습니다.
Tomás Fox

이것은 Debian chroot가있는 Synology DS215j에서도 작동했습니다.
microspino

@fox update-ca-certificates는 데비안에서는 사용할 수없는 우분투 명령입니다.
Devy

실제로 씩씩 거리는 내 라즈베리 파이 실행 데비안에 근무 @Devy
루이스 로보 Borobia

13

먼저 SSL 인증서를 설치해야합니다. 지침 ( https://stackoverflow.com/a/4454754/278488 기반 ) :

pushd /usr/ssl/certs
curl http://curl.haxx.se/ca/cacert.pem | awk 'split_after==1{n++;split_after=0} /-----END CERTIFICATE-----/ {split_after=1} {print > "cert" n ".pem"}'
c_rehash

위의 내용은 수정하기에 충분 curl하지만 wget추가 심볼릭 링크가 필요합니다.

ln -sT /usr/ssl /etc/ssl

6
임의의 웹 사이트, 특히 이름이 haxx 인 루트 인증 기관을 설치하는 것이 안전하지 않습니까?
Chloe

6
cURL의 개발자 사이트 인 @Chloe curl.haxx.se. 꽤 믿을만한 사람들.
ylluminate

컬없이 어떻게 고치나요?
Mark Lakata

1
심볼릭 링크가 내가 놓친 것입니다 ... 30 분 검색 한 라이너 수정> <
Populus

4
이것은 여러 수준에서 해키입니다. 먼저 "ca-certificates"라는 Cygwin 패키지가 있으므로 인증서를 수동으로 다운로드 할 필요가 없습니다. 둘째, 심볼릭 링크는 시스템에 대한 관리자 액세스 권한이 있거나 사용자 계정에 대해서만 cygwin을 설치 한 경우에만 작동합니다. 항상 그렇지는 않으므로 코드가 신뢰할 수 없습니다.
Shnatsel

10

이것이 도움이 될 수 있습니다.

wget --no-check-certificate https://blah-blah.tld/path/filename

1
하나 더 :이 상황은 Kaspersky AntiVirus 또는 동일한 소프트를 사용하는 경우에도 가능합니다 (기본적으로 사이트의 정상적인 확인 된 SSL 인증서를 자체적으로 대체 함). 따라서 안티 바이러스 소프트에서 SSL 트래픽 확인을 비활성화 할 수 있습니다.
Alexey Soloviev 2016 년

4
apt-get install ca-certificates 

s차이를 만드는)


더 없다 apt-get이 일을하지 않도록, Cygwin에서에.
jlh

1

비슷한 문제가 발생하여 바이러스 백신 (Kaspersky Free 18.0.0.405)을 일시적으로 비활성화하여 수정했습니다. 이 AV에는 HTTPS 응답에서 찾은 모든 인증서를 자동으로 자체 서명하는 HTTPS 차단 모듈이 있습니다.

Cygwin의 Wget은 AV 루트 인증서에 대해 아무것도 알지 못하므로 웹 사이트의 인증서가 비 신뢰 인증서로 서명 된 것을 발견하면 해당 오류를 인쇄합니다.

AV를 비활성화하지 않고이 문제를 영구적으로 해결하려면 Windows 루트 인증서 저장소의 AV 루트 인증서를 /etc/pki/ca-trust/source/anchors.pem 파일 (base64 인코딩)로 복사 하고 실행해야합니다.update-ca-trust



-4

Windows를 사용하는 경우 제어판으로 이동하여 자동 업데이트를 클릭 한 다음 Windows Update 웹 사이트 링크를 클릭하십시오. 단계를 따르십시오. 적어도 이것은 나를 위해 작동합니다. 더 이상 인증서 문제가 없습니다. 예를 들어 이전과 같이 https://www.dropbox.com에 갈 때마다 .


이것은 Cygwin
Synthead
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.