正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

GitLab Pages Let’s Encrypt証明書

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed

GitLab PagesとLet’s Encrypt (LE) とのインテグレーションにより、PagesウェブサイトでカスタムドメインのLE証明書を自分で発行更新する手間をかけずに利用できます。GitLabがすぐに利用可能な状態でこれを提供します。

Let’s Encryptは、無料で自動化されたオープンソースの認証局です。

この機能はcustom domainsの証明書のみを対象としており、Pagesデーモンの実行に必要なワイルドカード証明書 (GitLab Self-Managed、Free、Premium、Ultimateのみ) は対象外です。ワイルドカード証明書の生成はこのイシューで追跡するされています。

前提条件

ドメインのSSL証明書の自動プロビジョニングを有効にする前に、以下を確認してください:

  • ウェブサイトのソースコードを含むプロジェクトをGitLabで作成しました。
  • ドメイン(example.com)を取得し、Pagesウェブサイトを指すDNSエントリを追加しました。トップレベルドメイン(.com)はPublic Suffixである必要があります。
  • あなたのドメインをPagesプロジェクトに追加し、その所有権を確認しました。
  • あなたのウェブサイトが稼働しており、カスタムドメイン経由でアクセス可能であることを確認しました。

GitLabとLet’s Encryptのインテグレーションは、GitLab.comで有効化され、利用可能です。GitLab Self-Managedインスタンスの場合は、管理者がそれを有効にしていることを確認してください。

カスタムドメインにLet’s Encryptインテグレーションを有効にする

要件を満たしたら、Let’s Encryptインテグレーションを有効にします:

  1. 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。

  2. デプロイ > Pagesを選択します。

  3. ドメイン名の横にある編集 ( pencil ) を選択します。

  4. Let’s Encryptを用いた自動証明書管理切替をオンにします。

    Enable Let’s Encrypt

  5. 変更を保存を選択します。

有効にすると、GitLabはLE証明書を取得し、関連付けられたPagesドメインに追加します。GitLabは自動的に更新も行います。

証明書の発行とPagesの設定更新にはcan take up to an hour。ドメイン設定に既にSSL証明書がある場合、Let’s Encrypt証明書に置き換えられるまで機能し続けます。

トラブルシューティング

Let’s Encrypt証明書の取得中に問題が発生しました

Something went wrong while obtaining the Let’s Encrypt certificateというエラーが表示されることがあります。

このイシューは、Let’s Encryptがあなたのドメインに到達または検証することができない場合に発生します。

この問題を解決するには、次の手順に従います:

  1. 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
  2. 設定 > 一般 > 表示レベルを選択し、Pages全員に設定されていることを確認します。
  3. デプロイ > Pages > ドメインと設定を選択します。
  4. ドメイン名の横にある編集 ( pencil ) を選択します。
  5. 検証ステータスで、検証を再試行する retry )を選択します。

同じエラーが発生した場合は、以下を確認してください:

  • ドメインにCNAMEまたはA DNSレコードを1つだけ設定していることを確認してください。
  • ドメインにAAAA DNSレコードがないことを確認してください。
  • ドメインまたは上位レベルのドメインにCAA DNSレコードがある場合は、letsencrypt.orgが含まれていることを確認してください。
  • ドメインが検証されていることを確認してください。
  • 並行デプロイを使用している場合は、プライマリデプロイに空のpath_prefixがあることを確認してください。空でないpath_prefix(例: latest)の場合、/.well-known/acme-challengeパスが提供されません。

デプロイ > Pages設定に戻り、検証を再試行してください。

証明書の取得が1時間以上停止する

Let’s Encryptインテグレーションを有効にしているにもかかわらず、1時間経っても証明書が表示されず、次のメッセージが表示される場合:

GitLab is obtaining a Let's Encrypt SSL certificate for this domain.
This process can take some time. Please try again later.

以下の手順に従って、GitLab Pagesのドメインを再度削除して追加してください:

  1. 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
  2. デプロイ > Pagesを選択します。
  3. ドメイン名の横にある削除を選択します。
  4. ドメインを再度追加し、検証する
  5. ドメインのLet’s Encryptインテグレーションを有効にする
  6. まだ同じエラーが発生する場合は:
    1. ドメインにCNAMEまたはA DNSレコードを1つだけ適切に設定していることを確認してください。
    2. ドメインにdoesn’t haveAAAA DNSレコードがないことを確認してください。
    3. ドメインまたは上位レベルのドメインにCAA DNSレコードがある場合は、letsencrypt.orgが含まれていることを確認してください。
    4. ステップ1に進んでください。