내 빌드 서버에 대해 자체 서명된 인증서를 생성했으며 키를 직접 생성했고 경고를 보는 데 지쳤기 때문에 내 컴퓨터에서 해당 인증서를 전역적으로 신뢰하고 싶습니다.
우분투 12.04를 사용하고 있습니다. 브라우저(Google Chrome), CLI 유틸리티(wget, 컬) 및 프로그래밍 언어(Python, Java 등)가 https://example.com
질문 없이 연결을 신뢰하도록 인증서를 얻고 이를 전역적으로 신뢰하려면 어떻게 해야 합니까 ?
답변1
이에 대한 간단한 대답은 거의 모든 응용 프로그램이 이를 다르게 처리한다는 것입니다.
또한 OpenSSL과 GNUTLS(서명된 인증서 처리에 가장 널리 사용되는 인증서 처리 라이브러리)가 인증서 처리 시 다르게 동작한다는 사실로 인해 문제가 복잡해집니다. 또한 운영 체제는 대부분의 웹 사이트에서 사용되는 "루트 CA"를 활용하기 위해 다양한 메커니즘을 활용합니다.
그 외에도 데비안을 예로 들어 보겠습니다. 설치 ca-certificates
패키지:
apt-get install ca-certificates
그런 다음 신뢰할 수 없는 CA 인증서(CSR에 서명하는 데 사용된 인증서)의 공개 부분을 CA 인증서 디렉터리(루트 디렉터리)에 복사합니다.
cp cacert.crt /usr/share/ca-certificates
노트:인증서를 .crt
수집하려면 확장 프로그램이 필요합니다.
그리고 인증서가 포함된 디렉터리를 다시 빌드하고 루트로 실행합니다.
dpkg-reconfigure ca-certificates
해당 ask
옵션을 선택한 상태에서 인증서로 스크롤하여 포함됨으로 표시하고 확인을 선택합니다.
대부분의 브라우저는 자체 CA 데이터베이스를 사용하므로 certutil
비슷한 도구(Debian의 패키지에서 제공 libnss3-tools
)를 사용하여 내용을 수정해야 합니다. 예를 들어 Chrome을 사용하면 다음을 실행할 수 있습니다.
certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n "My Homemade CA" -i /path/to/CA/cert.file
Firefox를 사용하면 디스크에서 인증서를 찾아 인증서 파일로 인식한 다음 이를 루트 CA 목록으로 가져올 수 있습니다.
대부분의 다른 명령(예: curl
take 명령줄 스위치)을 사용하여 CA를 지정할 수 있습니다.
curl --cacert /path/to/CA/cert.file https://...
또는 SSL 확인을 완전히 포기하세요
curl --insecure https://...
ca-certificates
특정 애플리케이션에 대해 유사한 트릭을 분류할 수 없는 경우 나머지는 별도의 조사가 필요합니다.
답변2
비대화형 방식
비대화형 환경(예: 요리사 레시피)에서 사용하려면 다음 순서를 사용할 수 있습니다.
sudo cp my.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
- Debian 5/6 및 Ubuntu 14.04에서 테스트하고 작업 중입니다.
- 자세한 내용은 다음을 참조하세요.
man update-ca-certificates
/usr/share/
이 방법은 일반적으로 OS/추가 파일용으로 예약되어 있으므로 @Drav의 방법보다 낫습니다 apt-get
.
답변3
페도라 모자
Fedora 23에서는 .pem 또는 .der 파일을 추가 /etc/pki/ca-trust/source/anchors/
하고 sudo update-ca-trust extract
.
man update-ca-trust
/etc 또는 /usr 사용 여부와 같은 자세한 내용은 참고자료를 참조하세요 .
알프스 산맥
.pem을 에 추가 /usr/local/share/ca-certificates/
하고 실행합니다 update-ca-certificates
.
이 알파인 도구의 소스는 다음과 같습니다.https://github.com/alpinelinux/ca-certificates/blob/898ab81b51730dcd175069956d6e792385c9f457/update-ca.c#L18
답변4
비대화형 방법(2018년 10월)
최신 Debian 기반 시스템의 경우
호스트 저장소에 인증서를 추가하는 것과 애플리케이션이 실제로 인증서를 활용할 수 있도록 활성화하는 것에는 차이가 있습니다. 저장소에 있는 기존 인증서가 반드시 사용되는 것은 아닙니다(비록 이것이 잘못된 패키지가 여전히 많다는 점을 인정해야 하지만). 인증서 사용을 고려하고 단순히 거부하는 패키지를
설정할 때 혼란스러울 수 있습니다. /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;