Debian 장치에 사설 CA 인증서 배포

Debian 장치에 사설 CA 인증서 배포

우리는 인트라넷 사이트에서만 사용하는 사설 인증 기관(CA)을 갖고 있습니다.

인증서를 쉽게 얻을 수 있습니다.

openssl s_client -showcerts -connect atlas.sim.local:8443 </dev/null 2>/dev/null|openssl x509 -outform PEM >atlas.crt

내 Debian 장치가 이 인증 기관을 자동으로 신뢰하도록 하고 싶습니다. 개인 저장소가 있고 apt모든 데비안 장치에는 이 저장소의 패키지가 설치되어 있습니다. 그래서 이 *.crt파일을 이 패키지에 배포하고 싶습니다 .

이 패키지는 다음을 효과적으로 수행합니다.

install -Dm644 atlas.crt /usr/share/ca-certificates/sim.local/atlas.crt

그런데 이 파일을 배포한 후 CA 인증서를 어떻게 다시 생성합니까? 배포할 파일이나 postinst.


나의 첫 번째 생각은 간단했습니다.

/usr/sbin/update-ca-certificates

그러나 man update-ca-certificates말했다:

update-ca-certificates/etc/ssl/certsSSL 인증서를 보관할 디렉터리를 업데이트하고 인증서를 생성하는 프로그램입니다 ca-certificates.crt.

파일을 읽습니다 /etc/ca-certificates.conf. 각 줄은 /usr/share/ca-certificates신뢰할 수 있는 CA 인증서의 경로 이름을 제공합니다.

이렇게 하려면 sim.local/atlas.crt해당 파일이 있는지 확인해야 합니다. 안타깝게도 해당 콘텐츠가 포함된 다른 파일을 삽입할 수 있는 방법 /etc/ca-certificates.conf이 없습니다 ./etc/ca-certificates.conf.d/


내가 읽어보면 /etc/ca-certificates.conf다음과 같다.

# This file lists certificates that you wish to use or to ignore to be
# installed in /etc/ssl/certs.
# update-ca-certificates(8) will update /etc/ssl/certs by reading this file.
#
# This is autogenerated by dpkg-reconfigure ca-certificates.

그래서 시도해 볼 수 있습니다.

dpkg-reconfigure ca-certificates

그러나 이로 인해 기본적으로 인증서 선택이 취소되는 대화형 대화 상자가 나타납니다. 차라리 이것이 비대화형이었으면 좋겠습니다.


이것이 내가 지금 가지고 있는 것입니다 postinst. 그러나 이것이 올바른 해결책인지는 확실하지 않습니다. 올바른 방법이 있나요?

#!/bin/bash

set -e

case "$1" in
  configure)

    if [ -e /etc/ca-certificates.conf ] && 
      ! grep -q sim.local/atlas.crt /etc/ca-certificates.conf; then

        printf "%s\n" sim.local/atlas.crt >> /etc/ca-certificates.conf;
        /usr/sbin/update-ca-certificates;
    fi
  ;;
esac

답변1

동일한 매뉴얼 페이지에서:

또한 /usr/local/share/ca-certificates 아래에 있는 .crt 확장자를 가진 모든 인증서도 암시적으로 신뢰할 수 있는 것으로 포함됩니다.

즉, 실행할 필요가 없습니다 . 파일을 에 dpkg-reconfigure 넣고 실행 하면 완료됩니다..crt/usr/local/share/ca-certificatesupdates-ca-certificates

답변2

이렇게 하려면 sim.local/atlas.crt해당 파일이 있는지 확인해야 합니다. 안타깝게도 해당 콘텐츠가 포함된 다른 파일을 삽입할 수 있는 방법 /etc/ca-certificates.conf이 없습니다 ./etc/ca-certificates.conf.d/

그런 다음 /etc/ca-certificates.conf마지막에 CRT를 수동으로 추가하십시오.

echo sim.local/atlas.crt >> /etc/ca-certificates.conf

마지막으로 전화를 걸어보세요 update-ca-certificates.


그래서 시도해 볼 수 있습니다.

dpkg-reconfigure ca-certificates

그러나 이로 인해 기본적으로 인증서 선택이 취소되는 대화형 대화 상자가 나타납니다. 차라리 이것이 비대화형이었으면 좋겠습니다.

문제의 우선순위를 '높음' 이상('중요')으로 설정하면 다음 작업이 수행되지 않습니다.

dpkg-reconfigure -phigh ca-certificates

update-ca-certificates어쨌든 -ing 대신 dpkg-reconfigure다른 패키지를 호출해야 한다고 생각합니다 .

답변3

마지막으로 가장 간단한 해결책은 공용 CA에서 인증서를 구입하는 것입니다. 문제를 해결하는 데 더 많은 시간을 소비하는 것보다 비용도 저렴합니다.

CN(일반 이름)에는 와일드카드가 포함될 수 있으므로 해당 인증서를 구입 CN=*.mycompany.com하고 서버의 FQDN을 atlas.sim.local에서 atlas.mycompany.com.

또한 모든 컴퓨터를 *.mycompany.com.

이는 모든 애플리케이션(자체 루트 CA 목록이 있는 Firefox 및 Chromium 포함)과 모든 운영 체제에서 작동합니다.

대답은 궁극적으로 Unix에 국한되지 않기 때문에 질문을 ServerFault로 옮길 수 있을 것 같습니다.

관련 정보