ビルドサーバー用の自己署名証明書を生成しました。自分でキーを作成し、警告が表示されてうんざりしているので、自分のマシンの証明書をグローバルに信頼したいと思います。
私はUbuntu 12.04を使用しています。ブラウザー(Google Chrome)、CLIユーティリティ(wget、curl)、およびプログラミング言語(Python、Javaなど)が https:// mysite .com 質問せずに?
これに対する簡単な答えは、ほぼすべてのアプリケーションが異なる方法で処理するということです。
また、OpenSSLとGNUTLS(署名付き証明書の処理に使用される最も広く使用されている証明書処理ライブラリ)は、証明書の扱いが異なるため、問題も複雑になります。また、オペレーティングシステムはさまざまなメカニズムを利用して、ほとんどのWebサイトで使用されている「ルートCA」を利用しています。
それはさておき、例としてDebianを挙げます。 ca-certificates
パッケージをインストールします。
apt-get install ca-certificates
次に、信頼されていないCA証明書(CSRの署名に使用する証明書)の公開部分を(ルートとして)CA証明書ディレクトリにコピーします。
cp cacert.pem /usr/share/ca-certificates
そして、証明書を含めてディレクトリを再構築し、ルートとして実行します:
dpkg-reconfigure ca-certificates
ask
オプションを選択し、証明書までスクロールして、含めるものとしてマークし、[ok]を選択します。
ほとんどのブラウザは独自のCAデータベースを使用するため、certutil
などのツールを使用してコンテンツを変更する必要があります(libnss3-tools
パッケージで提供されるDebian上)。たとえば、Chromeを使用すると、次の行に沿って何かを実行できます。
certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n "My Homemade CA" -i /path/to/CA/cert.file
Firefoxでは、ディスク上の証明書を参照し、それを証明書ファイルとして認識して、それをルートCAリストにインポートできます。
curl
などの他のほとんどのコマンドは、CAをポイントするために使用できるコマンドラインスイッチを取得します。
curl --cacert /path/to/CA/cert.file https://...
またはSSL検証を完全に削除します
curl --insecure https://...
ca-certificates
のようなトリックで特定のアプリケーション用に並べ替えられない場合、残りは個別に調査する必要があります。
非インタラクティブなコンテキスト(シェフのレシピなど)で使用するには、次のシーケンスを使用できます。
Sudo cp my.crt /usr/local/share/ca-certificates/
Sudo update-ca-certificates
man update-ca-certificates
を参照してください/usr/share/
は通常、OS/apt-get
によって追加されたファイル用に予約されているため、この方法は@Dravの方法よりも推奨されます。
Fedora 23では、.pemまたは.derファイルを/etc/pki/ca-trust/source/anchors/
に追加し、Sudo update-ca-trust extract
を実行します。
詳細については、man update-ca-trust
をご覧ください。/etcまたは/ usrを使用するかどうか。
Centos:
cp *.pem /etc/pki/ca-trust/source/anchors/
update-ca-trust extract
非対話型アプローチ(18年10月)
最近のdebianベースのシステムの場合
ホストのストアに証明書を追加することと、それをアクティブ化してアプリケーションが実際にそれらを利用できるようにすることには違いがあります。ストア内の既存の証明書が必ずしも使用されているわけではありません(とにかく、多くのパッケージがとにかく間違っていることを認めなければなりません)
これは、/etc/ca-certificate.conf
を考慮し、エラーなしで追加されたものの、証明書の使用を拒否するパッケージをセットアップするときに混乱する可能性があります。 update-ca-certificates
に/etc/ca-certificate.conf
または/etc/ca-certificate/update.d
に追加して証明書をアクティブ化するには(コピーだけでなく)明示的に通知する必要があります。
CERT=mycert.crt
cp /mypath/to/$CERT /usr/share/ca-certificates/$CERT
# notice the + sign which tells to activate the cert!!!
echo "+$CERT" >/etc/ca-certificates/update.d/activate_my_cert
dpkg-reconfigure ca-certificates;
ここで、別のパスを使用して証明書を暗黙的に信頼する方法があるため、混乱します。
CERT=mycert.crt
cp /mypath/to/$CERT /usr/local/share/ca-certificates/$CERT
update-ca-certificates;