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


17

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

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

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

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

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

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

답변:


17

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

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

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


1
그 후 나는 다음과 같이 업데이트해야했다 : update-ca-certificates -f
Grain

9

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).


링크 404'd입니다. 이 작품 : curl.haxx.se/ca/cacert.pem
dave1010

2
흠. HTTPS 를 통하지 않는 인증서를 포함하는 파일을 가져 오기 위해 회피하는 것 같습니다 .
Matthew Schinckel

5

일반적으로 고유 한 구현이없고 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

1
Open SSL이 설치되었습니다. / etc / ssl / certs /에 "ca-certificates.crt"파일이 있는데 여러 인증서가 함께 연결된 것처럼 보이지만 CURL이 보이지 않는 것 같습니다. CURL에 CA 번들에 대한 구성 설정이 있습니까?
Nick

인증하려는 인증서 유형이 아닙니까? 확장 인증 인증서와 같은 최신 인증서 기술은 루트 인증서가 비교적 새롭기 때문에 종종 공동 번들 업데이트가 필요합니다. 예정된 편집 내용도 확인하십시오.
워너

curl-config는 Ubuntu에서 유효한 명령이 아닌 것 같습니다. CURL_CA_BUNDLE을 어떻게 설정합니까?
Nick

libcurl3-openssl-dev빠른 인터넷 검색을 기반으로하는 패키지 의 일부인 것 같습니다 . CURL_CA_BUNDLE환경 변수 일뿐입니다. bash에서 CURL_CA_BUNDLE=/path/to/file.
워너

패키지가 설치되었지만 "curl-config --ca"는 빈 줄을 만듭니다. 'CURL_CA_BUNDLE = "/ etc / ssl / certs / ca-certificates.crt"'를 사용하여 변수 설정을 시도했습니다. 그러나 "curl-config --ca"는 여전히 빈 줄을 생성합니다.
Nick
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.