GitLab PagesのLet’s Encrypt証明書

GitLab 12.1 で導入されました

GitLab PagesとLet’s Encrypt(LE) のインテグレーションにより、カスタムドメインのPagesウェブサイトでLE証明書を使用することができます。

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

caution
この機能は、Pagesデーモンを実行するために必要なワイルドカード証明書ではなく、カスタムドメイン用の証明書のみを対象としています。 .ワイルドカード証明書の生成は、このイシューで追跡されています。

前提条件

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

  • GitLab にあなたのウェブサイトのソースコードを含むプロジェクトを作成してください。
  • ドメイン (example.com) を取得し、あなたの Pages ウェブサイトを指すDNS エントリを追加します。トップレベルドメイン(.com)は公開サフィックスでなければなりません。
  • ドメインをPagesプロジェクトに追加し、所有権を確認しました。
  • あなたのウェブサイトが稼働し、カスタムドメインからアクセスできることを確認しました。

Let’s EncryptとのGitLabインテグレーションが有効になっており、GitLab.comで利用可能であること。セルフマネジメントのGitLabインスタンスでは、管理者が有効にしていることを確認してください。

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

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

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. 左サイドバーで、[デプロイ] > [Pages]を選択します。
  3. ドメイン名の横にある[Edit(編集)]を選択します。
  4. Let’s Encryptを使用した証明書の自動管理]トグルをオンにします。

    Enable Let's Encrypt

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

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

注:

  • 証明書のイシューとPages設定の更新には最大1時間かかることがあります
  • ドメイン設定ですでにSSL証明書をお持ちの場合は、Let’s Encrypt証明書に置き換わるまで引き続き使用できます。

トラブルシューティング

Let’s Encrypt証明書の取得中にエラーが発生しました。

GitLab 13.0から導入されました

Let’s Encrypt証明書を取得する際にSomething went wrongというエラーが表示された場合は、まずプロジェクトのPages> General > Visibilityでページサイトが “Everyone “に設定されていることを確認してください。これにより、Let’s Encrypt サーバーがあなたの Pages サイトに到達できるようになります。これを確認したら、以下の手順で再度証明書の取得をお試しください:

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. 左サイドバーで、[デプロイ] > [Pages]を選択します。
  3. ドメイン名の横にある[Edit(編集)]を選択します。
  4. 検証ステータスで検証の再試行({retry})を選択します。
  5. それでも同じエラーが出る場合は
    1. ドメインにCNAME またはA DNSレコードが1つだけ正しく設定されていることを確認してください。
    2. ドメインにAAAA DNSレコードがないことを確認してください。
    3. ドメインまたは上位ドメインにCAA DNS レコードがある場合は、letsencrypt.orgが含まれていることを確認してください。
    4. ドメインが検証済みであることを確認してください。
    5. ステップ1に進んでください。

メッセージ「GitLabはこのドメインのLet’s Encrypt SSL証明書を取得しています。この処理には時間がかかります。Please try again later.” が1時間以上ハングします。

Let’s Encryptインテグレーションを有効にしているにも関わらず、1時間経っても証明書が存在せず、”GitLab is obtaining a Let’s Encrypt SSL certificate for this domain.このプロセスには時間がかかります。Please try again later. “と表示された場合は、以下の手順でGitLab Pagesのドメインを削除し、再度追加してみてください:

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. 左サイドバーで、[デプロイ] > [Pages]を選択します。
  3. ドメイン名の横にある[削除]を選択します。
  4. ドメインを再度追加し、確認します。
  5. ドメインのLet’s Encryptインテグレーションを有効にします。
  6. それでも同じエラーが出る場合は
    1. ドメインにCNAME またはA DNSレコードが1つだけ正しく設定されていることを確認してください。
    2. ドメインにAAAA DNSレコードがないことを確認してください。
    3. ドメインまたは上位ドメインにCAA DNS レコードがある場合は、letsencrypt.orgが含まれていることを確認してください。
    4. ステップ1に進んでください。