Let's Encryptをマルチドメインで導入したWindows Server 2008 R2を再起動したらSSLでアクセスが出来なくなった話


概要

自社内で公開しているサーバに対してLet's EncryptでマルチドメインのSSLをかけて公開していました。
先日、野暮用でサーバを再起動したところ、SSLでアクセスすると サーバに接続できませんでした と表示が出て、全くアクセスできなくなって困ったので、その際の対応メモ。

前提条件

  • Windows Server 2008 R2
  • IIS 7.5
  • Let's Encrypt(win-acme v1.9.12.0)
  • SSLはSAN(マルチドメイン証明書)

試したこと

  1. 特に設定は変えず、Let's Encryptで証明書を更新 … 上手く行かず
  2. 一度全てのバインドを外して、証明書を更新 … コレもダメ(というかバインドされない…)
  3. バインドコマンドを流してみる … 何故かバインドコマンドがおかしいと怒られる
    1. バインドコマンド → appcmd set site /site.name:"Default Web Site" /+bingings:'https://example.com:443'
  4. applicationHost.config を探して、バインド設定をいじり、IISを再起動
    1. <configuration> / <system.applicationHost> / <sites> / <bindings> タグ内にバインド設定を追加
    2. 追加するタグは → <binding protocol="https" bindingInformation="xxx.xxx.xxx.xxx:443:example.com" />
    3. SSLを追加するサイト分バインドを追加したら、IISを再起動
    4. 上手く表示された!

そもそも、なぜこんな事が起きた?

原因は特定できておらず、イベントログを見てもそれらしきログは皆無でした。
IIS自体、エラーログは全てイベントログに吐き出されるから見づらいったらありゃしない(アクセスログはファイルなのに…)。

もし同様の事で解決したことがある方がいらっしゃれば、お知恵をお貸しいただけると幸いです。