Windows Server + IIS でのSSLオレオレ証明書
IISで既にSSLを使っていて、更にSSL立てたい場合を想定。
とりあえず、SSLの使用を考えた場合に一番無難なIPベースでの対応。
前提
- 事前にopensslでオレオレCAの証明書&ブラウザ用のを作っておく
手順
- NICに新IPを追加
- サーバー証明書の要求(CSR)を作成
- opensslで要求に署名
- サーバー証明書をIISにインストール
- IISサイトを新IPで追加
- IISサイトにサーバー証明書をバインド
- DNSに新IPの名前を追加
NICに新IPを追加
Windows Server 2008の場合、ネットワークのプロパティ→ネットワーク接続の管理で表示
あとは、ネットワークカードに複数のIPアドレスを割り当てる:Tech TIPS - @ITのとおり、TCP/IPv4のプロパティ→詳細設定から、IPアドレスを追加
サーバー証明書の要求を作成
詳しくはRequest an Internet Server Certificate (IIS 7) | Microsoft Docsを参照。
- IISマネージャを起動
- サーバーのホームから、[サーバー証明書]を選択
- [証明書の要求の作成]を選択
- 一般名(M)、組織(O)、組織単位(OU)、市区町村(L)、都道府県(S)、国/地域(R)を全部入力して[次へ]
- 暗号化サービス プロバイダを選択して[次へ]
- ファイル名を適当に入力して[終了]
CSRファイルの拡張子がデフォルトで".txt"でびっくりしますが、PEM形式のファイルはDER形式のファイルをBase64エンコード処理し,テキスト形式にしたファイル
なので、何も問題有りません。
強いて言えば.pemにした方が判りやすいかも。
opensslで要求に署名
予め用意してあるオレオレCAの証明書と秘密鍵を使って、CSRファイルに署名します。
openssl.cnfをちゃんと修正しておけば、CSRファイル名と出力ファイル名の指定程度で済むのでやっておくべき。
詳しくはhttp://nai.homelinux.net/ssl.htmlの「おれおれCAで署名」を参照。
サーバー証明書をIISにインストール
Install an Internet Server Certificate (IIS 7) | Microsoft Docsを参照
証明書のパスとフレンドリ名を指定するだけです。
以降、フレンドリ名で証明書を扱いますので、分かりやすい名前を付けます。
IISサイトを新IPで追加
既に作成済みなら飛ばして次へ。
IISサイトにサーバー証明書をバインド
http://www.securestage.com/jp/resources/installation/MS_IIS7.phpのサーバー証明書の有効化を参照。
参考文献
- http://nai.homelinux.net/ssl.html
- http://blog.flashcast.jp/2008/12/openssliis.html
- IIS7.0でServer Name Indication(SNI)を使って1つのIPに複数のHTTPSサイトをバインドする方法 - 花粉症と戦うWindowsServer2008 (R2)管理日記・・
- IIS6.0でワイルドカード/マルチドメイン証明書を利用する方法 | サポート・お申し込みガイド | GMOグローバルサイン【公式】
- ネットワークカードに複数のIPアドレスを割り当てる:Tech TIPS - @IT
- IIS 7 Operations Guide | Microsoft Docs
- SSLサーバ証明書のクロストラスト |
- http://www.securestage.com/jp/resources/installation/MS_IIS7.php