Windowsサーバー2022のIISで手動でLet’s Encryptの取得・更新をする

win-acmeなどを利用すれば、Let’s Encryptの取得と更新を自動化する事が出来るが、SSLなう(v2)などで手動で取得・更新をするメモ。

http-01でドメイン名の所有確認

http-01でドメイン名の所有確認する時に、そのままhttp://example.com/.well-known/acme-challenge/にファイルを設置しただけでは、IIS の非表示の静的ファイルは HTTP 404 またはアクセス拒否エラーを返しますという仕様により、404エラーが出て取得できません。

なので、以下の内容のweb.config/.well-known/acme-challenge/に設置します。

証明書発行申請

無事にドメイン名の所有確認ができたらいよいよ証明書の発行を申請します。

Let’s Encryptの秘密鍵のデフォルトの暗号化形式がRSAからECDSA方式に変わりましたが、ここでは、念のためRSA方式で秘密鍵を作成します。

秘密鍵が作成されたら、コピーしてexample.com.keyなどとして保存します。

保存したら、証明書発行申請をクリックして、証明書を発行します。

発行された証明書を保存

発行された証明書で特に保存しておくのはfullchain.pemです。

証明書をPKCS#12(pfx)形式への変換

先ほど保存しておいたfullchain.pemexample.com.keyをつけて、PKCS#12(pfx)形式へ変換します。

事前にOpenSSLのダウンロードをしてインストールしておきます。

  • OpenSSLによる開発作業は特に行わない
  • 新しいV.3系のソフトウェアを利用したい

等であれば、Win64OpenSSL_Light-3_2_1.msiなどをダウンロードしてインストールします。

次のコマンドを使用して、PKCS#12(pfx)形式へ変換します。

パスワードを設定したらexample.com.pfxが出力されます。

IISでSSL証明書の設定

インターネット インフォメーション サービス (IIS) マネージャーを開き、ホームを開き、サーバー証明書をダブルクリックして開き、右側ペインの操作のインポートをクリックして、証明書のインポート画面を表示します。
証明書ファイル (.pfx)(C):で先ほど保存したexample.com.pfxを指定して開き、パスワード(P):に設定したパスワードを入力し、証明書ストアの選択(S):個人を選択し、OKをクリックしてインポートします。

インポートが完了したら、左側ペインのサイトから、証明書を適用するドメイン名の上で右クリックして、バインドの編集...をクリック、サイトバインドが開いたら、新規の場合は追加(A)をクリックして、種類httpsIP アドレス(I):未使用の IP アドレスすべてホスト名(H):ドメイン名サーバー名表示を要求する(N)にチェックを入れて、SSL 証明書(F):でドメイン名を選択してOKをクリックして設定します。
SSLを更新する場合は、更新するhttpsホスト名を選択し、編集(E)...をクリックし、SSL 証明書(F):でドメイン名を選択してOKをクリックして設定します。

https://example.com/へアクセスして、SSLが適用されていることを確認し、問題が無ければ終了です。

コメント

タイトルとURLをコピーしました