[server] Ubuntu 10.04 / CURL : CA 번들을 수정 / 업데이트하려면 어떻게합니까?

최근에 서버를 8.04에서 10.04로 업그레이드했으며 모든 소프트웨어와 함께 서버를 업그레이드했습니다.

온라인에서 찾은 결과, 새로운 버전의 CURL에 CA 번들이 포함되어 있지 않아 연결중인 서버의 인증서가 유효한 기관에 의해 서명되었는지 확인하지 못하는 것 같습니다. .

실제 오류는 다음과 같습니다.

CURL 오류 : SSL 인증서 문제입니다. CA 인증서가 올바른지 확인하십시오.
세부 사항 : 오류 : 14090086 : SSL 루틴 : SSL3_GET_SERVER_CERTIFICATE :
인증서 확인 실패

내가 찾은 일부 palces는 CURL을 호출 할 때 옵션을 설정하여 수동으로 CA 파일을 지정하거나 검사를 비활성화 할 것을 제안하지만 각 응용 프로그램의 CURL 호출을 수정하는 대신 전체적으로 문제를 해결하려고합니다.

CURL의 CA 문제를 서버 전체에서 수정하여 기존의 모든 응용 프로그램 코드를 수정하지 않고 그대로 작동하도록 할 수 있습니까?



답변

나는 똑같은 문제를 겪었고 약간의 파고를들은 후 컬 데브 사이트에서 우분투에 컬 준비가 된 CA 인증서 패키지를 다운로드 할 수 있음을 발견했다.

cd /etc/ssl/certs
sudo wget http://curl.haxx.se/ca/cacert.pem

이제 curl은 최신 번들을 사용하며 계속 사용하십시오.


답변

Ubuntu 12.04 와 비슷한 문제가 명령 줄에서 curl을 실행하여 github에있는 aws 명령 줄 도구를 얻었습니다. 명령 줄을 다음과 같이 실행했는지 확인했습니다.

curl https://raw.github.com/timkay/aws/master/aws -o aws --cacert /etc/ssl/certs/ca-certificates.crt

작동합니다. 그러나 “cacert”인수가 작동하지 않도록 CURL_CA_BUNDLE 환경 변수를 설정하려고 시도했습니다. 궁극적으로 인증서를 업데이트하면 문제가 해결 된 것 같습니다.

sudo update-ca-certificates

참고로, 어느 시점에서 curl.haxx.se에서 ca-certs를 업데이트하여 문제를 해결하지 못했지만 관련되었을 수 있습니다. (에서 sudo wget http://curl.haxx.se/ca/cacert.pem실행 /etc/ssl/certs).


답변

일반적으로 고유 한 구현이없고 OpenSSL에 대해 컴파일 된 소프트웨어는 시스템 전체에있는 ca-bundle.crt를 참조합니다. /usr/share/ssl/certs .

Ubuntu에서는 위치가 다를 수 있지만 OpenSSL 패키지에는 ca 번들 파일이 포함되어야합니다.

CURL에는 인증서 확인 방법을 지정하는 다양한 옵션이 있습니다.

  • 그만큼 CURL_CA_BUNDLE은 CA-번들 파일의 위치를위한 환경 변수.
  • --capathCA 인증서가있는 디렉토리를 지정할 수 있습니다. (재정의CURL_CA_BUNDLE )
  • --cacert CA 인증서 파일을 지정할 수 있습니다.

CentOS 서버에서 다음을 실행하여 CURL이 사용하는 ca 번들 경로를 식별 할 수 있습니다.

$ curl-config --ca
/usr/share/ssl/certs/ca-bundle.crt


답변