GitLab PagesとLet’s Encryptのインテグレーション

GitLab 12.1で導入されました。GitLab 12.1より前のバージョンについては、手動Let’s Encryptの説明を参照してください。

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

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

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

要件

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

  • GitLab にあなたのウェブサイトのソースコードを含むプロジェクトを作成しました。
  • ドメイン(example.com)を取得し、あなたのPagesウェブサイトを指すDNSエントリを追加しました。
  • Pagesプロジェクトにドメインを追加し、所有権を確認しました。
  • カスタムドメインでアクセス可能なウェブサイトが稼動していることを確認します。
注:GitLabのLet’s Encryptインテグレーションは有効になっており、GitLab.comで利用可能です。セルフマネジメントのGitLabインスタンスの場合は、管理者が有効にしていることを確認してください。

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

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

  1. プロジェクトの「設定」>「Pages」に移動します。
  2. ドメインを検索し、[詳細]をクリックします。
  3. 右上の「編集」をクリックします。
  4. Let’s Encryptを使用した証明書の自動管理]を切り替えて、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というエラーが表示された場合は、以下の手順で証明書の取得をやり直してください:

  1. プロジェクトの「設定」>「Pages」を開きます。
  2. ドメインの編集をクリックします。
  3. 再試行をクリックします。
  4. それでも同じエラーが表示される場合:
    1. ドメインにCNAME またはA DNSレコードを1つだけ適切に設定していることを確認してください。
    2. ドメインにAAAA DNSレコードがないことを確認してください。
    3. ドメインまたは上位ドメインにCAA DNS レコードがある場合は、letsencrypt.orgが含まれていることを確認してください。
    4. ドメインが認証されていることを確認してください。
    5. ステップ1に進んでください。

GitLabはこのドメインのLet’s Encrypt SSL証明書を取得しています。 このプロセスには時間がかかることがあります。 後でもう一度試してください” というメッセージが1時間以上ハングします。

Let’s Encryptインテグレーションを有効にしているにもかかわらず、1時間経っても証明書が発行されず、”GitLab is getting a Let’s Encrypt SSL certificate for this domain. This process can take some time. Please try again later. “というメッセージが表示される場合は、以下の手順でGitLab Pagesのドメインを削除し、再度追加してみてください:

  1. プロジェクトの「設定」>「Pages」を開きます。
  2. ドメインの削除をクリックします。
  3. ドメインを再度追加し、確認します。
  4. ドメインのLet’s Encryptインテグレーションを有効にします。
  5. 時間が経っても同じメッセージが表示される場合:
    1. ドメインにCNAME またはA DNSレコードを1つだけ適切に設定していることを確認してください。
    2. ドメインにAAAA DNSレコードがないことを確認してください。
    3. ドメインまたは上位ドメインにCAA DNS レコードがある場合は、letsencrypt.orgが含まれていることを確認してください。
    4. ステップ1に進んでください。