2017-09-19 29 views
0

証明書を貼り付けてチェーンを生成するこのサービスhttps://whatsmychaincert.com/が見つかりました。OpenSSL証明書チェーンを生成する

OpenSSLでチェーンを生成する方法はありますか?

私は、このコマンドを発見した:

すべての証明書チェーンを示し
openssl s_client -connect example.com:443 -showcerts 

が、証明書はすでにオンラインであることが必要です。

ローカルファイル証明書を使用してチェーンを生成する方法はありますか?

+0

スタックオーバーフローは、プログラミングおよび開発の質問のサイトです。この質問は、プログラミングや開発に関するものではないので、話題にはならないようです。ヘルプセンターの[ここではどのトピックを参照できますか](http://stackoverflow.com/help/on-topic)を参照してください。おそらく、[Super User](http://superuser.com/)や[Unix&Linux Stack Exchange](http://unix.stackexchange.com/)の方が良いかもしれません。 – jww

答えて

2

s_client -showcertsは、サーバによって提供されるようなチェーンを示す。このである必要がありますが、必要に応じてルートが少なくなっていますが、一部のサーバーが正しく構成されていないというWebサイトがあるためです。また、1想像のとおりリンク「はどのようにこの作品は、」それがどのように動作するかを説明しています

mkcertchainは、SSL証明書の中間証明書 のチェーンを構築するためのユーティリティです。証明書の「CA Issuers」フィールドに指定されたURL からチェーン証明書をダウンロードし、すべての主要なブラウザで信頼されているルート証明書に が遭遇するまで繰り返します。 複数の証明書チェーンが見つかった場合は、最短の証明書チェーンが使用されます。 (例えば、おそらくデータベース照会のような)いくつかのプログラムによって起動ファイル内の証明書、または出力可能考える

、PEMまたは「DER」(バイナリ)形式のいずれかでopenssl x509 -text [-inform pem|der]出力CA」を含む証明書データの全て発行者。 awk、perl、grep、bashやPowerShellなどのシェルのような任意の数のテキスト処理プログラムは、その行とその値を抽出できるはずです。通常はhttp:であるので、curl wgetはcertを取得できます。 perl、shell、PowerShellなどのスクリプト言語であれば、必要に応じてこのプロセスを繰り返し、SubjectとIssuerを比較してルートにヒットすると停止することができます。もう少し複雑なルートではないアンカーで停止したいのですが、主要なブラウザで現在このようなアンカーが受け入れられているとは思わないので、受け入れられるチェーンを構築する目的では必要ありませんブラウザによって。

FWIWは、あなたの本命はがAIAにCA発行体のフィールドを持っていない場合でも、中間体を含むほとんどのパブリックCAが今https://crt.shで簡単に検索している証明書の透明性ログによって捕捉されています。おそらくリンクをクリックするだけで簡単にチェーンをナビゲートすることができるので、私はそれを自動化しようとは考えていませんでしたが、ウェブサイトと相互作用するウェブブラウザを「駆動」するか、シミュレートするツールが多々あります。

もちろん、最初に証明書を発行したCAはで、常にに必要なチェーン証明書を提供する必要があります。それは彼らの仕事の一部です。

関連する問題