自己署名証明書を「信頼リスト」に追加する


88

ビルドサーバー用の自己署名証明書を生成しました。自分でキーを作成し、警告が表示されるのがうんざりしているため、マシン上の証明書をグローバルに信頼したいと思います。

Ubuntu 12.04を使用しています。ブラウザ(Google Chrome)、CLIユーティリティ(wget、curl)、およびプログラミング言語(Python、Javaなど)が確認せずにhttps://mysite.comへの接続を信頼できるように、証明書を取得してグローバルに信頼する方法質問?


すべてのTLSはOpenSSLを介してベクトル化される必要があるため、ドキュメントを探す場所になります。この場合:gagravarr.org/writing/openssl-certs/…は便利そうです。
msw

回答:


88

これに対する簡単な答えは、ほとんどの場合、各アプリケーションが異なる方法で処理するということです。

また、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リストにインポートできます。

curlCAを指すのに使用できるコマンドラインスイッチの取得など、他のほとんどのコマンドは、

 curl --cacert  /path/to/CA/cert.file https://...

または、SSL検証を完全に削除します

 curl --insecure https://...

そのca-certificatesようなトリックがその特定のアプリケーションのためにそれをソートしない場合、残りは個々の調査を必要とします。


また、ここで説明したよう、JavaのCA証明書の追加も同様に別の問題です。
ナフトゥリケイ14

2
証明書を/ usr / share / ca-certificatesにコピーした後、dpkg-reconfigure ca-certificatesリストに表示されません。私は何を間違えていますか?
ジョルジュデュペロン

19
@GeorgesDupéronそれは私に起こりました。証明書の名前をからwhatever.pemに変更して解決しましたwhatever.crt
Hello World


2
参考までに、という名前の証明書ファイルがありましたが.cer、うまくいきませんでした。.crt認識されるように名前を変更する必要がありました。
Tri Nguyen

54

非対話型アプローチ

非対話型コンテキスト(シェフレシピなど)で使用するには、次のシーケンスを使用できます。

sudo cp my.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
  • debian 5/6およびUbuntu 14.04でテストおよび動作します。
  • 詳細については、 man update-ca-certificates

/usr/share/通常、このメソッドはOS /によって追加されたファイル用に予約されているため、@ Dravのメソッドよりも優先されますapt-get


4
/usr/local/share/ca-certificates/マニュアルページに記載されているようにファイルをコピーすることをお
勧めし

3
FYI Aでなければなりません.crt、私が発見し.cert、それを添加した主張が、助けにはならなかった
KCD

6

Fedora 23では、.pemまたは.derファイルを追加し/etc/pki/ca-trust/source/anchors/て実行しsudo update-ca-trust extractます。

man update-ca-trust/ etcまたは/ usrを使用するかどうかなど、詳細を参照してください。


4

中心で:

cp *.pem /etc/pki/ca-trust/source/anchors/
update-ca-trust extract

いつopenssl connectこの/ anchorsフォルダーを指定する必要がありますか?私はまだエラー「取得していますself signed certs
Janacミーナ

2


最近のdebianベースのシステムのための非インタラクティブアプローチ(10月18日)

ホストのストアに証明書を追加することと、アプリケーションがそれらを実際に使用するようにアクティブ化することには違いがあります。(私はまだ多くのパッケージは、とにかくそれが間違って取得していることを認めざるを得ないが)ストア内の既存の証明書は必ずしも使用されていない
ときは、セットアップと見なしパッケージこれは混乱を取得することができます/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;
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.