DUICUO

Mkchainを使用して有効なSSL証明書チェーンを構築する方法

Mkchainについて

Mkchainは、研究者が有効なSSL証明書チェーンを簡単に構築できる強力なオープンソースセキュリティツールです。さらに、不完全なSSL証明書チェーンを修復したり、不足しているすべてのCA証明書をダウンロードしたりすることも可能です。さらに、リモートサーバーからすべての証明書をダウンロードして、独自の証明書チェーンを修復することも可能です。

ツール要件

Mkchain の現在のバージョンでは、次の外部ユーティリティが必要です。

OpenSSL (v1.10g/h)

GNU/Linux (Debian または CentOS)

バッシュ(v4.4.19)

ツールのダウンロード

まず、研究者は次のコマンドを使用して、プロジェクトのソース コードをローカル マシンに複製できます。

 git clone https://github.com/trimstray/mkchain

次に、プロジェクト ディレクトリに切り替えて、ツールのインストール スクリプトを実行します。

 ./setup.sh install

bin/mkchain を指すシンボリック リンクを /usr/local/bin に移動します。

ツールのユーザーマニュアルは /usr/local/man/man8 にあります。

最後に、次のコマンドを使用して Mkchain の使用を開始できます。

 mkchain -i /data/certs -o /data/chain.crt

ツールパラメータ

このツールは、次のランタイム パラメータ オプションを提供します。

 Usage: mkchain <option|long-option> Options: --help 显示工具帮助信息和退出--debug 在屏幕上显示调试信息(调试模式) -i, --in 添加要整合的证书(单/多文件、包含SSL证书的目录或远程域名) -o, --out 将所有的结果(证书链)存储到文件中--with-root 将根证书添加到证书链

ツール操作機構

ssllabs 証明書チェーンを例にとると、mkchain プロジェクトは example/ssllabs.com ディレクトリを提供します。このディレクトリには、all ディレクトリ (証明書チェーンの構築に必要なすべての証明書を含む) と server_certificate ディレクトリ (サーバー証明書のみを含む) が含まれます。

ssllabs.com ドメインの正しい証明書チェーン (openssl コマンドの出力):

 Certificate chain 0 s:/C=US/ST=California/L=Redwood City/O=Qualys, Inc./CN=ssllabs.com i:/C=US/O=Entrust, Inc./OU=See www.entrust.net/legal-terms/OU=(c) 2012 Entrust, Inc. - for authorized use only/CN=Entrust Certification Authority - L1K 1 s:/C=US/O=Entrust, Inc./OU=See www.entrust.net/legal-terms/OU=(c) 2012 Entrust, Inc. - for authorized use only/CN=Entrust Certification Authority - L1K i:/C=US/O=Entrust, Inc./OU=See www.entrust.net/legal-terms/OU=(c) 2009 Entrust, Inc. - for authorized use only/CN=Entrust Root Certification Authority - G2 2 s:/C=US/O=Entrust, Inc./OU=See www.entrust.net/legal-terms/OU=(c) 2009 Entrust, Inc. - for authorized use only/CN=Entrust Root Certification Authority - G2 i:/C=US/O=Entrust, Inc./OU=www.entrust.net/CPS is incorporated by reference/OU=(c) 2006 Entrust, Inc./CN=Entrust Root Certification Authority

シーン1

このシナリオでは、すべての証明書をリンクします。

シーン2

このシナリオでは、サーバー証明書のみを使用して残りの必要な証明書を取得し、すべての証明書をリンクします。

証明書パス

Mkchain では、次の 2 つの証明書パスを使用できます。

ツールの使用例

mkchain --in Root.crt --in Intermediate1.crt --in Server.crt --out bundle_chain_certs.crt
 mkchain --in /tmp/certs --out bundle_chain_certs.crt --with-root
 mkchain -i Server.crt -o bundle_chain_certs.crt
 mkchain -i https://incomplete-chain.badssl.com/ --with-root

ライセンス契約

このプロジェクトの開発とリリースは、GPL-3.0 オープンソースライセンス契約に従って行われます。

プロジェクトアドレス

Mkchain: [GitHub リンク]

参考文献

https://medium.com/@superseb/get-your-certificate-chain-right-4b117a9c0fce

https://support.dnsimple.com/articles/ssl-certificate-chain/ とは

この記事はAlpha_h4ckによって執筆されました。転載の際は、FreeBuf.COMからの転載であることを明記してください。