私たちは、イントラネットサイトでのみ使用されるプライベート認証機関(CA)を持っています。
証明書を簡単に入手できます。
openssl s_client -showcerts -connect atlas.sim.local:8443 </dev/null 2>/dev/null|openssl x509 -outform PEM >atlas.crt
私のDebianデバイスがこの認証局を自動的に信頼できるようにしたいと思います。プライベートリポジトリがあり、apt
すべてのDebianデバイスにはこのリポジトリのパッケージがインストールされています。だから私はこの*.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