주어진: 로컬 CA 서버를 사용하는 많은 웹 서비스가 있는 완전히 격리된 LAN입니다.
모든 사용자 호스트에는 CA 인증서가 설치되어 있으며 .crt 파일은 update-ca-certificates
보고 없이 Chrome 등과 같은 브라우저와 유사한 소프트웨어로 실행됩니다.
그러나 모든 명령줄 유틸리티(curl, git, wget 등)에서는 로컬 발급자를 확인할 수 없기 때문에 오류가 발생합니다.
컬의 메시지:
컬: (60) SSL 인증서 문제: 로컬 발급자 인증서를 얻을 수 없습니다.
대부분의 방법은 단순히 인터넷 전체 인증서 패키지를 설치하는 것과 관련됩니다. 어떤 사람들은 /etc/pki/whitelist 경로와 update-ca-trust
스크립트를 사용한다고 언급했지만 둘 다 시스템이나 저장소에 없습니다.
호스트 운영 체제: Debian 11
답변1
아래에 원하는 이름으로 디렉터리를 만들고 /usr/local/share/ca-certificates
CA 서버의 공용 CA 인증서를 PEM 형식의 파일로 해당 디렉터리에 넣습니다 *.crt
. 그런 다음 update-ca-certificates
.
시스템 전반에 걸쳐 여러 형식으로 로컬 CA 인증서를 추가합니다 /etc/ssl/certs
.
- 인증서 해시가 있는 심볼릭 링크가 있는 PEM 형식 인증서의 OpenSSL 스타일 디렉터리로 다음 위치에 있습니다.
/etc/ssl/certs
- 신뢰할 수 있는 모든 CA 인증서가 포함된 PEM 형식의 단일 파일로 다음 위치에 있습니다.
/etc/ssl/certs/ca-certificates.crt
- 및 에 배치된 스크립트로 생성할 수 있는 기타 양식입니다
/etc/ca-certificates/update.d
. 예를 들면 다음과 같습니다./etc/ca-certificates/update.d/jks-keystore
Java 패키지가 설치된 경우 CA 인증서에 대한 JKS 키 저장소를 생성하는 스크립트가 있습니다 (예:/etc/ssl/certs/java/cacerts
.
매뉴얼 페이지 man update-ca-certificates
와 추가 문서 가 있습니다 /usr/share/doc/ca-certificates
. 그러나 모든 문서를 철저하게 읽지 않으면 다음 사실을 놓칠 수 있습니다.아래 디렉토리를 생성해야 합니다./usr/local/share/ca-certificates
CA 인증서를 안에 넣으면 최상위 수준의 인증서 파일은 /usr/local/share/ca-certificates
무시됩니다.
이 update-ca-certificates
명령은 Debian 및 관련 배포판에서 사용됩니다. 언급한 명령은 update-ca-trust
Fedora에서 유래했으며 Arch에서도 사용되는 것으로 보입니다(관련 배포판도 가능할까요?).
이 두 명령은 기본적으로 동일한 작업을 수행합니다. 단, 각 릴리스 시리즈는 시스템 전체 CA 인증서에 대해 약간 다른 디렉터리 계층 구조를 유지하기 때문에 정확한 경로 이름은 다릅니다.