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

GitLab Pages Let’s Encrypt証明書

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

GitLab PagesとLet’s Encrypt(LE)のインテグレーションにより、カスタムドメインを持つPages Webサイトで、LE証明書を発行および更新する手間をかけずに使用できます。GitLabがすぐに使用できるようにします。

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

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

前提要件

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

  • Webサイトのソースコードを含むGitLabでプロジェクトを作成しました。
  • ドメイン(example.com)を取得し、それをPages Webサイトに向けるDNSエントリを追加しました。トップレベルドメイン(.com)は、Public Suffixである必要があります。
  • Pagesプロジェクトにドメインを追加し、所有権を確認しました。
  • カスタムドメインからアクセスできるWebサイトが起動し、実行されていることを確認しました。

Let’s EncryptとのGitLabインテグレーションが有効になり、GitLab.comで使用できるようになりました。GitLab Self-Managedインスタンスの場合は、管理者がそれを有効にしていることを確認してください。

カスタムドメインのLet’s Encryptインテグレーションの有効化

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

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

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

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

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

    Let’s Encrypt を有効にします

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

有効にすると、GitLabはLE証明書を取得し、それインテグレーションを関連するPagesドメインに追加します。GitLabは、それも自動的に更新します。

証明書の発行とPagesの設定の更新には、can take up to an hour(最大1時間かかることがあります)。ドメイン設定にSSL証明書が既にある場合、Let’s Encrypt証明書に置き換えられるまで、その証明書は引き続き機能します。

トラブルシューティング

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

エラーSomething went wrong while obtaining the Let’s Encrypt certificate(Let’s Encrypt証明書の取得中に問題が発生しました) が表示された場合は、まず、プロジェクトの設定 > 一般 > 表示レベルで、ページサイトが「全員」に設定されていることを確認します。これにより、Let’s Encryptサーバーがページサイトにアクセスできるようになります。これが確認されたら、以下の手順に従って、証明書の取得を再度試みることができます:

  1. 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
  2. デプロイ > Pagesを選択します。
  3. ドメイン名の横にある編集 ( pencil ) を選択します。
  4. 検証ステータスで、検証を再試行する retry )を選択します。
  5. それでも同じエラーが発生する場合は、次の手順を実行します:
    1. ドメインに対してCNAMEまたはA DNSレコードが1つだけ正しく設定されていることを確認してください。
    2. ドメインにdoesn’t have(AAAA) AAAA DNSレコードがないことを確認してください。
    3. ドメインまたは上位レベルのドメインにCAA DNSレコードがある場合は、letsencrypt.orgが含まれていることを確認してください
    4. ドメインが検証されていることを確認します。
    5. ステップ1に進みます。

証明書の取得が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 have(AAAA) AAAA DNSレコードがないことを確認してください。
    3. ドメインまたは上位レベルのドメインにCAA DNSレコードがある場合は、letsencrypt.orgが含まれていることを確認してください
    4. ステップ1に進みます。