Debian Air-Gapped 호스트에 로컬 CA 권한을 추가하는 방법

Debian Air-Gapped 호스트에 로컬 CA 권한을 추가하는 방법

주어진: 로컬 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-certificatesCA 서버의 공용 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-keystoreJava 패키지가 설치된 경우 CA 인증서에 대한 JKS 키 저장소를 생성하는 스크립트가 있습니다 (예: /etc/ssl/certs/java/cacerts.

매뉴얼 페이지 man update-ca-certificates와 추가 문서 가 있습니다 /usr/share/doc/ca-certificates. 그러나 모든 문서를 철저하게 읽지 않으면 다음 사실을 놓칠 수 있습니다.아래 디렉토리를 생성해야 합니다./usr/local/share/ca-certificatesCA 인증서를 안에 넣으면 최상위 수준의 인증서 파일은 /usr/local/share/ca-certificates무시됩니다.

update-ca-certificates명령은 Debian 및 관련 배포판에서 사용됩니다. 언급한 명령은 update-ca-trustFedora에서 유래했으며 Arch에서도 사용되는 것으로 보입니다(관련 배포판도 가능할까요?).

이 두 명령은 기본적으로 동일한 작업을 수행합니다. 단, 각 릴리스 시리즈는 시스템 전체 CA 인증서에 대해 약간 다른 디렉터리 계층 구조를 유지하기 때문에 정확한 경로 이름은 다릅니다.

관련 정보