win-acme(Windows IIS)
2025年10月10日
Contents
- 1 win-acme(Windows IIS)セットアップ:GUI と コマンドラインを選べます
- 1.1 (重要)動作環境と事前チェック
- 1.2 1. インストール & EAB アカウント登録(共通)
- 1.3 2-A. GUIで設定(HTTP-01 / IIS ファイル認証)— 推奨:一般的なIIS単体構成
- 1.4 2-B. GUIで設定(DNS-01 / TXT レコード)— 推奨:ワイルドカード利用や80/443が閉じた環境
- 1.5 3-A. コマンドライン一発(HTTP-01 / IIS自動反映)— 推奨:自動化・複数サイト
- 1.6 3-B. コマンドライン一発(DNS-01 / 手動TXT)— 推奨:ワイルドカード・閉域環境
- 1.7 (補助)IISサイトIDの調べ方
- 1.8 (補助)プロキシ/WAF/HTTPSリダイレクト越しに HTTP-01 を通す
- 1.9 運用のポイント
win-acme(Windows IIS)セットアップ:GUI と コマンドラインを選べます
- GUI 推奨: 単一/少数サイトのIIS、担当者がRDPで通常運用、まずは確実に通したい場合(HTTP-01中心)
- コマンドライン 推奨: 自動化・スクリプト化、複数サイト/複数サーバ、ヘッドレス運用、ワイルドカードを使う(DNS-01中心)
いずれも初回にACMEアカウント登録(EAB)が必要です。下の「1. インストール&EAB登録」をまず実施してください。
(重要)動作環境と事前チェック
- Windows/IISに管理者でログインできること(win-acmeは管理者権限で実行)。
- 外向き通信:サーバから
管理画面で取得したACMEサーバURLへ到達できること(プロキシ/フィルタ確認)。 - 時刻同期(NTP)が正常。証明書発行は時刻ずれに弱いです。
- HTTP-01の場合:対象FQDNに対する 80/TCP 公開、
/.well-known/acme-challenge/への例外設定。 - DNS-01の場合:対象FQDNのゾーンを編集できること(TXTを追加できる権限)。
- 既存の自動更新ジョブ(別ツール/別CA)があれば停止して競合回避。
1. インストール & EAB アカウント登録(共通)
-
管理者権限で対象Windowsサーバにログイン。IISが導入済み、バインドが設定済みであること。
-
win-acme(wacs.exe) をダウンロードして
C:\Program Files\win-acme等に展開。 -
FujiSSL 管理ツール「契約一覧 → コマンド」で ACME サーバURL / EAB KID / EAB HMAC Key を控えておく。
アカウント登録(EAB)— コピペ用
cd "C:\Program Files\win-acme"
wacs.exe ^
--baseuri "管理画面で取得したACMEサーバURL" ^
--accepttos ^
--emailaddress admin@example.com ^
--eab-key-identifier <EAB_KID> ^
--eab-key <EAB_HMAC_KEY>
※ --baseuri に ACME URL、--eab-key-identifier/--eab-key に管理ツールで控えた値を指定。
2-A. GUIで設定(HTTP-01 / IIS ファイル認証)— 推奨:一般的なIIS単体構成
HTTP-01 は最も簡単で、IIS が /.well-known/acme-challenge/ へのHTTPアクセスに応答できればOKです。
-
IISサイトのバインドに :80(HTTP)があることを確認(FW/SG で 80/TCP を許可)。
-
HTTP→HTTPS のリダイレクトがある場合、
/.well-known/acme-challenge/を例外にします(URL Rewrite 推奨)。 -
「C:\Program Files\win-acme\wacs.exe」 をダブルクリック → 対話メニューで IIS サイトを選び、HTTP validation を選択 → 指示に従って完了。
- URL Rewrite:Blank rule → Pattern:
^\.well-known/acme-challenge/.*$、Action: None、ルールを最上段に。 - HTTP Redirect 機能で全体リダイレクトしている場合は、
.well-knownを仮想ディレクトリ化してその場所だけリダイレクト無効に。
2-B. GUIで設定(DNS-01 / TXT レコード)— 推奨:ワイルドカード利用や80/443が閉じた環境
-
wacs.exe を起動 → 対話メニューで Manual input(または対象ホスト指定)→ DNS validation を選択。
-
表示された
_acme-challenge.example.comのTXT 値を DNS に追加 → 伝播を待って Enter で続行 → 検証 → 発行。 -
ワイルドカード(
*.example.com)にも対応。
TXT 値は発行ごとに変わります。人手更新は不可のため、DNSプラグインまたはAPIフックで
自動作成→検証→(任意で削除)を行ってください。
※ win-acme の DNSプラグイン版をご利用ください(Cloudflare / Route53 / Azure DNS など対応)。
未対応のDNSでは、事業者APIを叩くスクリプトHookで代替できます。
3-A. コマンドライン一発(HTTP-01 / IIS自動反映)— 推奨:自動化・複数サイト
以下をそのままコピペで実行すると、検証→発行→IISバインド反映→自動更新タスク登録まで一気に行います。
cd "C:\Program Files\win-acme"
wacs.exe ^
--baseuri "管理画面で取得したACMEサーバURL" ^
--target iissite --siteid 1 ^
--host example.com,www.example.com ^
--validationmode http-01 --validation iis ^
--store certificatestore --certificatestore My ^
--installation iis ^
--friendlyname "FujiSSL-OV-example" ^
--accepttos --eab-key-identifier <EAB_KID> --eab-key <EAB_HMAC_KEY>
--siteid 1は対象IISサイトのIDに置換(IDの調べ方は下記参照)。- 認証中は :80 へ外部到達できること(プロキシ越しの通し方参照)。
3-B. コマンドライン一発(DNS-01 / 手動TXT)— 推奨:ワイルドカード・閉域環境
実行後に表示される TXT を DNS に足して Enter で続行します。IIS への割り当ても自動で行います。
cd "C:\Program Files\win-acme"
wacs.exe ^
--baseuri "管理画面で取得したACMEサーバURL" ^
--target manual --host example.com,*.example.com ^
--validationmode dns-01 --validation manual ^
--store certificatestore --certificatestore My ^
--installation iis --installationsiteid 1 ^
--accepttos --eab-key-identifier <EAB_KID> --eab-key <EAB_HMAC_KEY>
※ DNS プロバイダのAPIで完全自動化する場合は、win-acme の DNS プラグイン同梱版を使用し、各プロバイダのガイドに沿って
API キー等を設定してください(Cloudflare / Route53 / Azure DNS などに対応)。
TXT 値は発行ごとに変わります。人手更新は不可のため、DNSプラグインまたはAPIフックで
自動作成→検証→(任意で削除)を行ってください。
※ win-acme の DNSプラグイン版をご利用ください(Cloudflare / Route53 / Azure DNS など対応)。
未対応のDNSでは、事業者APIを叩くスクリプトHookで代替できます。
(補助)IISサイトIDの調べ方
-
IIS マネージャー → サイト一覧の「ID」列で確認(見えなければ列の選択で追加)。
-
PowerShell:
Import-Module WebAdministration Get-Website | Select-Object Id, Name, State, Bindings | Format-Table -Auto -
appcmd:
%windir%\System32\inetsrv\appcmd.exe list site /text:name,ID
(補助)プロキシ/WAF/HTTPSリダイレクト越しに HTTP-01 を通す
/.well-known/acme-challenge/ を例外にして、HTTPのまま IIS 80 番へ素通しするのがコツです。
URL Rewrite の例(web.config 抜粋)
<rule name="Skip ACME challenge" stopProcessing="true">
<match url="^\.well-known/acme-challenge/.*$" />
<action type="None" />
</rule>
<rule name="HTTP to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions><add input="{HTTPS}" pattern="off" /></conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>
上流にリバースプロキシがある場合も同様に、/.well-known/ を最優先で例外化してください。
運用のポイント
- 初回発行時にWindows タスクスケジューラへ自動登録。期限前に更新が走ります。
- 冗長化/ロードバランサ配下では、更新後に証明書を各ノードへ複製配布する仕組みを用意(スクリプトや共有ストアなど)。
- EAB KID / EAB HMAC Key は機密情報です。公開リポジトリ・技術記事・SNS・配布資料・スクリーンショットに載せないでください。
よく読まれている質問
- OV証明書 自動化手順(ACME対応)
- クロスサインが必要なのはどんな時ですか?また、利用者は何をすればよいのでしょうか?...
- DV証明書 自動化手順(ACME対応)
- Certbot インストール&設定ガイド(FujiSSL ACME)
- cert-manager 導入&設定ガイド(FujiSSL ACME)
- acme.sh インストール&設定ガイド(FujiSSL ACME)
- win-acme(Windows IIS)
- DNS 設定ガイド(HTTP-01 / DNS-01 共通)
- lego インストール&設定ガイド(FujiSSL ACME)
- 審査状況の確認
- 申請から発行までの間、どのようなメールが届きますか
- テスト証明書は発行していますか
- ファイル認証のクローラーのIPアドレスを教えてください
- FujiSSLは世界的CA「Sectigo」の中間認証局です
- FujiSSLのクーポンの有効期限はありますか?
- FujiSSLではどのACMEクライアントが使えますか?
- 身に覚えのない11円の請求がありました。なぜですか?
- 複数年プランについて
- キャンセルしたいのですが、返金はどのようにされますか。
- クライアント証明書発行までの流れ






