カテゴリー
2021年 AWS Azure クラウド コンピューター トラブルシューティング 技術一般 証明書

パケットキャプチャーからサーバー証明書を抜き出す方法

Webサーバー向けのテストをしていると、代理証明書が必要となるケースが多いです。特に、インターネット上にあるサーバーに対しての通信テストとなると、それらのサーバー署名書をまず手に入れ、その内容を元に、代理証明書を作成する必要があります。

インターネット上にあるサーバーの証明書ですが、実は簡単に内容を取得することができます。パケットキャプチャ(TCP ダンプ)を取得するのです。

パケットキャプチャには、通信の全てが含まれています。当然、サーバー証明書も含まれます。このやり取りの証明書の部分を指定して、証明書だけを抜き出せば良いのです。

サーバ証明書の抜き出し方

まず、証明書を取得したいサーバーにアクセスをし、その通信をWiresharkを使ってパケットキャプチャします。

Server Hello が飛んできた後に、Certificateのやり取りが見えます。この中に証明書が入っています。上の画面キャプチャーの青色で反転させているパケットです。このパケットの中を見ていきます。

  1. Secure Sockets Layer
  2. TLSV1.2 Record Layer: Handshake Protocol : Certificate
  3. Handshake Protocol: Certificate
  4. Certificates (バイト数)

の順にクリックして、詳細を表示させます。

その中に、Certificate (id-atCommonName=ドメイン名)のパケットが見えます。

id-at-ConnomName=w.usabilla.com を取り出してみます。

そのパケットを選択し、右クリックメニューを表示させます。

メニューから、Export Selected Packet Bytes… をクリックします。

このパケットを、証明書として保存します。名前をつけて保存のウィンドウが表示されますので、ファイル名のところで名前を指定します。

この時のポイントは、拡張子を「.crt」にして保存することです。こうすることで、Windows 上からは証明書として認識されますので、ダブルクリックで中が見られるようになります。

証明書の内容を見てみる

名前をつけて保存した証明書ファイルを開いて、中をみてみましょう。

w.usabilla.com.crt の証明書を、駄ぬんるクリックして開いてみます。

発行社はAmazonなんですね。

「詳細」タブをクリックして、証明書の詳細も見てみましょう。

証明書の記載項目の一覧が表示されますので、「サブジェクト」をクリックしてみます。

CN: Common Name が表示されましたね。

次に、「サブジェクト代替名」をクリックしてみます。

SAN: Subject Alternative Name が表示されましたね。

証明書の中身が分かりましたので、これで代理証明書を作成することが可能です。自分でCA局のサーバーを建てて、そこでサインして発行するのも良いのですが、オンラインで簡単に証明書を発行できるサイトがあります。

これも使ってみてください。

関連する記事:

最近の記事:

カテゴリー
2021年 AWS Azure SaaS クラウド コンピューター サーバレス 技術一般 証明書

オンライン証明書作成ツール


にほんブログ村

アプリケーションのテストを行う時、サーバ証明書が必要になることがあると思います。私の場合ですと、インターネット上のアプリケーション(SaaS)の代理証明書が欲しいケースが多いです。

CA 局を持っていれば、そのサーバーで、証明書の発行もサインもしてしまえば良いのですが、たまにしか使わない証明書発行のために、わざわざ CA 局のサーバーを構築するのも手間です。

そんな時に、オンラインで発行してくれるサイトを見つけました。CertificateTool.com というサイトです。

必要となる各種証明書を発行できます。

もちろん、暗号化のビット数も選べます。

証明書の中に含める属性だって、自由に追加・削除可能です。

Subject Alternative Names (SAN) を追加してみました。

Certificate Signing Request (SCR) もでき、その際のハッシュのアルゴリズムも選べます。

SCR なのか、自己署名なのかの選択も可能です。

今回は、SHA256のハッシュで、自己署名、期間は1年で作成してみます。

Submit ボタンを押せば完了です。

できました。非常にお手軽です。ダウンロードの画面に移動するので、そこから必要となる証明書をダウンロードできるようになります。

プライベートキーはテキストベースで入手も可能です。

証明書も、テキストベース、PEM などのファイル形式でも入手可能です。以下の形式をサポートしてます。

  • PEM Certificate
  • PKCS#12 Certificate and Key
  • PKCS#7 Certificate(s)

CSR もできるから、ここで発行した証明書を、自社のCA局でサインして使うことだってできちゃいます。

Office 365 のような SaaS サービスで使用されているサーバー証明書が欲しい場合、代理証明書としてのサーバー証明書を作成します。要は、実際に Office 365 で使用されている証明書と同じ内容のサーバ証明書を自分で作成し、自分のCA局でサインするのです。

代理証明書を作成する上で必要な情報は、「CN」や「SAN」になります。Microsoft がウェブ上で公開している情報もありますが、実際に Office 365 にアクセスし、通信の中で飛んでくる証明書をパケットから抜き出して内容を確認することが一番確実です。

具体的には、Outlook を使って Exchange Online に通信し、その時のパケットキャプチャーを取得することです。

実際の手順を紹介していますので、こちらをご参照ください。

関連する記事:

最近の記事: