本文へ移動

TLS 証明書と HTTPS

HTTPS は、Passkey、OIDC コールバック、インターネットで公開する多くのサービスの基盤です。証明書は、訪問者が実際に使用する認証 Host とサービス用 Host をカバーする必要があります。内部アドレスや古いドメイン名だけを対象に証明書を発行しても、ゲートウェイではブラウザーの警告やログイン失敗が発生します。

ページ構成と証明書の取得元

SSL / HTTPS は 3 つのタブに分かれています。

タブ管理する内容
証明書設定現在の HTTPS 状態、ゲートウェイへの展開モード、手動アップロード、証明書ストア
自己署名証明書ローカルルート CA と、その CA が発行するドメイン / IP 用サーバー証明書
ACME 証明書 / DNS-01 証明書複数の申請設定、発行、更新、ログ、証明書ストアとの関連付け
取得元適した用途注意事項
既存の証明書をアップロードCDN、管理パネル、その他のツールですでに証明書を発行済み証明書チェーンと秘密鍵を一緒に保存し、更新責任の所在を記録する
自己署名証明書LAN 内のテストや一時的な検証クライアント側で手動の信頼設定が必要で、一般的なインターネット公開には不向き
ACME検証可能なドメインがあり、自動更新を使用したい現在の申請フローは DNS-01 を使用するため、DNS API 認証情報を保護する

証明書ストアと手動アップロード

アップロード欄には PEM 証明書と秘密鍵を直接貼り付けられます。共有ディレクトリを利用できるプラットフォームでは、共有ファイルから読み込むこともできます。証明書と秘密鍵は一致する必要があり、証明書チェーンにはサーバー証明書と必要な中間証明書を含めてください。

保存時には 2 つの操作があります。

操作結果
証明書ストアのみに保存検証してストアへ追加するだけで、現在公開中の証明書は変更しない
保存して有効にするストアへ追加し、現在有効な証明書またはデフォルトのフォールバック証明書に設定して、直ちにゲートウェイへ同期する

証明書ストアには、取得元、対象ドメイン、有効期間、更新日時、Host のカバレッジが表示されます。使用中の証明書を削除すると、HTTPS も同時に無効になります。証明書ストアをクリア を実行すると、すべての証明書とゲートウェイが受信済みの証明書セットが削除され、HTTPS も無効になります。一時的に HTTPS だけを停止する場合は、状態カードの HTTPS を無効化 を使用してください。証明書はストアに残ります。

単一の有効な証明書と複数の証明書 SNI

証明書ストアには複数の証明書を保持できますが、ゲートウェイへ実際に送信される枚数は 展開モードとゲートウェイ同期 で決まります。

展開モードゲートウェイの動作適した用途
単一の有効な証明書現在有効な証明書だけを送信し、すべてのドメインで同じ証明書を返す1 枚のワイルドカード証明書または SAN 証明書ですべての Host をカバーする
複数の証明書 SNI証明書セット全体を送信し、TLS SNI に基づいてドメインに合う証明書を選択する異なる親ドメインや異なる取得元の証明書で 1 つのゲートウェイを共有する

複数の証明書 SNI でも、デフォルトのフォールバック証明書が 1 枚必要です。クライアントが SNI を送信しない場合、不明な Host にアクセスした場合、または一致する証明書がない場合、ゲートウェイはデフォルトの証明書を返します。展開モードを切り替えた後は、ページの ゲートウェイが現在受信している証明書のセット を確認してください。保存済みモードと実行中のモードが一致しない場合や同期エラーがある場合は、証明書ストアの内容だけで適用済みと判断しないでください。

サブドメイン構成では、認証 Host とインターネットへ公開するすべてのサービス用 Host をカバーする必要があります。ワイルドカード *.example.com がカバーするのは 1 階層のサブドメインだけで、ルートドメイン example.coma.b.example.com は対象外です。ページの Host カバレッジ分析では、現在のマッピングをもとに不足している項目が表示されます。

自己署名ルート CA

自己署名証明書 は次の順序で使用します。

  1. ルート証明書を初期化し、ルート CA をダウンロードします。
  2. アクセスに使用するすべてのクライアントまたは管理対象デバイスへ、ルート CA を信頼済みルート証明書としてインストールします。
  3. ドメインと IP の一覧に、実際にアクセスする名前を追加します。
  4. 適用 をクリックしてサーバー証明書を発行・インストールするか、サーバー証明書をダウンロードして別途使用します。

サーバー証明書の有効期間は 20 年です。有効期間が長くても、秘密鍵の保護や失効時の計画を省略してよいわけではありません。ルート CA を再生成またはクリアすると、元のルート CA が発行したサーバー証明書は信頼されなくなるため、画面では 2 回の確認が必要です。実行前に、新しいルート証明書を配布する方法とロールバック手順を用意してください。

自己署名証明書は、管理された LAN、テスト用デバイス、ルート証明書を一括配布できる環境に適しています。インターネット上の訪問者、外部 OIDC、不特定のクライアントには、通常は公的に信頼される CA を使用してください。

ACME 申請設定

Windows 以外のプラットフォームで初めて使用する場合は、先に システム設定 → ACMEacme.sh を初期化し、必要に応じてデフォルトの認証局を選択します。認証局の切り替えが影響するのは、以後の申請と自動更新だけです。発行済みまたは展開済みの証明書が直ちに置き換わることはありません。

ACME の各申請設定には、次の内容が個別に保存されます。

  • 名前と 1 つ以上のドメイン
  • DNS プロバイダーと、その申請設定で使用する API 認証情報
  • 自動更新の有効・無効
  • 現在の証明書、証明書ストアとの関連付け、直近のタスク状態

保存 は申請設定だけを変更し、保存して適用 は直ちに発行タスクを送信します。発行に成功した証明書は証明書ストアへ自動同期されますが、必ずしも現在の証明書にはなりません。単一の有効な証明書モードでは、必要に応じて 現在の証明書として設定 を実行します。複数の証明書 SNI モードでは、その証明書がゲートウェイの証明書セットに含まれたことを確認してください。

同じ申請設定を更新または再申請した場合、関連付け済みの証明書ストア記録がその場で置き換えられ、元のラベルと現在有効またはデフォルトの展開ロールが維持されるため、証明書が重複して増えることはありません。ドメイン変更後の発行タスクが失敗または停止しても、以前の使用可能な発行結果は維持されます。新しい証明書をゲートウェイへ送信できなかった場合は、以前の SSL 設定を復元して再送信します。その間により新しい設定が保存されていた場合は、その新しい設定を維持して送信します。タスク自体は失敗として終了するため、ログで以前の設定を復元したのか、新しい設定を維持したのか、または安全な設定も復元できなかったのかを確認してください。

申請設定のメニューからは、タスクログの表示、証明書のダウンロード、証明書ストアの手動更新、展開、証明書の削除、申請設定の削除も行えます。2 つの削除操作では対象範囲が異なります。

操作保持される内容
証明書を削除申請設定は保持し、現在保存されている発行結果と証明書ストアとの関連付けを削除
申請設定を削除申請設定を削除し、その申請設定に属する既存の証明書と関連付けも削除

タスクまたは自動更新の実行中は、一覧の操作が一時的にロックされます。タスクログには、DNS 認証情報、DNS API のレート制限、ACME の申請回数制限など、確認すべき方向が表示されます。タスクを停止すると、現在実行中の acme.sh プロセスが終了し、タスクは停止済みになります。後で改めて実行してください。

Windows ネイティブ版:DNS-01 証明書

Windows x86_64 版では、SSL / HTTPS → DNS-01 証明書 から証明書を申請します。証明書クライアントはインストールパッケージに組み込まれているため、ACME.sh の初期化やダウンロードは不要です。この経路では Let's Encrypt と DNS-01 検証だけを使用し、HTTP-01 や他の認証局への切り替えは利用できません。

ページでサポート対象の DNS プロバイダーを選択し、必要最小限の権限を持つ API 認証情報を保存してください。現在は Aliyun DNS、Baidu Cloud DNS、Cloudflare、DNSPod、Tencent Cloud DNSPod、DuckDNS、Dynu、dynv6、GoDaddy、Huawei Cloud DNS、Porkbun をサポートしています。Cloudflare では API Token と Global API Key の 2 種類の認証情報を利用できますが、Zone を限定した Token を優先してください。

新しい申請設定では自動更新がデフォルトで有効になり、発行に成功した証明書は証明書ストアへ追加されます。単一の有効な証明書モードでは、初回発行後に手動で現在の証明書として設定する必要があります。Windows のページでは acme.sh の初期化は不要で、認証局の切り替えもありません。

