Ubuntu 14.04에서 Curl로 CA 인증서 문제를 해결하는 방법?


13

우분투 14.04를 사용하고 있습니다. curl을 사용할 때 다음 오류가 발생합니다.

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 이이 위치를 찾고 있지만 여전히 작동하지 않아 오류가 발생합니다.

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

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

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

누구든지 이것을 고치는 방법을 알고 있습니까? 실제로 모든 인증서로 새로 시작하는 방법이 있습니까? 또는이 자체 서명 된 인증서의 위치를 ​​파악한 다음 제거하는 방법을 아는 사람이 있습니까?

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

답변:


10

지난 며칠 동안이 문제를 연구하고 연구 한 결과 효과가 있었으며 대답은 다소 간단했습니다.

내가 설정하는 데 필요한 capath=/etc/ssl/certs/내에서 .curlrc파일.

커맨드 라인에서 컬이 작동했습니다. R에서 컬이 작동하게하려면 (문제가 처음 발생한 곳) 이전에 시도한 것처럼 파일 에 있어야 cacert=/etc/ssl/certs/ca-certificates.crt했습니다 .curlrc. 그렇지 않으면 계속 찾습니다./etc/pki/tls/certs/ca-bundle.crt

자체 서명 된 인증서에 대한 오류가 발생한 이유를 여전히 알 수 없습니다.

다른 무작위 결과에 따라 Curl 웹 사이트에서 다음을 사용하여 인증서를 다운로드했습니다.

sudo wget http://curl.haxx.se/ca/cacert.pem

같은 certs디렉토리에. 데 cafile이뿐만 아니라 일에서 지적했다. 결국 나는 그것을 다시 넣고 ca-certificates.crt여전히 작동합니다.

이것이 왜 효과가 있었는지 또는 무슨 일이 일어나고 있는지 정확하게 이해하지 못하지만 해결되었습니다.


8

cafile 키는 작동하지 않지만 (curl 7.45.0) cacert (from --cacert 옵션)는 작동합니다. 내 .curlrc 파일 :

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

1
이것은 우분투 16.04에서 나를 위해 일했습니다!
Joost Döbken

0

우분투 14.04.5의 C ++ 프로그램 중 하나와 동일한 문제에 직면했습니다. .curlrc의 방법은 적용되지되었다.

이것은 다운로드하여 해결되었다 CA-certificates.crt 하는 /etc/ssl/certs/ca-certificates.crt을 하고 심볼릭 링크 생성 CA-bundle.crt를 아래 의 / etc / PKI / TLS / 인증서 표시 / 디렉토리.

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


0

몇 번 연구 한 후에 나는 그것을 작동 시켰고 그 대답은 오히려 단순한 것이 었습니다. 단계적으로 수행

Step:1 Open terminal ctrl+alt+t
Step:2 cd /etc/ssl/certs/
Step:3 sudo wget http://curl.haxx.se/ca/cacert.pem 

3 단계는 certs 폴더에 pem 파일을 다운로드 합니다

  Step 4: Check if .curlrc file is available in your home folder or not. 

.curlrc는 숨겨진 파일입니다. 홈 디렉토리에서 ctrl + h로 확인하십시오. 그렇지 않은 경우 터미널 유형

Step 5:  nano ~/.curlrc 
Step 6: Now paste the below lines in the open file
        capath=/etc/ssl/certs/
        cacert=/etc/ssl/certs/ca-certificates.crt
Step 7: Now save the file and do your things using curl command.

NB 여기서 나노 편집기를 사용했지만 모든 편집기를 사용할 수 있습니다.

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