🗒️

Posh-ACME / PowerShell を利用した Let's Encrypt / SSL証明書の取得

2021/07/16に公開

Windows Server に関連して、IIS や ADFS (Active Directory Federation Service) を立てて検証する時に、Posh-ACME を利用して Let's Encrypt の証明書を取得しているので、自分が作業しやすいようにメモの吐き出しです。

Posh-ACME とは?

rmbolger/Posh-ACME: ACME protocol client for obtaining certificates using Let's Encrypt
https://github.com/rmbolger/Posh-ACME

端的に言うと PowerShell で実行できる ACME クライアント
Windows系でSSL証明書が必要になった際に、これでサクッと取得/インポート出来るので良く使ってます。

使い方

正確なところは上記 GitHub か、チュートリアルを見てください。

Posh-ACME Tutorial
https://github.com/rmbolger/Posh-ACME/blob/main/Tutorial.md

SSL証明書の取得

  • PowerShell を管理者権限で起動し、下記コマンドを実行
    (TLS1.2 を明示してるのは稀に古いサーバで実行するから...)
    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    Install-Module -Name Posh-ACME -Scope CurrentUser
    Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
    Import-Module Posh-ACME
    New-PACertificate *.<YOUR DOMAIN> -AcceptTOS -PfxPass poshacme
    

New-PACertificate を実行してしばらくすると、チャレンジ/レスポンスのキーと値が表示されるので、自前の DNS / TXT レコードへ登録して検証をクリアして下さい。

SSL証明書のインポート

上記で取得した証明書は下記パスに保存されますが AppData は既定で隠されているフォルダなので直で指定します。

C:\Users\<USERNAME>\AppData\Local\Posh-ACME\acme-v02.api.letsencrypt.org\xxxxxxxxx\!.<YOUR DOMAIN>\fullchain.pfx

ADFS/WAP/WEBサーバ等として構成するサーバに fullchain.pfx をコピー、ダブルクリックでインポートします (コンピュータ > 個人など)、インポート時のパスワードは既定で poshacme です。
あとは用途に応じて各サーバの設定で証明書を指定するだけで利用できます。楽ちん・・・。

証明書の更新

短期の検証で使う事が多いので、自動更新などは利用していませんが、チュートリアルの方に記載されているので、そちらを参照して頂ければ分かると思います。

Posh-ACME Tutorial - Renewals and Deployment
https://github.com/rmbolger/Posh-ACME/blob/main/Tutorial.md#renewals-and-deployment

以上です。

Discussion