GitLab PagesのLet’s Encrypt証明書
GitLab 12.1 で導入されました。
GitLab PagesとLet’s Encrypt(LE) のインテグレーションにより、カスタムドメインのPagesウェブサイトでLE証明書を使用することができます。
Let’s Encryptは無料で自動化されたオープンソースの認証局です。
前提条件
ドメインのSSL証明書の自動プロビジョニングを有効にする前に、以下を確認してください:
- GitLab にあなたのウェブサイトのソースコードを含むプロジェクトを作成してください。
- ドメイン (
example.com
) を取得し、あなたの Pages ウェブサイトを指すDNS エントリを追加します。トップレベルドメイン(.com
)は公開サフィックスでなければなりません。 - ドメインをPagesプロジェクトに追加し、所有権を確認しました。
- あなたのウェブサイトが稼働し、カスタムドメインからアクセスできることを確認しました。
Let’s EncryptとのGitLabインテグレーションが有効になっており、GitLab.comで利用可能であること。セルフマネジメントのGitLabインスタンスでは、管理者が有効にしていることを確認してください。
カスタムドメインのLet’s Encryptインテグレーションを有効にする方法
要件を満たしたら、Let’s Encryptインテグレーションを有効にします:
- 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
- 左サイドバーで、[デプロイ] > [Pages]を選択します。
- ドメイン名の横にある[Edit(編集)]を選択します。
-
Let’s Encryptを使用した証明書の自動管理]トグルをオンにします。
- 変更を保存を選択します。
有効にすると、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 サイトに到達できるようになります。これを確認したら、以下の手順で再度証明書の取得をお試しください:
- 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
- 左サイドバーで、[デプロイ] > [Pages]を選択します。
- ドメイン名の横にある[Edit(編集)]を選択します。
- 検証ステータスで、検証の再試行({retry})を選択します。
- それでも同じエラーが出る場合は
- ドメインに
CNAME
またはA
DNSレコードが1つだけ正しく設定されていることを確認してください。 - ドメインに
AAAA
DNSレコードがないことを確認してください。 - ドメインまたは上位ドメインに
CAA
DNS レコードがある場合は、にletsencrypt.org
が含まれていることを確認してください。 - ドメインが検証済みであることを確認してください。
- ステップ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のドメインを削除し、再度追加してみてください:
- 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
- 左サイドバーで、[デプロイ] > [Pages]を選択します。
- ドメイン名の横にある[削除]を選択します。
- ドメインを再度追加し、確認します。
- ドメインのLet’s Encryptインテグレーションを有効にします。
- それでも同じエラーが出る場合は
- ドメインに
CNAME
またはA
DNSレコードが1つだけ正しく設定されていることを確認してください。 - ドメインに
AAAA
DNSレコードがないことを確認してください。 - ドメインまたは上位ドメインに
CAA
DNS レコードがある場合は、にletsencrypt.org
が含まれていることを確認してください。 - ステップ1に進んでください。
- ドメインに