"신뢰할 수있는 목록"에 자체 서명 된 인증서 추가


87

빌드 서버에 대해 자체 서명 된 인증서를 생성했으며 키를 직접 만들었고 경고가 표시되지 않기 때문에 내 컴퓨터의 인증서를 전역 적으로 신뢰하고 싶습니다.

우분투 12.04에 있습니다. 브라우저 (Google Chrome), CLI 유틸리티 (wget, curl) 및 프로그래밍 언어 (Python, Java 등)가 묻지 않고 https://mysite.com에 대한 연결을 신뢰하도록 인증서를 가져 와서 전 세계적으로 신뢰할 수있는 방법 질문?


모든 TLS는 OpenSSL을 통해 벡터화되어야하므로 문서를 찾을 수 있습니다. 이 경우 gagravarr.org/writing/openssl-certs/… 가 유용하게 보입니다.
msw

답변:


87

이에 대한 간단한 대답은 각 응용 프로그램이 거의 다르게 처리한다는 것입니다.

또한 OpenSSL과 GNUTLS (서명 된 인증서를 처리하는 데 가장 널리 사용되는 인증서 처리 라이브러리)는 인증서를 처리 할 때 다르게 동작하므로 문제가 복잡해집니다. 또한 운영 체제는 대부분의 웹 사이트에서 사용하는 "루트 CA"를 사용하기 위해 다른 메커니즘을 사용합니다.

그 외에도 데비안을 예로 들어 보겠습니다. ca-certificates패키지를 설치하십시오 :

apt-get install ca-certificates

그런 다음 신뢰할 수없는 CA 인증서 (CSR에 서명하는 데 사용하는 인증서)의 공용 절반을 루트로 CA 인증서 디렉토리에 복사하십시오.

cp cacert.pem /usr/share/ca-certificates

그리고 인증서가 포함 된 디렉토리를 다시 빌드하고 루트로 실행하십시오.

dpkg-reconfigure ca-certificates

ask옵션을 선택하고 인증서로 스크롤하여 포함하도록 표시하고 확인을 선택하십시오.

대부분의 브라우저는 자체 CA 데이터베이스를 사용하므로 패키지와 함께 certutil제공되는 데비안에서 내용을 수정하려면 같은 도구 를 사용해야합니다 libnss3-tools. 예를 들어 Chrome을 사용하면 다음 라인을 따라 무언가를 실행합니다.

certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n "My Homemade CA" -i /path/to/CA/cert.file

Firefox에서는 디스크의 인증서를 찾아 인증서 파일을 인식 한 다음 루트 CA 목록으로 가져올 수 있습니다.

curlCA를 가리 키기 위해 사용할 수있는 명령 줄 스위치 와 같은 대부분의 다른 명령

 curl --cacert  /path/to/CA/cert.file https://...

또는 SSL 유효성 검사를 모두 삭제하십시오.

 curl --insecure https://...

ca-certificates유사한 트릭이 특정 응용 프로그램에 대해 정렬하지 않으면 나머지는 개별 조사가 필요 합니다.


또한 여기 에 명시된 바와 같이 Java 용 CA 인증서를 추가하는 것도 별개의 문제입니다.
Naftuli Kay

2
인증서를 / usr / share / ca-certificates에 복사 한 후 dpkg-reconfigure ca-certificates목록 에서 볼 수 없습니다 . 내가 무엇을 잘못하고 있지?
Georges Dupéron

18
@ GeorgesDupéron 그것은 나에게 일어났다. 나는에서 인증서의 이름을 변경하여 해결 whatever.pemwhatever.crt.
Hello World


2
참고로,이라는 인증서 파일이 있는데 .cer작동하지 않습니다. .crt인식 되도록 이름을 바꿔야했습니다 .
Tri Nguyen

53

비대화 형 접근

비대화 형 컨텍스트 (예 : 요리사 레시피)에서 사용하려면 다음 순서를 사용할 수 있습니다.

sudo cp my.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
  • 데비안 5/6 및 우분투 14.04에서 테스트 및 작동합니다.
  • 자세한 내용은 man update-ca-certificates

이 방법은 @Drav의 방법보다 선호 /usr/share/됩니다. 일반적으로 OS /에 의해 추가 된 파일을 위해 예약되어 있기 때문 입니다 apt-get.


4
/usr/local/share/ca-certificates/매뉴얼 페이지에 언급 된대로 파일을 복사하는 것이 좋습니다
ortang

3
참고로 A는 a이어야하며 추가 된 .crt것으로 나타 .cert났지만 도움이되지 않음을 발견 했습니다.
KCD

6

Fedora 23에서 .pem 또는 .der 파일을 추가 /etc/pki/ca-trust/source/anchors/하고 실행하십시오 sudo update-ca-trust extract.

man update-ca-trust/ etc 또는 / usr 사용 여부와 같은 세부 사항을 참조하십시오 .


4

센 토스에서 :

cp *.pem /etc/pki/ca-trust/source/anchors/
update-ca-trust extract

언제 openssl connect/ anchors 폴더를 지정해야합니까? 여전히 오류가 발생합니다 "self signed certs
Janac Meena

2


최근 데비안 기반 시스템을위한 비대화 형 접근 방식 (10 월 18 일)

호스트의 저장소에 인증서를 추가하고 활성화하여 응용 프로그램이 실제로 해당 인증서를 사용하도록하는 것에는 차이가 있습니다. 저장소의 기존 인증서가 반드시 사용되는 것은 아닙니다 (아직도 여전히 많은 패키지가 잘못되었다는 것을 인정해야하지만)
이것은 /etc/ca-certificate.conf인증서가 있지만 인증서 사용 을 고려 하고 거부 하는 패키지를 설정할 때 혼란을 줄 수 있습니다 오류없이 추가되었습니다. update-ca-certificates인증서를 /etc/ca-certificate.conf또는 에 추가하여 인증서를 복사하지 말고 명시 적 으로 알려야 /etc/ca-certificate/update.d합니다.

CERT=mycert.crt
cp /mypath/to/$CERT /usr/share/ca-certificates/$CERT
    # notice the + sign which tells to activate the cert!!!
echo "+$CERT" >/etc/ca-certificates/update.d/activate_my_cert
dpkg-reconfigure ca-certificates;

이제 다른 경로를 사용하여 인증서를 암시 적으로 신뢰하는 방법이 있으므로 혼란스러워집니다.

CERT=mycert.crt
cp /mypath/to/$CERT /usr/local/share/ca-certificates/$CERT
update-ca-certificates;
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.