우리는 인트라넷 사이트에서만 사용하는 사설 인증 기관(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/certs
SSL 인증서를 보관할 디렉터리를 업데이트하고 인증서를 생성하는 프로그램입니다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-certificates
updates-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로 옮길 수 있을 것 같습니다.