Symfoware

Symfowareについての考察blog

IISのSSL証明書をDebian + OpenSSLで作成する

IISでhttps接続のテストを行いたかったのですが、テスト用の証明書を
作成するのに苦戦したのでメモしておきます。

Windows 2012サーバーのIISに、Debian 7 + OpenSSLで発行した
証明書を設定してみます。



証明書の発行要求



まず、Windows 2012サーバーでの作業。

サーバーマネージャーの[ツール]から[インターネットインフォメーションサービス(IIS)マネージャ]を
選択します。

210_01.png


インターネットインフォメーションサービス(IIS)マネージャで、左側のサーバー名を選択。
右側に表示される「サーバー証明書」をダブルクリックします。

210_02.png


サーバー証明書の画面が表示されたら、右側の「証明書の要求の作成」をクリック。

210_03.png


証明書の要求ウィザードが始まります。
最初の画面で一番重要なのは「一般名」の項目です。
https://でアクセスする予定の名称を指定します。
今回、DNSがない環境でテストしているので、サーバーのIPアドレスを指定しました。
それ以外は適当で構いません。

210_04.png


暗号化サービスプロバイダー、ビット長共にデフォルトの
「Microsoft RSA SChannel Cryptographic Provider」と「1024」を選択しました。

210_05.png


最後に出力先のパスを指定して、証明書要求の発行は完了です。
今回、testsite.txtという名称で出力しました。

210_06.png


出力したtestsite.txtの内容はこんな感じになります。

210_07.png


このファイルをDebianにコピーして、証明書の発行を行います。








サーバー証明書の発行



次にDebianでの作業になります。
こちらが参考になると思います。
Debian 7(Wheezy)でSSL証明書を作成し、Apacheへ設定する


まず、opensslをインストール。


# apt-get install openssl




/etc/ssl/certs/に移動。
秘密鍵を作成します。


# cd /etc/ssl/certs/
# openssl genrsa -des3 -out server.key 1024
Generating RSA private key, 1024 bit long modulus
............++++++
......................++++++
e is 65537 (0x10001)
Enter pass phrase for server.key:(任意のパスフレーズを入力)
Verifying - Enter pass phrase for server.key:(パスフレーズを再入力)




パスフレーズを設定しましたが、後の作業の簡略化のため、
以下の操作で解除します。


# openssl rsa -in server.key -out server.key
Enter pass phrase for server.key:(上記で設定したパスフレーズを入力)
writing RSA key






次に、Windows 2012で作成した証明書要求ファイルから、証明書を作成します。
Windows上のtestsite.txtを、Debianの/etc/ssl/certsにコピーしました。

コピーしたら、以下のコマンドで証明書を発行。
テスト用なので、3650日(約10年)の期間で発行しています。


# openssl x509 -in [Windowsで作ったファイル] -out [出力するファイル] -req -signkey [秘密鍵ファイル] -days 3650




今回の例だと、以下のようになります。


# openssl x509 -in testsite.txt -out testsite.crt -req -signkey server.key -days 3650




実行すると、こんなメッセージが表示されます。


Signature ok
subject=/C=JP/ST=Hiroshima/L=Miyoshi/O=Test Website/OU=Test Server/CN=192.168.1.3
Getting Private key





これでtestsite.crtが作成出来ました。
Apache等では、このファイルを使用してSSLの設定が行えるのですが、IISだと
ひと手間かける必要があります。

こちらを参考にさせて頂きました。
IIS7でSSL証明書がインストールできない

pkcs12という形式に変換する必要があります。


# openssl pkcs12 -export -in [作成した証明書ファイル] -inkey [秘密鍵ファイル] -out [出力するファイル名]




今回の例だと、以下のようになります。
出力時、パスワードの入力を求められますが空白のままエンターで実行します。
※そうしないと、IISに取り込めませんでした。


# openssl pkcs12 -export -in testsite.crt -inkey server.key -out testsite.pkcs12
Enter Export Password:(空白のままエンター)
Verifying - Enter Export Password:(空白のままエンター)



これまでの手順で、/etc/ssl/certs/にtestsite.pkcs12ができたはずです。
このtestsite.pkcs12をWindowsにコピーします。






証明書要求の完了



今度はWindowsでの作業になります。
サーバー証明書の画面右側の「証明書の要求の完了」をクリックします。

210_08.png


ファイルはDebianで作成したtestsite.pkcs12を選択。
フレンドリ名は任意。
新しい証明書の証明書ストアは「個人」を選択します。

210_09.png


ちなみに、証明書ストアで「Webホスティング」を選択すると
「証明書を削除できませんでした」というエラーになります。

210_10.png


これで証明書の取り込みが完了しました。

210_11.png





IISでhttpsの有効化



インターネットインフォメーションサービス(IIS)マネージャの左側ツリーで、
SSLを有効化したいサイトを選択します。
今回は「Default Web Site」を選択しました。

右側に表示される「バインド」をクリックします。

210_12.png


サイトバインドのダイアログが表示されます。
追加をクリックします。

210_13.png


サイトバインドの追加ダイアログで、「種類」をhttpsに変更。
SSL証明書を、証明書登録時に入力したフレンドリ名(今回はtest)を選択します。

210_14.png


サイトバインドに追加されました。

210_15.png


これで、https://(要求発行時に指定した一般名)/でのアクセスが可能になります。
ただし、証明書の警告が表示されます。

210_16.png





証明書のインポート



証明書の警告を表示しないようにするために、ブラウザへ証明書のインポートを行います。
インポートするファイルは、IISの証明書要求の完了に使用したtestsite.pkcs12を使用します。

ブラウザの[ツール]-[インターネットオプション]を選択。

210_17.png


インターネットオプションのダイアログが表示されたら、
[コンテンツ]タブの[証明書]ボタンをクリック。

210_18.png


証明書ダイアログが表示されたら、[信頼されたルート証明機関]タブを選択。
[インポート]をクリックします。

210_19.png


証明書のインポートウィザードが始まります。

210_20.png


ファイルの指定では、証明書要求の完了に使用したtestsite.pkcs12を選択。

210_21.png


パスワードの入力を求められますが、パスワードは指定していなので空白のまま次へ。

210_22.png


証明書ストアに「信頼されたルート証明機関」が選択されていることを確認して次へ。

210_23.png


最後に内容の確認画面が表示されます。
内容に問題がなければ完了します。

210_24.png


警告が表示されますが、はいを選択します。

210_25.png


無事インポート完了です。

210_26.png


発行元に追加されました。

210_27.png



これで警告なしにhttps接続できるようになるはずです。

210_28.png




【参考URL】

OpenSSLでIISのサーバー証明書を作成・導入する
http://www.sa-sa-ki.jp/blog/2008/12/openssliis/

IIS7でSSL証明書がインストールできない
http://kodawari.arrow.jp/blogn/index.php?e=33

OpenSSLでお手軽に自己証明書(2)_opensslコマンド
http://sa1g.blogspot.jp/2008/07/openssl2openssl.html


関連記事

テーマ:サーバ - ジャンル:コンピュータ

  1. 2013/07/28(日) 21:07:22|
  2. 備忘録
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集