IIJ DNSアウトソースサービス on lego

うちの職場のドメインが IIJ DNSアウトソースサービス を利用していて、Let’s Encrypt がワイルドカードに対応したので、そろそろSSL証明書を取得しようかと Windows Server で使える情報を集めていました。

  1. IIJ DNSアウトソースサービス がAPI化されて整備されていた。
  2. ACMEクライアント lego が IIJ に対応していた。

そこで、lego は windows版の最新のexeファイルをダウンロードして、バッチファイルを作って日々の運用で使えるようにしてみました。ACCESS_KEYやSECRET_KEYなどはマニュアルを参考に準備してください。DAYSは証明書の有効期限がDAYS以内になったら実行すると言う意味です。

@ECHO OFF
SETLOCAL
SET IIJ_API_ACCESS_KEY=XXXXXXXXXXXXXXXXXXXX
SET IIJ_API_SECRET_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SET IIJ_DO_SERVICE_CODE=do9999999
SET DOMAINS=*.example.co.jp
SET EMAIL=admin@example.co.jp
SET DAYS=14
IF %1==run    lego --dns iij --domains %DOMAINS% --email %EMAIL% --accept-tos run
IF %1==renew  lego --dns iij --domains %DOMAINS% --email %EMAIL% renew --days %DAYS%
IF %1==revoke lego --dns iij --domains %DOMAINS% --email %EMAIL% revoke
ENDLOCAL

実行時の環境を以下の通り

  • 指定するドメイン: *.example.co.jp
  • メールアドレス: admin@example.co.jp
  • legoインストール先: C:\lego
と仮定した時のログとフォルダ構造を載せておきます。

C:\lego>lego-iij.bat run
2019/09/06 21:51:27 No key found for account admin@example.co.jp. Generating a P384 key.
2019/09/06 21:51:27 Saved key to C:\lego\.lego\accounts\acme-staging-v02.api.letsencrypt.org\admin@example.co.jp\keys\admin@example.co.jp.key
2019/09/06 21:51:28 Please review the TOS at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf
2019/09/06 21:51:28 [INFO] acme: Registering account for admin@example.co.jp
!!!! HEADS UP !!!!
                Your account credentials have been saved in your Let's Encrypt
                configuration directory at "C:\lego\.lego\accounts".
                You should make a secure backup of this folder now. This
                configuration directory will also contain certificates and
                private keys obtained from Let's Encrypt so making regular
                backups of this folder is ideal.
2019/09/06 21:51:29 [INFO] [*.example.co.jp] acme: Obtaining bundled SAN certificate
2019/09/06 21:51:30 [INFO] [*.example.co.jp] AuthURL: https://acme-staging-v02.api.letsencrypt.org/acme/authz-v3/7284080
2019/09/06 21:51:30 [INFO] [*.example.co.jp] acme: use dns-01 solver
2019/09/06 21:51:30 [INFO] [*.example.co.jp] acme: Preparing to solve DNS-01
2019/09/06 21:51:36 [INFO] [*.example.co.jp] acme: Trying to solve DNS-01
2019/09/06 21:51:36 [INFO] [*.example.co.jp] acme: Checking DNS record propagation using [google-public-dns-a.google.com:53 google-public-dns-b.google.com:53]
2019/09/06 21:51:36 [INFO] Wait for propagation [timeout: 2m0s, interval: 4s]
2019/09/06 21:51:38 [INFO] [*.example.co.jp] acme: Waiting for DNS record propagation.
2019/09/06 21:51:43 [INFO] [*.example.co.jp] acme: Waiting for DNS record propagation.
2019/09/06 21:51:53 [INFO] [*.example.co.jp] The server validated our request
2019/09/06 21:51:53 [INFO] [*.example.co.jp] acme: Cleaning DNS-01 challenge
2019/09/06 21:51:58 [INFO] [*.example.co.jp] acme: Validations succeeded; requesting certificates
2019/09/06 21:51:59 [INFO] [*.example.co.jp] Server responded with a certificate.
C:\lego>
C:\>tree C:\lego /f
フォルダー パスの一覧
ボリューム シリアル番号は 9999-9999 です
C:\LEGO
│  CHANGELOG.md
│  lego-iij.bat
│  lego.exe
│  LICENSE
│  
└─.lego
    ├─accounts
    │  └─acme-staging-v02.api.letsencrypt.org
    │      └─admin@example.co.jp
    │          │  account.json
    │          │  
    │          └─keys
    │                  admin@example.co.jp.key
    │                  
    └─certificates
            _.example.co.jp.crt
            _.example.co.jp.issuer.crt
            _.example.co.jp.json
            _.example.co.jp.key
            
C:\>

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください