IIS Let's Encrypt Windows Server

IISでLet’s Encryptしてみた

IIS

IISに無料SSLサーバー証明書 Let’s Encrypt の設定

LinuxにLet’s Encrypt のインストール経験はあるのだが、Windowsサーバーは初めて
近頃WebサイトのSSL化が騒がれているのでチャレンジしてみた
SSL化にはいろいろな方法があると思うが今回は win-acmeというものを使ってみた
結論を先に言ってしまうと、Linuxにくらべて非常にラクチン!だった。

動作環境

  • Windows Server 2016
  • IIS version 10.0

インストール

インストールと言ってもzipファイルをダウンロードして任意のフォルダに展開するだけです。

win-acme のダウンロード

ダウンロードサイト 最新バージョン v2.1.1をダウンロードした

いろいろあって迷ったが64ビットのファイルサイズの一番大きいものをダウンロードしてみた
このZIPファイルを任意のフォルダに解凍展開しました。
この中のwacs.exeがwin-acmeアプリケーションの本体実行ファイルです。

SSL証明書の取得

wacs.exeをコマンドプロンプトで実行します。
後は取得のためのパラメータを聞いてくるので入力するだけです。
パラメータの選択で特に迷うことはありませんでした。
このWEBサーバーのIIS設定状況を解析して進めてくれます。すごくラクチンでした。
メニューで

  • 「N」 新しい証明書
  • 「1」 Single binding of an IIS site 複数のサイトがあるが一つ一つ設定してみた
  • 「2」 複数サイトの中の証明書を設定するサイトの選択 サイト一覧を自動で取得してくれました。

  • Let’s Encrypt から通知を受け取るメールアドレスを入力
  • 「y」利用規約(Terms of Service)を確認した。PDFがデフォルトのアプリで開いた。
  • 「y」利用規約に同意しました。SSL証明書の要求と取得が実行された。証明書更新のスケジューリングも設定された。
  • 「L」証明書更新の履歴が表示されました。
  • エンターで元に戻って他のサイトのSSL証明書の取得をしました

同様に残りのサイトのSSL証明書を取得しました。
ドメインの選択時に注意して選択します。
それ以外は同じ要領で入力しました。
メールアドレスの入力は無かったので最初に登録したものを使う様です。
[WARN] 警告が1度出ましたが、リトライで正常に完了した様です。

「L」にて証明書の取得状況の確認が出来ます。

サイトバインドの確認

インターネットインフォメーションサービス(IIS)マネージャーを起動します。
左側ペインのサイト名を右クリックして「バインドの編集」を開きます。

既存のポート「80」に加えてポート「443」のhttpsサイトが追加されました。

httpsサイトを選択後「編集」にて「SSL証明書」の取得日時の確認ができます。

SSL証明書更新処理スケジュールの確認

「タスク スケジューラ」を開きます。
左側ペインの「タスク スケジューラ ライブラリー」を選択して
「win-acme renew (acme-v02.api.letsencrypt.org)」のスケジュールが追加されていることを確認します。
デフォルトでは「毎日9:00」に証明書更新時期のタイミングを判断して更新時期になった時点で自動更新タスクが走るものと思われます。公開サイトであればアクセスの少ない時間帯が理想的と思うので時刻を変更してみようと思います。

所感

  • Windows版はなんと言っても設定がラク。驚きました。Linux版はちょっと面倒だった。
  • これって本当にフリー?と思えるくらい優れもの感。まさか有償だったりして。。。?
  • 最近、Windows Server VPSも値下がり傾向に感じられるのでWindows VPSも良いかな?
  • MSさんは クロスプラットフォームの.NET CORE に注力して来てはいるのだがWindows VPSも良いかも?

コメント