IISのHTTPS設定手順:Let’s Encryptを利用したSSL化(win-acme)

ソフトウエア

<景品表示法に基づく表記> 本サイトのコンテンツには、商品プロモーションが含まれている場合があります。

Windows ServerのIIS(Internet Information Services)を利用したWebサービスは、インターネットに公開しない場合が多く積極的にSSL化はしてきませんでした。

関連記事 Let’s Encrypt ワイルドカード証明書の設定方法:すべてのサブドメインを保護

この記事では、IISをSSL化する方法を紹介します。無料SSL証明書のLet’s Encryptを利用することで、セキュリティを高め、Webサイトの信頼性を向上させることができます。

  • IISをHTTPS化したい
  • Let’s Encryptを利用して無料でSSLしたい
  • 簡単に設定を済ませたい

手順は簡単で、この記事を読むことで、すぐにIISをHTTPSに変更することができます。

Let’s Encrypt 証明書を取得する ACME クライアント一覧

ACMEクライアントとは証明書取得のツール

Let’s Encrypt は証明書を発行するために、ACME プロトコルを使用しています。 Let’s Encrypt の証明書を取得するためには、ACME クライアントを利用する必要があります。

公式サイトによるとWindowsのIISを利用した場合のLet’s Encrypt の証明書を取得する ACME クライアントは次の通りです。

多くの ACME クライアント ツールがあります。この中でも win-acme は証明書の発行を手順通り進めていくだけで、IISのHTTPS設定、証明書の自動更新のタスクまで実施してくれます。

つまり、win-acme を利用すると証明書発行で全ての設定が完了してしまいます。とても簡単にSSL化ができるのでおすすめなツールです。

Let’s Encrypt 証明書発行の事前準備

ネットワーク設定(DNS)

Let’s Encryptは、証明書の発行プロセスにおいて、DNS認証(Domain Name System authentication)を利用する方法を提供しています。

DNS認証を利用する場合、ウェブサイトのドメインのDNSサーバーにアクセスする必要があり、Let’s Encryptが発行する証明書が正当なドメイン所有者によって要求され、正しく設定されたドメイン上で使用されることが保証されます。

まずは、Let’s Encrypt証明書で必要になるFQDNのAレコードをDNSに登録してください。DNSサーバーの設定によりますが反映されるまでに時間が掛るので余裕をもって完了させてください。

ファイアーウォール設定

私の場合は、Windows Serverで動作しているウェブサーバー(IIS)を公開することはありません。通常はApache,Nginxを利用します。

ただ Let’s Encrypt証明書 の場合はインターネットからHTTPでのアクセスが必要になるので必要最低限でポート開放を行ってください。

IIS設定

win-acme を利用して Let’s Encrypt証明書を発行する場合は、win-acme を実行する前にIISに設定追加を実施してください。

  • ホスト名を追加

ホスト名を追加しなくても win-acme のインストールが可能ですが、設定のステップ数が多くなります。IISに事前設定を行えば、win-acme は自動的に設定を実施してくれます。

Let’s Encrypt証明書を登録するために設定するというよりも、win-acme を自動化させるための設定です。

  1. インターネット インフォメーションサービス マネージャーを起動
  2. 対象サイトを選択しバインドを編集
  3. Let’s Encrypt証明書で発行するFQDNを登録

HTTPに対してホスト名を登録すれば win-acme が自動的に処理を進めてくれます。

  • IISのHTTPS設定手順:Let's Encryptを利用したSSL化(win-acme)
    左側ペインから対象サイトを展開し、右クリック「バインドの編集」を選択
  • IISのHTTPS設定手順:Let's Encryptを利用したSSL化(win-acme)
    追加ボタンを押下する
  • IISのHTTPS設定手順:Let's Encryptを利用したSSL化(win-acme)
    種類がHTTPになっていることを確認し、ホスト名を追加
  • IISのHTTPS設定手順:Let's Encryptを利用したSSL化(win-acme)
    設定が登録されていることを確認する

ここまで設定を行えば事前準備が完了です。

win-acme(ACME クライアント)

win-acmeのダウンロード・解凍・実行

Win-acme の公式サイトから最新版をダウンロードしてインストールする手順を説明します。

https://www.win-acme.com/

  1. 公式サイトから最新版をダウンロード
  2. ZIPファイルを解凍し展開
  3. 管理者権限でwin-acmeを実行
  • IISのHTTPS設定手順:Let's Encryptを利用したSSL化(win-acme)
  • IISのHTTPS設定手順:Let's Encryptを利用したSSL化(win-acme)
  • IISのHTTPS設定手順:Let's Encryptを利用したSSL化(win-acme)
  • IISのHTTPS設定手順:Let's Encryptを利用したSSL化(win-acme)
    必ず管理者権限で実行してください

win-acmeを実行すると対話形式でインストールが開始します。

win-acmeをユーザーモードで実行して進めることは可能ですが、IIS設定も同時に行われるので権限不足で不完全になります。からなず、管理者権限で実行してください。

win-acmeの設定

win-acmeを実行すると対話形式でインストールが開始します。

  • IISのHTTPS設定手順:Let's Encryptを利用したSSL化(win-acme)

