내 cURL 버전과 함께 번들로 제공되는 CA 번들이 오래된 문제가 발생했습니다.
curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html
내가해야 할 일이나 수행 방법을 이해하지 못했기 때문에 설명서를 읽는 것이 도움이되지 않았습니다. RedHat을 실행 중이며 CA 번들을 업데이트해야합니다. RedHat에서 내 CA 번들을 업데이트하려면 어떻게해야합니까?
답변
나중에 RHEL 6의 경우 , 당신은 사용해야 갱신-CA 신뢰를 lzap 아래 그의 대답에 대해 설명대로.
— Fedora, CentOS, Redhat의 이전 버전 :
Curl은 시스템 기본 CA 번들을 사용하고 있으며 /etc/pki/tls/certs/ca-bundle.crt에 저장되어 있습니다. 변경하기 전에 필요한 경우 시스템 기본값을 복원 할 수 있도록 해당 파일의 사본을 만드십시오. 새 CA 인증서를 해당 파일에 추가하거나 전체 번들을 교체 할 수 있습니다.
인증서를 어디서 구할 수 있는지 궁금하십니까? 나는 (그리고 다른 사람들은) curl.haxx.se/ca를 추천한다. 한 줄로 :
curl https://curl.haxx.se/ca/cacert.pem -o /etc/pki/tls/certs/ca-bundle.crt
Fedora Core 2 위치는 /usr/share/ssl/certs/ca-bundle.crt
입니다.
답변
RHEL 6+ 시스템에서 권장되는 방법 은 현재 기본적으로 설치되는 update-ca-trust 도구를 사용하는 것입니다.
# cat /etc/pki/ca-trust/source/README
This directory /etc/pki/ca-trust/source/ contains CA certificates and
trust settings in the PEM file format. The trust settings found here will be
interpreted with a high priority - higher than the ones found in
/usr/share/pki/ca-trust-source/.
=============================================================================
QUICK HELP: To add a certificate in the simple PEM or DER file formats to the
list of CAs trusted on the system:
Copy it to the
/etc/pki/ca-trust/source/anchors/
subdirectory, and run the
update-ca-trust
command.
If your certificate is in the extended BEGIN TRUSTED file format,
then place it into the main source/ directory instead.
=============================================================================
Please refer to the update-ca-trust(8) manual page for additional information
따라서 crt 파일을에 /etc/pki/ca-trust/source/anchors/
놓고 도구를 실행 하기 만하면됩니다 . 작업 완료. 이것은 안전합니다. 백업을 수행 할 필요가 없습니다. 전체 매뉴얼 페이지는 여기에서 찾을 수 있습니다 : https://www.mankier.com/8/update-ca-trust
답변
RHEL은 ca-certificates
패키지의 일부로 Mozilla CA 인증서를 제공합니다 ( yum
아직 설치하지 않은 경우 설치). cURL에이를 사용하도록하려면 --cacert
매개 변수를 사용하십시오 .
curl --cacert /etc/ssl/certs/ca-bundle.crt https://google.com/
답변
Redhat 버전에 따라 다릅니다. 다음을 수행하여 파일을 실제로 업데이트하는 패키지를 찾을 수 있습니다.
rpm -qf /etc/pki/tls/certs/ca-bundle.crt
내 결과 openssl-0.9.8e-12.el5 를 업데이트해야 한다는 것을 보여주었습니다 .
배포판에 업데이트 된 인증서가 없으면 Nada의 답변에 따라 수동으로 업데이트해야합니다.
답변
Dan Pritts의 의견 이후 Red Hat은 지원되는 RHEL 릴리즈에 대한 인증서 번들을 더 자주 업데이트하고 있습니다. 패키지 변경 로그에서 이것을 쉽게 볼 수 있습니다. RHEL 6의 인증서는 2013 년에 두 번, 2014 년에 두 번 업데이트되었습니다.
모든 RHEL 및 관련 / 복제 / 파생 배포판은에 번들 파일을 제공 /etc/pki/tls/certs/ca-bundle.crt
하고에 동일한 파일이 있습니다 /etc/pki/tls/cert.pem
(이전 배포판의 cert.pem
경우 심볼릭 링크입니다 ca-bundle.crt
. 최신 배포판의 파일 형식은 심볼릭 링크입니다 update-ca-trust
).
RHEL 6 이상에서 번들은 ‘ca-certificates’패키지의 일부입니다. RHEL 5 이하에서는 ‘openssl’패키지의 일부입니다.
업데이트 https://rhn.redhat.com/errata/RHEA-2013-1596.html 및 최신 RHEL 이 포함 된 RHEL 6 에서 ‘공유 시스템 인증서’시스템을 사용할 수 있으며 ( update-ca-trust enable
활성화 하려면 실행해야 함) 방법은 lzap에서 제공 한 방법입니다. 이 시스템의 장점은 OpenSSL 기반 응용 프로그램뿐만 아니라 NSS 및 GnuTLS 기반 응용 프로그램에서도 작동한다는 것입니다. 디렉토리에 인증서를 배치하여 인증서를 신뢰할 수 없음에 유의하십시오 /etc/pki/ca-trust/source/blacklist/
.
RHEL 5 이상 (및 새 시스템을 사용하지 않으려는 경우 RHEL 6) 에서는 / etc / pki / tls / certs에 확장자가.pem
있는 PEM 형식의 인증서 파일 을 배치하고 실행하여 추가 CA를 신뢰할 c_rehash
수 있습니다 (필요할 수도 있음). yum install /usr/bin/c_rehash
). 이것은 OpenSSL의 기본 신뢰 저장소를 사용하는 소프트웨어에서만 작동합니다. 번들 파일에 대한 공식 업데이트를 계속받을 수 있으므로 번들 파일을 편집하거나 바꾸는 것보다 낫습니다.
OpenSSL에 시스템 기본 신뢰 저장소를 사용하도록 요청하지 않고 번들 파일 위치 중 하나를 직접 사용하는 소프트웨어는 변경 사항을 존중하지 않습니다. 이러한 소프트웨어가있는 경우 번들 파일 편집 (또는 소프트웨어 개선)이 중단됩니다. OpenSSL을 전혀 사용하지 않는 소프트웨어는 추가 된 인증서를 존중하지 않습니다.
답변
나는 단지 오래된 RHEL5 박스에서 이것을해야했다. 캐치 22에 도달했습니다 … curl은 컴퓨터의 인증서가 너무 오래되어 curl.haxx.se 인증서를 검증하지 못했기 때문에 https 다운로드를 거부합니다.
https의 강제 다운로드를 위해 curl의 –insecure 옵션을 사용했습니다. (예, 알고 있습니다 … “안전하지 않은”것입니다.)
컬 https://curl.haxx.se/ca/cacert.pem –insecure -o /etc/pki/tls/certs/ca-bundle.crt
답변
들어 RHEL 6 , 나는 업데이트 및 Red Hat에서 최신 CA 인증서에서 패키지를 다시 설치하여이 문제를 해결할 수 있었다 :
sudo yum update ca-certificates
sudo yum reinstall ca-certificates
(필자의 경우, 최신 “Let ‘s Encrypt Authority X3″서명 인증서를 신뢰하기에 충분했습니다.)