IISで自己署名証明書を作成してみた

スポンサーリンク

はじめに

Webシステムのテスト用にWebサーバを構築することになりました。テスト用なので証明書は自己署名証明書で対応します。

IISには自己署名証明書を作成する機能があるのでササッと作成したのですが、動作確認すると証明書の警告メッセージが表示されます。

「localhost にアクセスする(安全ではありません)」をクリックするとテスト用のサイトが表示されます。

この動きは正しいのか?と疑問に思いました。内部のテスト用に使いたいので認証局が発行した証明書と同様に警告なく使用したいと思います。ググってみるといろいろと情報がでてきました。情報収集後、想定通り動かすことができたので手順をまとめておきます。

前提条件

Webサーバ構築時の条件は以下の2つとします。

  • 自己署名証明書を作成する
  • 使用するドメインは以下の通り。
    domain.local
    test1.domain.local
    test2.domain.local

手順

以下の流れで作業します。

  1. 自己署名証明書の作成
  2. 証明書を信頼されたルート証明機関に移動する
  3. HOSTSファイルの変更
  4. IISマネージャーの設定
  5. 動作テスト

自己署名証明書の作成

PowerShellを起動しコマンドを実行します。

PS C:\Users\User1> New-SelfSignedCertificate -DNSName "domain.local", "test1.domain.local", "test2.domain.local" -CertStoreLocation "cert:\LocalMachine\My" -NotAfter (Get-Date).AddYears(10)


   PSParentPath: Microsoft.PowerShell.Security\Certificate::LocalMachine\My

Thumbprint                                Subject
----------                                -------
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  CN=domain.local

証明書を信頼されたルート証明機関に移動する

ファイル名を指定して実行画面から「certlm.msc」を入力してOKボタンをクリックします。
左サイドバーから[個人]-[証明書]をクリックします。
証明書(domain.local)を選択し、[信頼されたルート証明書]-[証明書]内にコピーします。

HOSTSファイルの変更

hostsファイルに以下を追加します。

WebサーバのIPアドレス    domain.local
WebサーバのIPアドレス    test1.domain.local
WebサーバのIPアドレス    test2.domain.local

IISマネージャーの設定

インターネット インフォメーション サービス (IIS) マネージャーを起動します。
左サイドバーから「サイト」を右クリックします。「Webサイトの追加」をクリックします。

以下の通り入力します。
サイト名:domain.local
物理パス:C:\inetpub\domain.local ※任意でOK
種類:https
ポート:443
ホスト名:domain.local
SSL証明書:domain.local
「OK」ボタンをクリックします。

同様の手順で「test1.domain.local」と「test2.domain.local」に対しても設定します。

以下の通り入力します。
サイト名:test1.domain.local
物理パス:C:\inetpub\test1.domain.local ※任意でOK
種類:https
ポート: 443
ホスト名:test1.domain.local
SSL証明書:domain.local
「OK」ボタンをクリックします。

以下の通り入力します。
サイト名:test2.domain.local
物理パス:C:\inetpub\test2.domain.local ※任意でOK
種類:https
ポート: 443
ホスト名:test2.domain.local
SSL証明書:domain.local
「OK」ボタンをクリックします。

動作テスト

コマンドプロンプトを起動します。
以下のコマンドを実行します。

echo ^<h1^>domain.local^</h1^> > C:\inetpub\domain.local\index.html
echo ^<h1^>test1.domain.local^</h1^> > C:\inetpub\test1.domain.local\index.html
echo ^<h1^>test2.domain.local^</h1^> > C:\inetpub\test2.domain.local\index.html

Google Chromeを起動し以下のURLにアクセスします。サイトが表示されること、鍵のアイコンが表示されている(暗号化通信できている)ことを確認します。

https://domain.local
https://test1.domain.local
https://test2.domain.local

証明書の情報も確認します。

コメント

タイトルとURLをコピーしました