ビルドサーバー用の自己署名証明書を生成しました。自分でキーを作成し、警告が表示されるのがうんざりしているため、マシン上の証明書をグローバルに信頼したいと思います。
Ubuntu 12.04を使用しています。ブラウザ(Google Chrome)、CLIユーティリティ(wget、curl)、およびプログラミング言語(Python、Javaなど)が確認せずにhttps://mysite.comへの接続を信頼できるように、証明書を取得してグローバルに信頼する方法質問?
ビルドサーバー用の自己署名証明書を生成しました。自分でキーを作成し、警告が表示されるのがうんざりしているため、マシン上の証明書をグローバルに信頼したいと思います。
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
ようなトリックがその特定のアプリケーションのためにそれをソートしない場合、残りは個々の調査を必要とします。
dpkg-reconfigure ca-certificates
リストに表示されません。私は何を間違えていますか?
whatever.pem
に変更して解決しましたwhatever.crt
。
.cer
、うまくいきませんでした。.crt
認識されるように名前を変更する必要がありました。
非対話型コンテキスト(シェフレシピなど)で使用するには、次のシーケンスを使用できます。
sudo cp my.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
man update-ca-certificates
/usr/share/
通常、このメソッドはOS /によって追加されたファイル用に予約されているため、@ Dravのメソッドよりも優先されますapt-get
。
/usr/local/share/ca-certificates/
マニュアルページに記載されているようにファイルをコピーすることをお
.crt
、私が発見し.cert
、それを添加した主張が、助けにはならなかった
最近の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;