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すべての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/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

おすすめ記事