FNOS SSL 証明書同期(ネイティブ FPK のみ)

FNOS ネイティブ FPK では、システム設定 → FNOS → FNOS SSL 証明書同期 から、fn-knock の証明書ストアの内容を FNOS システムにある既存の証明書記録へ同期できます。

同期によって更新されるのは、ドメインと SAN の組み合わせが完全に一致する既存の FNOS 証明書だけです。FNOS システム内に証明書記録を新規作成したり、削除したりすることはありません。そのため、先に両方のストアで対象ドメインの組み合わせが一致していることを確認し、個別または一括で同期してください。一致する記録がない場合は、同期機能による自動作成を期待せず、先に証明書記録を調整します。

必要に応じて手動同期を実行できるほか、自動同期も有効にできます。自動モードでは、ローカルの証明書ストアが変更された後に短時間待って複数の変更をまとめ、一致する項目を同期して FNOS サービスを 1 回更新します。同期先の証明書で FNOS 側の自動更新も有効な場合は、後の更新によって同期結果が上書きされる可能性があります。どちらの側が更新を担当するか明確にしてください。

推奨設定手順

  1. インターネットへ公開する最終的なドメインとポートを確定し、内部アドレスで証明書を申請しないようにします。
  2. DNS で認証 Host とサービス用 Host の名前解決が反映済みであることを確認します。
  3. SSL / HTTPS で証明書をアップロード、申請、または選択します。
  4. 証明書の枚数に応じて単一の有効な証明書または複数の証明書 SNI を選択し、ゲートウェイが想定した証明書セットを受信したことを確認します。
  5. 証明書のカバレッジ表示を確認し、対象外の Host を修正します。
  6. モバイルネットワークから認証 Host とサービス用 Host の 1 つへアクセスし、ブラウザーで証明書チェーン、ドメイン、有効期間、ログインフローを確認します。

自動 HTTPS の境界

システムの自動 HTTPS が行うのは、ゲートウェイ側の HTTP から HTTPS へのリダイレクトと、設定済み証明書の有効化だけです。ドメインの申請、ルーターのポート開放、CDN のオリジン設定を代行するものではありません。Docker と OpenWrt 環境には、このホスト関連のスイッチがありません。外側のリバースプロキシで TLS を終端する場合は、外側で HTTPS を強制してください。Windows でスイッチが表示されても、実際の受信経路と利用可能なポート 80 が先に必要です。7999 がデフォルトですべてのインターフェースをリッスンすることは、Windows ファイアウォール、ルーター / NAT、通信事業者がインターネットからのアクセスを許可していることを意味しません。

トラブルシューティング

  • ブラウザーにドメイン不一致と表示される:証明書の DNS 名が現在の Host をカバーしていないか、上流の CDN が誤ったサイトをオリジンとして参照しています。

  • 証明書ストアに存在するのにインターネット側では古い証明書が返る:その証明書が現在有効またはデフォルトに設定されているか、展開モードが正しいか、ゲートウェイが受信済みの証明書セットが更新されたかを確認します。

  • 複数のドメインで同じ誤った証明書が返る:現在も単一の有効な証明書モードになっていないか、複数の証明書 SNI に一致する証明書がなくデフォルトへフォールバックしていないかを確認します。

  • アップロードに失敗する:PEM の内容、秘密鍵との一致、証明書チェーンの順序を確認し、PKCS#12 ファイルの内容を PEM テキスト欄へ貼り付けないでください。

  • ACME に失敗する:DNS プロバイダーの認証情報、DNS API のレート制限、TXT レコードの伝播を確認します。現在の申請フローは DNS-01 だけを使用するため、HTTP-01 の方向で調査しないでください。

  • ACME の発行に成功したが反映されない:証明書ストアとの関連付けと、単一の有効な証明書モードで 現在の証明書として設定 を実行したかを確認します。

  • Cloudflared で https://localhost:7999 を使用すると失敗する:アップストリームの TLS 名と証明書が一致する必要があります。一致させられない場合は、先に検証済みの HTTP オリジン方式を使用するか、Tunnel の TLS 設定を調整してください。

  • サービスページは正常だが Passkey を使用できない:認証 Host が有効な HTTPS と正しい RP ドメイン名でアクセスされているか確認します。

  • DDNS 管理

  • サブドメインマッピング

  • Cloudflared トンネル

  • システム設定とメンテナンス

QQ コミュニティ:1081609274