실행시
wget https://docs.conda.io/projects/conda/en/4.6.0/_downloads/52a95608c49671267e40c689e0bc00ca/conda-cheatsheet.pdf
이 오류가 있습니다.
--2020-06-03 20:55:06-- https://docs.conda.io/projects/conda/en/4.6.0/_downloads/52a95608c49671267e40c689e0bc00ca/conda-cheatsheet.pdf
Resolving docs.conda.io (docs.conda.io)... 104.31.71.166, 104.31.70.166, 172.67.149.185, ...
Connecting to docs.conda.io (docs.conda.io)|104.31.71.166|:443... connected.
ERROR: cannot verify docs.conda.io's certificate, issued by ‘CN=SSL-SG1-GFRPA2,OU=Operations,O=Cloud Services,C=US’:
Unable to locally verify the issuer's authority.
To connect to docs.conda.io insecurely, use `--no-check-certificate'.
나는 이 문제를 해결하려고 노력 중입니다.
sudo update-ca-certificates -f
URL을 열 때 브라우저에서 인증서를 내보내고 파일에 저장한
conda.cer
후 다음openssl x509 -in conda.cer -inform der -outform pem -out conda.pem
을 실행합니다.wget --ca-certificate=conda.pem \ https://docs.conda.io/projects/conda/en/4.6.0/_downloads/52a95608c49671267e40c689e0bc00ca/conda-cheatsheet.pdf
=> 여전히 같은 오류
아래 파일을 넣으세요
/etc/ssl/certs
.sudo cp conda.pem /etc/ssl/certs
=> 여전히 같은 오류가 발생합니다.
나는 그것을 사용할 수 있다는 것을 알고 있지만 --no-check-certificate
그것은 내가 원하는 것이 아닙니다.
이 문제는 일부 다른 웹사이트에서도 발생합니다. 이유를 아는 사람이 있나요? 감사해요.
업데이트 1
나는 다음 단계를 시도했습니다: 1)sudo cp conda.crt /usr/share/ca-certificates/mozilla/
2) 끝에 sudo vi /etc/ca-certificates.conf
추가mozilla/conda.crt
3) 실행sudo update-ca-certificates -f
4) 아래와 같이 /etc/ssl/certs 아래에 생성된 심볼릭 링크를 볼 수 있습니다.conda.pem -> /usr/share/ca-certificates/mozilla/conda.crt
그러나 여전히 작동하지 않습니다!
업데이트2 - 삭제되었습니다. 업데이트 3을 참조하세요.
업데이트 3
위 URL의 인증서 체인에는 4개의 인증서가 포함되어 있습니다.
하나도 놓치지 않기 위해 인증서 4개(예: conda1.crt
, conda2.crt
, conda3.crt
, conda4.crt
) 를 모두 넣고 /usr/share/ca-certificates/mozilla/
에 언급된 단계를 반복했습니다.업데이트 1.
에서 심볼릭 링크가 성공적으로 생성되었습니다 /etc/ssl/certs
.
확인하다:
openssl verify -no-CAfile -no-CApath -partial_chain -CAfile conda1.pem conda2.pem
conda2.pem: OK
openssl verify -no-CAfile -no-CApath -partial_chain -CAfile conda2.pem conda3.pem
conda3.pem: OK
openssl verify -no-CAfile -no-CApath -partial_chain -CAfile conda3.pem conda4.pem
conda4.pem: OK
결과: wget이 여전히 실패합니다.
업데이트 4
원인의 일부가 발견되었습니다
네트워크를 가로채는 Bluecoat 서비스가 근본 원인입니다(VM Ubuntu에서만 문제가 되며, 호스트 Windows는 SSL에서 잘 작동합니다).
다음 두 가지 작업( conda1.crt
브라우저에서 가져와 Bluecoat 서비스에서 가져와야 함):
wget --ca-certificates=/etc/ssl/certs/ca-certificates.crt https://docs.conda.io/projects/conda/en/4.6.0/_downloads/52a95608c49671267e40c689e0bc00ca/conda-cheatsheet.pdf
wget --ca-certificates=conda1.crt https://docs.conda.io/projects/conda/en/4.6.0/_downloads/52a95608c49671267e40c689e0bc00ca/conda-cheatsheet.pdf
현재 상태
설명된 단계에 conda1.crt
따라 설치 했습니다 ./etc/ssl/certs
업데이트 1. 단계에 표시된 conda1.crt
대로 올바른 것으로 간주됩니다.wget
업데이트 4.
그러나 이 단계를 수행한 후에도 연결이 계속 실패합니다.
Bluecoat 서비스를 강제로 비활성화하면 SSL 문제가 사라집니다.
하지만 Bluecoat를 사용해야 하므로 Bluecoat에서 문제를 해결하는 데 도움을 주시면 대단히 감사하겠습니다!
답변1
Yuan: 실제 답변은 아니지만 댓글이 너무 많습니다.
UPDATE1 다음 단계를 시도했습니다.
[실제로 conda가 아닌 Bluecoat에서 가져온 브라우저에서 내 보낸 인증서 사용]
1) sudo cp conda.crt /usr/share/ca-certificates/mozilla/
2) sudo vi /etc/ca -certificates.conf 및 끝에 mozilla/conda.crt 추가
3) [] sudo update-ca-certificates -f
4) 아래와 같이 /etc/ssl/certs 아래에 생성된 심볼릭 링크를 볼 수 있습니다. conda.pem -> /usr/share/ca-certificates/mozilla/conda.crt
그러나 여전히 작동하지 않습니다! [명시되지 않은wget --ca-certificates=
]
정말 놀랍습니다. 내 테스트 인증서를 사용하여 Ubuntu 18.04에서 작동합니다(물론 귀하의 인증서가 없기 때문에). 각 인증서는 다음 위치에 있습니다./etc/ssl/certs
세 가지 방법(1) Digicert_something 또는 Go_Daddy_whatever와 같은 "친숙한" 파일 이름, /usr/share/ca-certificates/
(2) "친숙한" 이름으로 다시 연결된 "해시 이름", (3) 모든 내용을 포함하는 3513523f.0 -> DigiCert_Global_Root_CA.pem
단일 연결 파일 ca-certificates.crt
사람이 없는 파일 사람이 읽을 수 있는 이름을 가진 인증서의 PEM 블록입니다. wget
OpenSSL을 사용하면 코드에 따라 (2) 및/또는 (3)의 인증서 데이터를 사용합니다. 코드를 다운로드하고 읽을 시간이 없지만 (1)은 사용하지 않으므로 (1)을 확인하지 않습니다. 증명 작업이 너무 많습니다. (2)와 (3)을 확인하세요. 이것이 정확하다면 openssl s_client
어느 것이 동일한 신뢰 저장소와 논리를 사용해야 하는지 시도 하지만 발견된 문제에 대한 자세한 내용을 제공합니다.다른정보). 이것이 도움이 되지 않으면 wget의 소스 코드를 구해 기호로 다시 빌드하고 디버깅해야 할 것 같습니다. 이는 너무 많은 작업입니다.
즉, update-ca-certificates(1) 매뉴얼 페이지에서는 이 내용만 간단히 언급하고 있지만 제 생각에는의도하다추가 사항을 추가하려는 이유 /usr/local/share/ca-certificates
는 /usr/share/ca-certificates/mozilla
후자가 패키지 관리자에 의해 유지 관리되기 때문이 아니라 전자는 /usr/local
사이트 또는 시스템 로컬 추가에 전통적이고 모든 수준이 사용되는 곳입니다(7). /usr/share/doc/ca-certificates/README.Debian
더 구체적으로:
If you want to install local certificate authorities to be implicitly
trusted, please put the certificate files as single files ending with
".crt" into /usr/local/share/ca-certificates/ and re-run
'update-ca-certificates'. ...
몇 가지 사소한 문제
브라우저에서 인증서를 내보내고
openssl x509 -inform der -outform pem ...
...
Windows의 Chrome 및 Internet Explorer는 DER 또는 "base-64"(실제로는 PEM)로 단일 인증서를 내보낼 수 있는 Windows "인증서 마법사"(또는 그 중 하나)와 전체 체인을 허용하는 "p7b"를 사용합니다. (선택적으로 누군가의 개인 키를 포함할 수도 있습니다.내 자신의인증서이지만 여기에는 적용되지 않습니다. ) Firefox에서는 PEM의 체인뿐만 아니라 동일한 선택을 허용합니다. 내가 아는 한 Edge만 DER로 내보내기가 제한되어 있으며 변환 단계가 필요합니다. 적어도 현재 가지고 있는 버전은 Edge가 올해 초에 Chromium에 출시될 예정이었지만 실제로 그랬는지 모르겠습니다. W10의 아이디어는 사용자가 컴퓨터에서 무슨 일이 일어나고 있는지 (제어는 말할 것도 없고) 알 수 없도록 하는 것입니다.
[차단 이유] VM Ubuntu만 문제가 있는데 호스트 Windows는 잘 동작하네요..
호스트는 네트워크 소유자가 소유하거나 관리합니까? 예를 들어둘 다엔터프라이즈 머신과 네트워크? 그렇다면 Bluecoat와 같은 인터셉터를 설치할 때 루트 인증서는 일반적으로 이를 신뢰해야 하는 컴퓨터, 특히 도메인 및 그룹 정책을 사용하여 중앙에서 쉽게 관리할 수 있는 Windows 컴퓨터에 자동으로 설치됩니다. (이 유형의 Windows 도메인은 인터넷에서 사용되는 "도메인 이름" 및 "도메인 이름 시스템 DNS"와 아무 관련이 없습니다. 혼동하지 마십시오.) 간단한 표시는 로그인 이름이 간단한 이름이 아닌 경우입니다. 예를 들어 fred
이메일이나 기타 등등이 있지만 [email protected]
표 형식입니다 domain\fred
.
답변2
두 가지 실수를 저질렀습니다.
서버 인증서와 CA 인증서를 혼동하고 있습니다. 제가 올바르게 이해했다면 서버 인증서를 다운로드하여 CA 풀에 넣으려고 시도한 것입니다(이와 동일한 문제
--ca-certificate=
). 나는 이것이 불가능하다고 생각한다.매뉴얼 페이지를 읽으십시오
update-ca-certificates
. 확장자가 있는 파일이 필요.crt
하고 이를 다른 디렉터리에 복사해야 합니다(배포판에 따라 다를 수 있음). 도구가 대화형으로 제공하지 않으면 구성 파일에 인증서를 수동으로 포함해야 합니다.
인증서 확인
물론, 올바른 CA 인증서가 없으면 전체 접근 방식은 실패할 수밖에 없습니다. 이를 사용하여 openssl
서버 인증서가 CA 인증서로 서명되었는지 확인할 수 있습니다(중간 CA 인증서가 누락된 경우에는 작동하지 않음).
openssl verify -no-CAfile -no-CApath -partial_chain -CAfile ca-cert.pem server-cert.pem