Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
mkchain — 有効なSSL証明書チェーンを構築するのに役立つオープンソースツール。 | Kitploit
ツール/GitHubGitHub/trimstray/mkchain
暗号化/復号化ツール暗号化ユーティリティとフレームワーク
GitHubtrimstray/mkchain

mkchain

有効なSSL証明書チェーンを構築するのに役立つオープンソースツール。

リポジトリを見る
381521年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

mkchain

有効なSSL証明書チェーンを構築するためのオープンソースツール

Travis-CI Version License

説明 • 使い方 • パラメータ • 動作の仕組み • 要件 • その他 • ライセンス


Master

説明

有効なSSL証明書チェーンを構築するためのオープンソースツールです。不完全なチェーンを修正し、不足しているCA証明書をすべてダウンロードするのにも役立ちます。リモートサーバーからすべての証明書をダウンロードし、証明書チェーンを正しく構成することもできます。

使い方

簡単です:

root@kitploit:~
# このリポジトリをクローン
git clone https://github.com/trimstray/mkchain

# リポジトリに移動
cd mkchain

# インストール
./setup.sh install

# アプリを実行
mkchain -i /data/certs -o /data/chain.crt
  • bin/mkchain へのシンボリックリンクは /usr/local/bin に配置されます
  • マニュアルページは /usr/local/man/man8 に配置されます

パラメータ

以下のオプションを提供します:

root@kitploit:~
  使用方法:
    mkchain <option|long-option>

  例:
    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

  オプション:
        --help        このメッセージを表示
        --debug       画面に情報を表示 (デバッグモード)
    -i, --in          マージする証明書を追加 (ファイル、複数ファイル、SSL証明書が格納されたディレクトリ、
                      またはリモートドメイン)
    -o, --out         結果 (チェーン) をファイルに保存
        --with-root   ルート証明書を証明書チェーンに追加

-o|--out - このパラメータがない場合、mkchain は出力チェーンを mkchain/chains/ ディレクトリに保存します。

動作の仕組み

読む前に、SSL証明書チェーン に関する記事をご覧ください。

まず ssllabs の証明書チェーンについて説明します。これらは mkchain と一緒に提供され、example/ssllabs.com ディレクトリにあります。このディレクトリには、さらに all ディレクトリ (チェーンを組み立てるために必要なすべての証明書を含む) と server_certificate ディレクトリ (サーバー証明書のみを含む) が含まれています。

ssllabs.com ドメインの正しいチェーン (openssl コマンドの結果):

root@kitploit:~
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

上記のコードは、以下で構成される完全なチェーンを示しています:

  • 識別証明書 (サーバー証明書)

    ssllabs.com に対して発行され、Entrust Certification Authority - L1K によって署名

  • 中間証明書

    Entrust Certification Authority - L1K に対して発行され、Entrust Root Certification Authority - G2 によって署名

  • 中間証明書

    Entrust Root Certification Authority - G2 に対して発行され、Entrust Root Certification Authority によって署名

  • ルート証明書 (自己署名証明書)

    Entrust Root Certification Authority に対して発行され、Entrust Root Certification Authority によって署名

シナリオ 1

このシナリオでは、提供されたすべての証明書をチェーン化します。ツールの実行例:

Master

シナリオ 2

このシナリオでは、サーバー証明書のみを使用し、それを使用して残りの必要な証明書を取得します。その後、上記と同様に、提供されたすべての証明書を結合します。ツールの実行例:

Master

証明書チェーン

有効なチェーンを作成するには、ツールに必要なすべての証明書を提供する必要があります (-i|--in パラメータにディレクトリを設定した場合)。以下のものが必要です:

  • サーバー証明書
  • 中間CA および ルートCA

これは非常に重要です。これらがないと、チェーンの開始点と終了点を特定できません。

-i|--in の値として証明書ファイルのみを設定した場合、mkchain は自動的に必要なすべての証明書をダウンロードします。

ただし、mkchain で生成されたチェーン内を見ると、ルート証明書は含まれていません。

なぜでしょうか? 自己署名ルート証明書はWebサーバーの設定に含めるべきではない (含める必要もない) からです。ルート証明書には目的がなく (クライアントは常に無視します)、SSLハンドシェイクのサイズが大きくなるため、わずかなパフォーマンス (レイテンシ) のペナルティが発生します。

ルート証明書を証明書チェーンに追加したい場合は、--with-root パラメータを指定してユーティリティを呼び出します。

証明書パス

mkchain では、2つの 証明書パス を使用できます:

Master

出力コメント

証明書チェーンを生成する際、mkchain は証明書に関する情報 (エラーを含む) を含むコメントを表示します。

すべての可能性のリストは次のとおりです:

識別証明書 (エンドユーザー、サーバー) が見つかりません

このメッセージは、チェーンの開始点となるサーバー証明書がない場合に表示されます。これは特別なケースで、この状況では mkchain はこの情報のみを表示して動作を終了します。サーバー証明書は、チェーンを正しく作成するために必要な唯一の証明書です。この証明書がないと、正しいチェーンは作成されません。

正しい識別証明書 (エンドユーザー、サーバー) が見つかりました

ここでは逆の状況です。有効なサーバー証明書が見つかったときにメッセージが表示されます。

最初の中間証明書が見つかりません

このメッセージは、2つの中間証明書のうち最初のものが見つからない場合に表示されます。この情報は、2番目の中間証明書がないことを明示的に示すものではありませんが、サーバー証明書が署名された中間証明書が存在するかどうかを判断できます。また、2番目の中間証明書が提供されている場合にも表示される可能性があります。

2番目の中間証明書が見つかりません

上記と似ていますが、2番目の中間証明書に関するものです。ただし、2番目の証明書パスを使用してチェーンを正しく作成できる場合があります。例えば、最初の中間証明書を使用し、2番目をメインの証明書に置き換えるなどです。

1つ以上の中間証明書が見つかりません

このメッセージは、必要な中間証明書の1つまたはすべてが不足していることを意味し、ルート証明書がない場合に表示されます。

'n' 個の正しい中間証明書が見つかりました

このメッセージは、有効な中間証明書の数を示します。

正しいルート証明書が見つかりません

ルート証明書がない場合は警告として扱われます。もちろん、サーバー側で証明書を設定する際にはルート証明書を添付することは推奨されませんが、mkchain で作成する場合、チェーンは不完全として扱われ、チェーンが正しく作成されなかったことを示す情報が表示されます。

証明書の1つに空のCNフィールドが見つかりました

このメッセージはエラーを知らせるものではなく、一部の証明書 (例: example/google.com を参照) ではCNフィールドがない場合があることを示します。Common Name フィールドは、証明書に関連付けられたホスト名を識別します。RFC3280 では、Issuer DN に CN が必須というわけではありません。ほとんどの CA は Issuer DN に CN を含めますが、この Equifax CA のように含めない場合もあります。

要件

mkchain は外部ユーティリティを使用するため、事前にインストールしておく必要があります:

  • OpenSSL (1.1.0g/h でテスト)

このツールは以下で動作します:

  • GNU/Linux (Debian および CentOS でテスト)
  • Bash (4.4.19 でテスト)

MacOS/FreeBSD:

  • GNU スタイルの長いオプションをサポートする getopt(1) に置き換える (pkg install getopt)
  • MacOS では、coreutils (homebrew でインストール) の greadlink でも動作します

その他

貢献

こちら をご覧ください。

プロジェクトアーキテクチャ

こちら をご覧ください。

ライセンス

GPLv3 : http://www.gnu.org/licenses/

フリーソフトウェア、イェイ!

ツールをダウンロード