Ubuntu 14.04에서 Curl의 CA 인증서 문제를 해결하는 방법은 무엇입니까?

Ubuntu 14.04에서 Curl의 CA 인증서 문제를 해결하는 방법은 무엇입니까?

우분투 14.04를 사용하고 있습니다. 컬을 사용하면 다음과 같은 오류가 발생합니다.

curl: (77) error setting certificate verify locations: CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath:

인터넷 검색에서 수집한 내용에 따르면 찾고 있는 CAfile 위치는 Ubuntu에 적합하지 않으며(내 컴퓨터에는 존재하지 않음) /etc/ssl/certs/ca-certificates.crt올바른 위치입니다.

대부분의 솔루션에는 환경 변수를 CURL_CA_BUNDLE적절한 위치로 설정하거나 내 홈 디렉터리에 cacert=/etc/ssl/certs/ca-certificates.crt새로 생성된 파일을 추가하는 작업이 포함되었습니다. .curlrc두 가지를 모두 시도했지만 문제를 완전히 해결하지 못했습니다. 컬이 이 위치를 찾고 있지만 여전히 작동하지 않고 오류가 발생합니다.

curl: (60) SSL certificate problem: self signed certificate in certificate chain

또한 Ubuntu에서 컬을 제거하고 다시 설치하고 인증서를 업데이트한 CA 인증서를 업데이트하려고 시도했지만 $ sudo update-ca-certificates --fresh여전히 오류 60이 사라지지 않았습니다.

나는 CA 인증서에 대해 잘 알지 못하며 과거에 일부 자체 서명 인증서를 의도적으로 추가했는지 의심됩니다. 아마도 우연히, 나는 모른다.

이 문제를 해결하는 방법을 아는 사람이 있나요? 실제로 모든 인증서를 사용하여 새로 시작할 수 있는 방법이 있나요? 아니면 자체 서명된 인증서가 어디에 있는지 알아내고 이를 제거하는 방법을 아는 사람이 있나요?

추신: 저는 -k(일명 --insecure) 플래그를 사용하고 싶지 않습니다. 나는 이것이 안전하게 작동하도록하고 싶습니다.

답변1

지난 며칠 동안 이 문제에 대해 연구하고 작업한 후 작동하게 되었고, 대답은 다소 간단했습니다.

capath=/etc/ssl/certs/내 파일에 설정해야했습니다 .curlrc.

이로 인해 명령줄에서 컬이 작동하게 되었습니다. R에서 컬을 추가로 작동시키려면(처음 문제가 발생한 곳) 이전에 시도한 대로 파일 cacert=/etc/ssl/certs/ca-certificates.crt에 있어야 했습니다. .curlrc그렇지 않으면 계속해서 다음을 찾아야 했습니다./etc/pki/tls/certs/ca-bundle.crt

자체 서명된 인증서에 대한 오류가 표시되는 이유를 아직도 모르겠습니다.

다른 무작위 결과를 토대로 Curl 웹사이트에서 다음 인증서를 다운로드했습니다.

sudo wget https://curl.se/ca/cacert.pem

같은 certs디렉토리에. cafile이것을 지적한 것도 효과적이었습니다. 결국 나는 그것을 다시 넣었 ca-certificates.crt지만 여전히 작동합니다.

이것이 왜 작동했는지, 무슨 일이 일어나고 있는지 정확히 이해하지 못하지만 해결되었습니다.

답변2

카필키는 나에게 작동하지 않지만(curl 7.45.0) cacert(--cacert 옵션에서)는 작동합니다. 나의.curlrc파일:

capath=/etc/ssl/certs/
cacert=/etc/ssl/certs/ca-certificates.crt

답변3

몇 번을 조사한 끝에 작동하게 되었고, 대답은 오히려 간단한 것으로 끝났습니다.

ctrl터미널 + alt+ 를 열고 t작업 디렉터리를 변경합니다.

 cd /etc/ssl/certs/

pem 파일을 다운로드하세요.인증서폴더

 sudo wget https://curl.se/ca/cacert.pem 

이제 파일을 열어보세요.curlrc

nano ~/.curlrc 

열린 파일에 아래 줄을 추가하십시오.

capath=/etc/ssl/certs/
cacert=/etc/ssl/certs/ca-certificates.crt

이제 파일을 저장하고 컬 명령을 사용하여 작업을 수행하십시오.

주의여기서는 nano 편집기를 사용했지만 어떤 편집기를 사용해도 됩니다.

답변4

Ubuntu 14.04.5의 C++ 프로그램 중 하나에서 동일한 문제에 직면했습니다. 이 .curlrc방법은 효과가 없었습니다.

ca-certificates.crt이 문제는 을 다운로드하고 디렉토리 아래에 /etc/ssl/certs/ca-certificates.crt심볼릭 링크를 생성하여 해결되었습니다 .ca-bundle.crt/etc/pki/tls/certs/

도움이 되었기를 바랍니다!

관련 정보