【証明書基礎】WindowsのIISで自己署名証明書を作成する方法【実践編】

この記事の内容

  • Windows Server の IIS(Webサーバー)に自己署名証明書を作成する手順を解説します
  • IIS マネージャーの GUI から証明書の作成・管理ができる機能を紹介します
  • 作成した証明書を HTTPS(443番ポート)にバインドする方法を説明します
  • 自己署名証明書が「信頼されない」理由と、その対処方法(証明書ストアへのインポート)を解説します
  • 自己署名証明書の用途上の注意点についても触れます

前提:今回の構成

今回は Web という名前の Windows Server を用意し、そこに IIS を導入して HTTPS 構成を行います。ドメインに参加しているため、FQDN は Web.AD.local となります。


IIS(Webサーバー)の役割インストール

まずはサーバーに IIS の役割をインストールします。

  1. サーバーマネージャー を開き、「役割と機能の追加」を選択します
  2. ウィザードを進め、「Webサーバー(IIS)」にチェックを入れます
  3. 「インストール」をクリックしてインストールを完了させます

インストール完了後、ブラウザで http://localhosthttp://Web.AD.local にアクセスすると、IIS のデフォルトページが表示されます。

この時点では HTTPS(443番)は待ち受けていないため、https://localhost へのアクセスは接続できません。また、HTTP(80番)でのアクセスにはセキュリティ警告が表示される状態です。


IIS マネージャーで自己署名証明書を作成する

IIS には、証明書の作成・管理・要求ができる機能が内蔵されています。

証明書作成の手順

  1. IIS マネージャーを開き、左ペインでサーバー名を選択します
  2. 中央の機能一覧から 「サーバー証明書」 をダブルクリックします
  3. 右側の「操作」ペインに以下のメニューが表示されます:
    • 証明書の要求の作成証明書要求の完了:外部の認証局(CA)に署名を依頼するパターン
    • ドメイン証明書の作成:Active Directory のエンタープライズ CA を利用するパターン
    • 自己署名入り証明書の作成:今回使用するメニュー
  4. 自己署名入り証明書の作成」をクリックします
  5. フレンドリ名(任意の識別名)を入力します
  6. 証明書ストアとして「個人」を選択します
  7. 「OK」をクリックして証明書を作成します

作成後の確認

証明書が作成されると、「サーバー証明書」の一覧に新しいエントリが追加されます。

MMC(Microsoft 管理コンソール)を使って証明書の詳細を確認することもできます。

mmc

MMC を起動後、「ファイル」→「スナップインの追加と削除」→「証明書」を選択し、「コンピューターアカウント」→「ローカルコンピューター」を指定します。

「個人」フォルダに、今回作成した証明書が追加されていることを確認できます。証明書のアイコンには以下の意味があります:

  • 左上の鍵マーク:秘密鍵を保持していることを示します
  • 右下の署名マーク:署名が付いていることを示します

証明書の詳細を確認すると、以下の情報が含まれています:

項目内容
発行先(Subject)Web.AD.local
発行者Web.AD.local(自己署名のため同一)
サブジェクト代替名(SAN)DNS:Web.AD.local
有効期間1年間

信頼されたルート証明機関への登録

IIS で自己署名証明書を作成すると、同一サーバーの「信頼されたルート証明機関」ストアにも自動的に追加されます。これにより、そのサーバー自身からアクセスした場合は証明書が信頼された状態になります。


HTTPS バインドの設定

証明書を作成しただけでは HTTPS は有効になりません。サイトに証明書を紐付ける(バインドする)作業が必要です。

  1. IIS マネージャーで 「Default Web Site」 を選択します
  2. 右側の「操作」ペインから 「バインド」 をクリックします
  3. 現在は HTTP(80番)のみ登録されていることを確認します
  4. 追加」をクリックします
  5. 以下のとおり設定します:
    • 種類https
    • IP アドレスすべて未割り当て(または特定のIPアドレス)
    • ポート443
    • ホスト名:空白(サイトが1つだけの場合は省略可)
    • SSL 証明書:先ほど作成した証明書を選択
  6. 「OK」をクリックして設定を保存します

補足:複数のサイトを同一サーバーでホストする場合は、ホスト名を入力してサイトごとに証明書を割り当てます。


動作確認(同一サーバーから)

HTTPS バインドを設定したら、ブラウザで https://Web.AD.local にアクセスします。

  • https://Web.AD.local接続成功(証明書が有効)
  • https://localhost警告あり(証明書の SAN に localhost が含まれていないため)
  • https://Web警告あり(証明書の SAN に Web という短縮名が含まれていないため)

このように、アクセスする際の URL が証明書の SAN(サブジェクト代替名)に含まれている名前と一致しないと、ブラウザは警告を表示します。


別の端末からアクセスした場合の挙動

同じ https://Web.AD.local に対して、**別のサーバー(ドメインコントローラー等)**からアクセスすると、「接続がプライベートではありません」というエラーが表示されます。

原因

別の端末の「信頼されたルート証明機関」ストアに、今回作成した自己署名証明書が登録されていないためです。

ブラウザは、サーバーから提示された証明書の「発行者(署名者)」が、クライアントの信頼済みルート証明機関に存在するかどうかを確認します。自己署名証明書の場合、その証明書を発行したのは自分自身であり、他の端末はその発行者を信頼していません。

対処方法:証明書のエクスポートとインポート

エクスポート(証明書を取得する側のサーバーで):

  1. ブラウザの証明書エラー画面から証明書を表示します
  2. 「エクスポート」または「ダウンロード」を選択して .cer ファイルとして保存します

インポート(信頼させたいクライアント端末で):

  1. ダウンロードした .cer ファイルをダブルクリックします
  2. 「証明書のインストール」をクリックします
  3. 保存場所として 「ローカルコンピューター」 を選択します
  4. 証明書ストアは「証明書ストアを自動的に選択する」ではなく、「証明書をすべて次のストアに配置する」 を選択します
  5. 参照から 「信頼されたルート証明機関」 を選択します
  6. 「完了」をクリックしてインポートします

インポートが完了すると、その端末から https://Web.AD.local にアクセスした際に証明書エラーが解消されます。


自己署名証明書の使用上の注意

自己署名証明書は非常に手軽に作成できますが、いくつかの重要な制限があります。

用途可否
開発・テスト環境での動作確認✅ 適切な用途
本番環境での利用❌ 非推奨
組織内の他ユーザーへの提供❌ 非推奨

テストが完了したら、インポートした自己署名証明書はすみやかに削除することをお勧めします。本番環境や組織内での利用には、外部の認証局(CA)または Active Directory のエンタープライズ CA によって署名された証明書を使用してください。


まとめ

今回は、Windows Server の IIS マネージャーを使って自己署名証明書を作成し、HTTPS 構成を行う手順を解説しました。

  • IIS マネージャーの「サーバー証明書」機能から、GUI 操作だけで自己署名証明書を作成できます
  • 作成した証明書は「バインド」設定で HTTPS(443番)に紐付けます
  • 自己署名証明書は、同一サーバーでは自動的に信頼されますが、他の端末では信頼されません
  • 他の端末で信頼させるには、証明書を「信頼されたルート証明機関」ストアにインポートする必要があります
  • 自己署名証明書はあくまでテスト・開発用途に限定し、本番環境では正式な証明書を使用することを強くお勧めします