예를 들어, 실행 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.
답변
여기에서 현재 해키 솔루션을 살펴보면 결국 적절한 솔루션을 설명해야한다고 생각합니다.
먼저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
다른 답변에서 지적한대로 실행 하여 문제를 해결할 수도 있지만 시스템에 대한 관리 액세스 권한이있는 경우에만 작동 합니다. 내가 설명한 다른 솔루션에는 필요하지 않습니다.
답변
인증서의 유효성을 검사하지 않으 --no-check-certificate
려면 wget 명령 행에 옵션을 추가하십시오 . 이것은 나를 위해 잘 작동했습니다.
참고 : 이렇게하면 MITM (Man-in-the-Middle) 공격이 발생하므로 보안에 관심이있는 사람에게는 권장되지 않습니다.
답변
알려진 루트 CA가없고 우분투 또는 데비안을 사용할 때 문제가 발생하면 다음 한 줄로 문제를 해결할 수 있습니다.
sudo apt-get install ca-certificates
답변
먼저 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
답변
이것이 도움이 될 수 있습니다.
wget --no-check-certificate https://blah-blah.tld/path/filename
답변
apt-get install ca-certificates
는 s
차이를 만드는)
답변
비슷한 문제가 발생하여 바이러스 백신 (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