A simple Windows ACMEv2 client (WACS)
Software version 2.2.4.1500 (release, trimmed, standalone, 64-bit)
Connecting to https://acme-v02.api.letsencrypt.org/…
Connection OK!
Running without administrator credentials, some options disabled
Scheduled task not configured yet
Please report issues at https://github.com/win-acme/win-acme

N: Create certificate (default settings)
M: Create certificate (full options)
R: Run renewals (0 currently due)
A: Manage renewals (0 total)
O: More options…
Q: Quit

Please choose from the menu:

N: Create certificate (default settings)」を選択します。

  • IISのHTTPS設定手順:Let's Encryptを利用したSSL化(win-acme)

Running in mode: Interactive, Simple

Please select which website(s) should be scanned for host names. You may
input one or more site identifiers (comma-separated) to filter by those
sites, or alternatively leave the input empty to scan *all* websites.

1: Default Web Site (1 binding)

Site identifier(s) or <Enter> to choose all:

証明書を発行するウェブサイトを選択します。事前準備のIISで複数のサイトと登録している場合は一覧で表示されます。「Enter」キーを押して進めます。

  • IISのHTTPS設定手順:Let's Encryptを利用したSSL化(win-acme)

Listed above are the bindings found on the selected site(s). By default all
of them will be included, but you may either pick specific ones by typing the
host names or identifiers (comma-separated) or filter them using one of the
options from the menu.

P: Pick bindings based on a search pattern
A: Pick *all* bindings

Binding identifiers(s) or menu option:

A: Pick *all* bindings」を選択します。

  • IISのHTTPS設定手順:Let's Encryptを利用したSSL化(win-acme)
Continue with this selection? (y*/n)

Y」を選択します。

  • IISのHTTPS設定手順:Let's Encryptを利用したSSL化(win-acme)
Committing 1 https binding changes to IIS while updating site 1
Adding Task Scheduler entry with the following settings
– Name win-acme renew (acme-v02.api.letsencrypt.org)
– Path C:\xxx\win-acme.v2.2.4.1500.x64.trimmed
– Command wacs.exe –renew –baseuri “https://acme-v02.api.letsencrypt.org/”
– Start at 09:00:00
– Random delay 04:00:00
– Time limit 02:00:00
Adding renewal for [IIS] Default Web Site, (any host)
Next renewal due after 2023/7/6
Certificate [IIS] Default Web Site, (any host) created

正常に証明書が発行されると最初のメニューに戻ります。Let’s Encrypt証明書の発行と同時にIISの設定と自動更新のタスクが登録されます。

  • IISのSSL設定
  • タスクスケジュールの登録

IIS設定

win-acmeを実行するとIISのサーバ証明書が同時に登録されるので、正常に設定されているか確認します。

  1. Let’s Encrypt証明書が登録されている
  2. サイトにLet’s Encrypt証明書が指定されている

win-acmeを実行する前にIISの設定を完了していれば、自動的に登録されているので確認のみです。非常に簡単です。

Let’s Encrypt証明書が登録されている

  • IISのHTTPS設定手順:Let's Encryptを利用したSSL化(win-acme)

左のペインからホスト名を選択し「サーバー証明書」をクリックします。

  • IISのHTTPS設定手順:Let's Encryptを利用したSSL化(win-acme)

サーバーにLet’s Encrypt証明書が登録されていることが確認できました。

サイトにLet’s Encrypt証明書が指定されている

次にサイトにLet’s Encrypt証明書が指定されているか確認します。

  • IISのHTTPS設定手順:Let's Encryptを利用したSSL化(win-acme)

左ペインから対象サイトを選択して「バインドの編集」を行います。

  • IISのHTTPS設定手順:Let's Encryptを利用したSSL化(win-acme)

HTTPSの設定が自動的に登録されていることが確認できました。

  • IISのHTTPS設定手順:Let's Encryptを利用したSSL化(win-acme)

HTTPSの詳細設定で登録したLet’s Encrypt証明書が設定されているかを確認します。

ウェブサイトにアクセス

あとはブラウザからアクセスしてSSL証明書が動作するかチェックしてください。

  • IISのHTTPS設定手順:Let's Encryptを利用したSSL化(win-acme)

Let’s Encrypt 証明書の自動更新

タスクスケジュール

次にタスクにLet’s Encrypt証明書の更新スケジュールが登録されているか確認します。

  • IISのHTTPS設定手順:Let's Encryptを利用したSSL化(win-acme)

毎日9時に更新チェックのタスクが実行されます。

タスクに利用されるプログラムは、インストールに利用さればフォルダの実行ファイルを利用します。間違ってもデータは削除しないようにしてください。

IISログの自動削除を組み込む

IISのログは自動的に削除されないので、証明書更新と合わせてログを削除するタスクを追加しましょう。

詳細はこちらの記事を確認してください。バッチを公開しているので、実行するだけでタスクが登録されます。

関連記事 IISログを自動的に削除する Windows

失敗例

Create certificate failed, retry? (y/n*)

証明書発行に失敗すると「Create certificate failed, retry?」と表示されます。
IISのHTTPS設定手順:Let's Encryptを利用したSSL化(win-acme)

上部に表示されたエラーを確認し対応をおこなってください。