Skip to content
このページは AI で翻訳されており、不正確な表現が含まれる場合があります。GitHub で改善にご協力ください。

SSL 証明書 ​

証明書を自動で取得・更新し、Web サービス で使えるほか、他のソフトウェアへエクスポートすることもできます。

機能 ​

  • ACME DNS-01 による自動発行・更新。ダイナミック DNS の DNS プロバイダーを再利用するため、80 / 443 ポートを開放する必要がありません
  • ACME HTTP-01:DNS プロバイダーは不要ですが、各ドメインの 80 番ポートにインターネットからアクセスできる必要があります。ワイルドカードには対応しません
  • ワイルドカード証明書と EAB(ZeroSSL など)
  • 既存の証明書のアップロード、またはファイルからの読み込み
  • ディレクトリへのマッピング:証明書が変わったら指定ディレクトリに書き込み、スクリプトを実行して、他のサービスのリロードを容易にします
  • 自動デプロイ:証明書が変わったら複数のローカルディレクトリへコピーするか、SSH で他のホストへ送ってコマンドを実行するか、その証明書を使う Docker コンテナを再起動します

HTTP-01 検証 ​

証明書の「方式」で HTTP-01 を選びます。発行時、CA は http://<ドメイン>/.well-known/acme-challenge/<token> にアクセスします。

  • Web サービス がすでに 80 番ポートで待ち受けている場合は、Web サービスが直接応答し、既存のサイトには影響しません
  • 80 番ポートが空いている場合は、Gately が発行の間だけ一時的に待ち受け、完了後すぐに閉じます
  • ルーターが公開 80 番ポートをこのマシンの別のポートへ転送している場合は、「一時待ち受けポート」にそのポートを入力します

家庭向け回線などで受信 80 番ポートがブロックされている場合は、DNS-01 を使ってください。

証明書のマッピング ​

証明書を有効にすると、Gately は .crt、.key、.pem、_issuerCertificate.crt をマッピング先ディレクトリに書き込み、変更時のスクリプトを実行します。

自動デプロイ ​

証明書の「自動デプロイ」には複数のデプロイ先を追加でき、証明書の発行・更新・差し替え後に自動で実行されます。

  • ローカルディレクトリへコピー:証明書をこのマシンのディレクトリに書き込み、「コピー後に実行」のコマンドをローカルで実行します。ディレクトリは複数追加でき、それぞれ別のコマンドを使えます。ディレクトリ内の証明書ファイルが削除・変更された場合は、次回のチェックで再度コピーします。Gately を Docker で動かしている場合、ディレクトリとコマンドはコンテナ内のものです
  • SSH ホストへアップロード:Web ターミナル にある既存の SSH 接続を選び、そのアドレス、認証方式、プロキシを再利用します。証明書ファイル(<備考>.crt、.key、.pem、_issuerCertificate.crt。証明書のマッピングと同じため、備考は必須です)をリモートディレクトリに書き込んだ後、リモートホストで「アップロード後に実行」のコマンド(例:systemctl reload nginx)を実行します。コマンドでは $certName、$certDir、$certFile、$keyFile を使えます。ファイルはまず一時ファイルに書き込んで権限を設定してから名前を変更して置き換え、秘密鍵の権限は 0600 になります
  • ローカルコンテナを再起動:証明書が変わると、選択した Docker コンテナを順に再起動します。マッピング先ディレクトリをマウントしていて、新しい証明書の読み込みに再起動が必要なサービス向けです

「ローカルディレクトリへコピー」と「SSH ホストへアップロード」では、証明書(フルチェーン)と秘密鍵のファイル名を fullchain.pem、privkey.pem のように指定できます。両方入力するとこの 2 ファイルだけを書き込み、備考は空でも構いません。空欄の場合は証明書マッピングと同じファイル名になります。コマンド内の $certFile、$keyFile は実際に書き込んだファイルを指します。

自動デプロイは未知のホストを信頼しません。選択した SSH 接続は、先に Web ターミナルで一度接続してホスト鍵を記録しておく必要があります。デプロイに失敗すると 1 時間ごとに再試行し、「証明書:デプロイ失敗」イベントを発行します。このイベントは 通知センター で購読できます。証明書カードの「今すぐデプロイ」は再試行の間隔を無視して、有効なすべてのデプロイ先へすぐにデプロイし、デプロイ先ごとの結果を表示します。

証明書を編集したとき、設定が変わっていないデプロイ先には再度デプロイしません。リモートディレクトリ、コマンド、コンテナを変更すると、もう一度デプロイします。

セキュリティ上の注意 ​

秘密鍵は設定ディレクトリの ssl.json に保存されます。このファイルを厳重に管理し、バージョン管理に入れる場合はリポジトリがプライベートであることを確認してください。

Lucky からの移行 ​

発行済みの証明書はそのままインポートでき、有効期限が切れるまで再取得されません。ZeroSSL は Lucky の EAB 認証情報を引き継いで、新しい ACME アカウントを登録します。詳しくは 移行ガイド を参照してください。

Apache-2.0 ライセンスで公開されています。