20
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ローカルIIS Webサイトの自己署名証明書の作成方法

Last updated at Posted at 2021-07-25

概要

ローカル環境でhttpsを使用したWeb APIを実装して、IIS上で動作検証を試みた。
MicrosoftのDocを参考に、インターネットインフォメーションサービス (IIS) マネージャー上で自己署名証明書を作成した。
ブラウザでWeb APIのURLを入力すると、下記エラーが発生した。
(Google chrome/Microft Edge/Internet Explorerで同様のエラーが発生しため、ブラウザ依存性は無し)
image.png

原因を調査した結果、「IISマネージャーの自己署名証明書は不十分」ということがわかった。
前記の問題を回避する方法として、「PowerShellで自己署名証明書」を生成する方法がある。
この記事に、問題(ERR_CERT_COMMON_NAME_INVALID)が発生した設定手順、問題を回避する手順、参考にしたサイトを記載する。

動作環境

IIS version 10.0.19041.1100
Google Chrome 92.0.4515.107

問題(ERR_CERT_COMMON_NAME_INVALID)が発生した設定の手順

1. IIS上で自己署名証明書を作成する

(1)インターネット インフォメーション サービス (IIS) マネージャーを起動する。
image.png
(2)[サーバー証明書]を選択する。
image.png
(3)右の「操作」-「自己署名入り証明書の作成」を選択する。
image.png
(4)フレンドリ名を指定して、「OK」を選択する。
image.png
(5)自己署名入り証明書が作成されていることを確認する。
image.png

2. IISに評価用サイトを新規追加する

評価用サイトには、下記記事のWeb APIを使用する。
https://qiita.com/SY81517/items/cf4e3983f8e063bb0e28

(1)Visual StudioでWebアプリケーションのプロジェクトを選択する。「発行」を押下する。
image.png
(2)IISに配置するASP.NET Webアプリケーションを発行する。
フォルダパスは任意。Visual Studioを管理者権限なしで起動して、管理者権限が必要なフォルダパスを指定すると、発行に失敗するので注意。
image.png
(3)IISマネジャーで「サイトの追加」を選択する。
image.png
(4)Webサイトの設定を行う。
サイト名:任意
コンテンツディレクトリ
・ 物理パス:[発行]で指定したフォルダパス
バインド
・種類は[https]/ポート番号は任意。
・SSL証明書は[自己署名証明書]を使用する。
image.png

3. 動作確認(ブラウザでWeb APIのURLを指定)

下記URLを指定したときに、「ERR_CERT_COMMON_NAME_INVALID」が発生する。
https://localhost:59320/api/products
image.png

問題を回避する手順

1. PowerShellを用いて、自己署名証明書を作成する

(1)PowerShellを管理者権限で実行する。
(2)下記コマンドを実行する。

実行コマンド
> New-SelfSignedCertificate -DnsName "localhost" -CertStoreLocation "cert:\LocalMachine\My"
実行結果
PSParentPath: Microsoft.PowerShell.Security\Certificate::LocalMachine\My

Thumbprint                                Subject
----------                                -------
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  CN=localhost

コマンドの詳細はNew-SelfSignedCertificate を参照のこと。

2. 自己署名証明書の使用を許可する

(1)Windowsボタンを押して「cert」と入力する。
image.png
(2)「コンピュータ証明書の管理」をクリックする。[ファイル名を指定して実行]で[certlm.msc]でも可。
(3)「個人」→「証明書」フォルダをクリックする。
image.png
(4)作成した証明書を選択して、右クリックで「コピー」を選択する。
image.png
(5)[信頼されたルート証明機関]で[証明書]フォルダを右クリックで「貼り付け」を選択する。
image.png
(6)貼り付けた証明書が追加されたことを確認する。
image.png

3. PowerShellで作成した自己署名証明書をIISで使用する

(1)インターネット インフォメーション サービス (IIS) マネージャー を起動する。
(2)新規追加した評価用サイトを選択する。
(3)「サイト編集」の「バインド」を押下する。
image.png
(4)下記のように「サイト バインド」を編集する。
ホスト名:localhost
SSL証明書:Powershellで作成したものを選択する。
image.png

4.動作確認(ブラウザでWeb APIのURLを指定)

実行結果は下記の通り。エラーが発生せず、HttpsのGETメソッドが実行された。

image.png

参考サイト

No リンク 概要
1 Blog: How to Create a Self Signed Certificate For Your Local IIS Website ローカルサイトの自己署名証明書の作成する手順を記載したブログ(英語)
2 IIS自己証明書の警告エラー無しで作成方法。localhostをSSL/TLSで接続 IIS証明書の警告を出さずに作成する方法が記載されたブログ。
3 How can I create a self-signed cert for localhost? stackoverflowの質問「ローカルホストの自己署名証明書を作るにはどうすればよいか?」
4 New-SelfSignedCertificate Microsoft社PowerShellのNew-SelfSignedCertificateコマンドの記事
5 How to Set Up SSL on IIS 7 Microsoft社のIISのセットアップ手順のページ
20
24
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?