2013年6月25日火曜日

Linuxで作った、サーバー証明書を IIS に適用する方法

Iconshock - http://www.iconshock.com


SSL証明書は 「オレオレ証明書」 ばかり使っていた snicker_jp です。

きっかけ


ワイルドカードのSSLサーバー証明書をLinuxで作ったものをIISに適用するのに、ハマったので手順をメモしておきたいと思います。


前提条件


キーファイル、CSRの作成された環境

  • OSは 「Linux
  • 作成ツールは 「OpenSSL

※CSR・・・Certificate Signing Request

サーバー証明書を適用するWebサーバー

  • OSは 「Windows Server
  • Webアプリケーションサーバーは 「IIS 6

「サーバー証明書」について

  • 「サーバー証明書」は「第三者機関に発行してもらったもの」とします

IISの「SSLサーバー証明書」適用手順 動作仕様


「IIS 6」は、

  • 自ら発行した「キーファイル」しいては「CSR」を使う方法
  • Windows他システムに適用された「サーバー証明書」を使う方法
  • Linuxを含む他システムで発行された「キーファイル」しいては「CSR」を使う方法

では、適用手順が異なっていたんです。(知らなかった!><)

今回は

  • Linuxを含む他システムで発行された「キーファイル」しいては「CSR」を使う方法

に焦点をあてた内容です。



流れ


Linuxサーバー(OpenSSLがあればWindowsでも可)

  • OpenSSLで「PKCS#12証明書ファイル」をエクスポート生成する

Windowsサーバー

  • 「中間証明書」をインポートする (Optional)
  • CSRを削除する (Optional)
  • 適用済みの「証明書」を削除する (Optional)
  • 「PKCS#12証明書ファイル」をインポートする

手順


OpenSSLで「PKCS#12証明書ファイル」をエクスポート生成する

必要なもの


  • 第三者機関に発行された「SSLサーバー証明書」 (例:trust_server_name.crt)
  • 自分で作成した「キーファイル」 (例:server_name.key)

コマンドで生成

    openssl pkcs12 -export -in trust_server_name.crt -inkey server_name.key -out output_bundle.p12

注意

「エクスポートパスワード」は必ず設定しましょう!ヽ(`▽´)/(あとで必要になります!)

    Enter Export Password: 設定する
    Verifying - Enter Export Password: 設定する

「中間証明書」をインポートする (Optional)

「中間証明書」をインポートするします。(インポート済みであれば手順を飛ばしてください)

例として「中間証明書」のファイルを「ICA-CA.crt」とします。 ダブルクリックします。




すると以下の画面が、表示されます。「証明書のインストール」をクリック!




すると以下の画面が、表示されます。「次へ」をクリック!




次は「証明書をすべて次のストアに配置する」を選択して「参照」をクリック!




すると以下の画面が、表示されます。順に

  • 物理ストアを表示する
  • 中間証明機関
  • ローカルコンピュータ

を選んで「OK」をクリック!




「次へ」をクリック!




確認して「完了」をクリック!




この画面が出れば、成功です。




CSRを削除する (Optional)

すでに、適用済みの「証明書」を削除します。(適用されていなければ、手順を飛ばしてください)

「サーバー証明書」をクリック!




※以下のように、「保留中の証明書要求があります。....」状態だと、この手順が必要です。




「保留中の要求を削除する」を選択して「次へ」をクリック!




「次へ」をクリック!




以上で完了です!




適用済みの「証明書」を削除する (Optional)

※以下のように、「証明書の表示」がクリックできる状態だと、以下の作業が必要です。




「サーバー証明書」をクリック!




「選択されたサーバーに証明書がインストールされました。証明書ウィザード...」が出ていると思います。

確認して「次へ」をクリック!




「現在の証明書を削除する」を選択して「次へ」をクリック!




確認して「次へ」をクリック!




以上で削除は完了です!




「PKCS#12証明書ファイル」をインポートする

※厳密には「.p12」ファイルと「.pfx」ファイルは異なりますが、作業上便利なので、「.pfx」ファイルとして名前を付けます!




「証明書の表示」がクリックできない状態を確認して、




つぎに、

「サーバー証明書」をクリック!




「Webサーバーに証明書がインストールされていません。また...」と表示されているのを確認して「次へ」をクリック!




「pfxファイルから証明書のインポート」を選択して「次へ」をクリック!




「参照」から、pfxファイルを選択して「次へ」をクリック!




エクスポートのパスワードを入力して「次へ」をクリック!




「443」のまま「次へ」をクリック!




表示内容を確認して「次へ」をクリック!




以上で、完了です!




まとめ


  • Apache以外のWebアプリケーションサーバーで「サーバー証明書」適用したことなかった~><あれ?でも、Azureの時にやったような?w

  • ワイルドカード証明書でも手順は一緒です!

  • ニッチなネタですが、お役に立てたなら幸いです!


参考


Zenback