Windows 11 HomeでWebサイト公開

環境

Windows 11 Home 25H2
そこそこなデスクトップPC
良さげなルーター
適当に取ったドメイン(DNSでAレコード設定済み)

ルーター側の設定

サーバーにするPCのIPアドレスは固定にしておきましょう。
443(80)のポート開放を行いましょう。(各社UIが違うのでいい感じで)

Windowsのファイアウォールの設定

Windowsファイアウォールで443(80)を許可。

PowerShellの例を下記に示します。

# HTTP (80) を許可
netsh advfirewall firewall add rule name="HTTP Inbound" dir=in action=allow protocol=TCP localport=80

# HTTPS (443) を許可
netsh advfirewall firewall add rule name="HTTPS Inbound" dir=in action=allow protocol=TCP localp

ISS(インターネットインフォメーションサービス)の有効化

コントロールパネル → プログラムと機能 → 『Windows の機能の有効化または無効化』 → 「Internet Information Services」にチェック → OK

IISの設定

ISSマネージャーを起動

コンピューター名を右クリック「Webサイトの追加」

サイト名: 適当でOK
物理パス: index.htmlがあるディレクトリを選択
ホスト名: ドメイン名を入力
HTTPS化を簡単にするために、一度HTTPで作成する

これでHTTPでの公開が完了。
80のポート開放をしていればアクセスできるはず。

win-acmeの導入(HTTPS化)

ダウンロード: https://www.win-acme.com/

上記サイトからダウンロードしてzipファイルを解凍、wacs.exeを管理者として実行

メニューで「Create new certificate (full options)」または「N」→ 「1」による IIS 対応を選択

色々規約の同意が出てくるので、すべて同意して、メールアドレスを入力して完了。

HTTPでの公開が出来ていれば勝手にHTTPS化してくれるので、HTTPSでアクセスできるようになります。

おまけ

HTTPでアクセスされた際にHTTPSでの通信にリダイレクトさせる設定

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Redirect to HTTPS" stopProcessing="true">
          <match url="(.*)" />
          <conditions>
            <add input="{HTTPS}" pattern="off" ignoreCase="true" />
          </conditions>
          <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
        </rule>

        <rule name="SPA Routes" stopProcessing="true">
          <match url=".*" />
          <conditions logicalGrouping="MatchAll">
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          </conditions>
          <action type="Rewrite" url="/index.html" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

これをindex.htmlと同じ階層においておけば勝手にリダイレクトされるようになる。