カスタムドメインとSSL/TLS証明書
カスタムドメインでGitLab Pagesを設定し、SSL/TLS証明書を追加することは、GitLab Pagesのオプション機能です。
Pagesサイトで1つまたは複数のカスタムドメイン名を使用するには、以下の方法があります:
- カスタムルートドメインまたはサブドメインを追加します。
- SSL/TLS認証を追加します。
カスタムドメインによるPagesの設定
カスタムドメイン名でPagesを設定するには、以下の要件と手順をお読みください。
要件
- GitLab Pagesウェブサイトが稼働し、デフォルトのPagesドメイン(
*.gitlab.io
、GitLab.comの場合)で提供されています。 - カスタムドメイン名
example.com
またはサブドメインsubdomain.example.com
。 - ドメインのサーバーコントロールパネルにアクセスし、DNSレコードを設定します:
- あなたのドメインをGitLab Pagesサーバーに指すDNS AレコードまたはCNAMEレコード。
- ドメインの所有権を確認するためのDNS TXTレコード。
ステップ
以下の手順に従って、カスタムドメインをPagesに追加してください。 DNSレコードの概要については、このドキュメントも参照してください。
1. Pagesにカスタムドメインを追加します。
プロジェクトのSetting > Pagesに移動し、+ New domainをクリックすると、カスタムドメインが GitLab Pages に追加されます。 以下のいずれかを選択できます:
- SSL/TLS証明書を追加します。
- 空欄のままにしておいてください(後で追加できます)。
新しいドメインの作成]をクリックします。
2. 認証コードを取得
Pagesに新しいドメインを追加すると、認証コードが表示されます。 GitLabから値をコピーし、次のステップでドメインのコントロールパネルにTXTレコードとして貼り付けます。
3. PagesのDNSレコードの設定
PagesのDNSレコードの概要については、このドキュメントをお読みください。 このテーマに詳しい場合は、Pagesサイトで使用するドメインの種類に応じて、以下の手順に従ってください:
-
ルートドメインの場合、
example.com
. -
サブドメインの場合は、
subdomain.example.com
。 - どちらもです。
ルートドメインの場合
ルートドメイン (example.com
) が必要です:
より | DNSレコード | に |
---|---|---|
example.com
| A | 35.185.44.232
|
_gitlab-pages-verification-code.example.com
| TXT | gitlab-pages-verification-code=00112233445566778899aabbccddeeff
|
GitLab.com上のプロジェクトの場合、このIPは35.185.44.232
。他のGitLabインスタンス(CEまたはEE)に住んでいるプロジェクトの場合、この情報(あなたのインスタンスで稼働しているPagesサーバーがどのIPアドレスか)をシステム管理者に問い合わせてください。
A
レコードの A
代わりにDNS apexCNAME
レコードを追加することができますA
。そうすることの主な利点は、G A
itLA
ab.com上のGitLab PagesのIPが何らかの理由で変更さ A
れたときにレコードをA
更新する必要がない A
ことです。例外はいくつかあるかもしれませんが、ルートドメインにMX
レコードを設定した場合はほとんどの場合機能しないので、この方法はお勧めできません。サブドメインの場合
サブドメイン (subdomain.example.com
) が必要です:
より | DNSレコード | に |
---|---|---|
subdomain.example.com
| CNAME | namespace.gitlab.io
|
_gitlab-pages-verification-code.subdomain.example.com
| TXT | gitlab-pages-verification-code=00112233445566778899aabbccddeeff
|
ユーザーサイトであろうとプロジェクトサイトであろうと、CNAME
はあなたのPagesドメイン(namespace.gitlab.io
)を指し、/project-name
は指定しないことに注意してください。
ルートとサブドメインの両方
サブドメインとルートドメインの両方を同じウェブサイトに向ける必要がある場合がいくつかあります。インスタンスンスでは、example.com
とwww.example.com
。
彼らは要求します:
- ドメインのDNS Aレコード。
- サブドメインのDNS CNAMEレコード。
- それぞれのDNS TXTレコード。
より | DNSレコード | に |
---|---|---|
example.com
| A | 35.185.44.232
|
_gitlab-pages-verification-code.example.com
| TXT | gitlab-pages-verification-code=00112233445566778899aabbccddeeff
|
www.example.com
| CNAME | namespace.gitlab.io
|
_gitlab-pages-verification-code.www.example.com
| TXT | gitlab-pages-verification-code=00112233445566778899aabbccddeeff
|
CloudFlareを使用している場合は、Redirectingwww.domain.com
todomain.com
with Cloudflareをご覧ください。
注意事項
domain.com
を GitLab Pages サイトに向けたい場合は、CNAME レコードを使わないでください。 代わりにA
レコードを使ってください。- デフォルトのPagesドメインの後に特別な文字を追加しないでください。 例えば、
subdomain.domain.com
やnamespace.gitlab.io/
を指定しないでください。ドメインホスティングプロバイダによっては、末尾のドット(namespace.gitlab.io.
)を要求する場合があります。- GitLab.comのGitLab Pages IPは2017年に変更されました。
- GitLab.comのGitLab Pages IPは2018年に
52.167.214.135
から35.185.44.232
に変更されました。
4. ドメインの所有権の確認
すべてのDNSレコードを追加したら、次のようにします:
- プロジェクトの「設定」>「Pages」に戻ってください。
- ドメイン名を探し、「詳細」をクリックします。
- 新しいドメインをアクティブにするには、[検証を再試行]ボタンをクリックします。
ドメインがアクティビティになると同時に、ドメイン名を通じてウェブサイトが利用可能になります。
注:
- ドメイン認証はGitLab.comユーザーのために必要です。GitLabセルフマネージドインスタンスでは、GitLab管理者はカスタムドメイン認証を無効にするオプションがあります。
- DNSの伝播には時間がかかることがあります(最大24時間)が、通常は数分で完了します。 完了するまで、検証は失敗し、ドメインを訪問しようとすると404が返されます。
- ドメインが検証されたら、検証レコードをそのままにしておいてください。ドメインは定期的に再検証され、レコードが削除されると無効になる場合があります。
Pages ドメイン検証のトラブルシューティング
ドメイン検証TXT
DNSエントリーが正しく設定されていることを手動で確認するには、ターミナルで次のコマンドを実行します:
dig _gitlab-pages-verification-code.<YOUR-PAGES-DOMAIN> TXT
出力に期待してください:
;; ANSWER SECTION:
_gitlab-pages-verification-code.<YOUR-PAGES-DOMAIN>. 300 IN TXT "gitlab-pages-verification-code=<YOUR-VERIFICATION-CODE>"
ドメインエイリアスの追加
同じプロジェクトに複数のエイリアス(カスタムドメインとサブドメイン)を追加することができます。 エイリアスは、同じ部屋に通じる多くのドアがあるように理解することができます。
設定したエイリアスは、設定 > ページに表示されます。 このページから、エイリアスを表示、追加、削除することができます。
Cloudflareを使用したwww.domain.com
からdomain.com
へのリダイレクト
Cloudflareを使っている場合は、www.domain.com
とdomain.com
の両方をGitLabに追加しなくても、www
をdomain.com
にリダイレクトすることができます。
これを行うには、CNAMEレコードに関連付けられたCloudflareのページルールを使用して、www.domain.com
をdomain.com
にリダイレクトします。 以下の設定を使用できます:
- Cloudflare で、
domain.com
を35.185.44.232
に指す DNSA
レコードを作成します。 - GitLabで、GitLab Pagesにドメインを追加し、検証コードを取得します。
- Cloudflareで、ドメインを検証するためにDNS
TXT
レコードを作成します。 - GitLab でドメインを確認します。
- Cloudflare で、
www
をdomain.com
に指す DNSCNAME
レコードを作成します。 - Cloudflare で、
www.domain.com
を指す Page Rule をdomain.com
に追加します:- ドメインのダッシュボードに移動し、上部のナビでPages Rulesをクリックします。
- ページルールの作成]をクリックします。
- ドメイン
www.domain.com
を入力し、+ Add a Settingをクリックします。 - ドロップダウンメニューから「転送URL」を選択し、ステータスコード「301 - 恒久的なリダイレクト」を選択します。
- 宛先URLを入力
https://domain.com
.
PagesへのSSL/TLS証明書の追加
SSL/TLS認証の概要については、この文書をお読みください。
カスタムドメインをGitLab Pagesでセキュリティするには、以下の方法があります:
- GitLab PagesとLet’s Encryptインテグレーションを使うことで、PagesドメインのSSL証明書を自動的に取得・更新します。
- 以下の手順に従って、手動でGitLab PagesウェブサイトにSSL/TLS証明書を追加してください。
要件
- カスタムドメインでアクセスできるGitLab Pagesウェブサイトを立ち上げ、運営しています。
- PEM 証明書:CA が生成した証明書で、Certificate(PEM)フィールドに追加する必要があります。
- 中間証明書:(別名 “ルート証明書”)、CAを識別する暗号化キーチェーンの一部です。 通常はPEM証明書と結合されていますが、手動で追加する必要がある場合もあります。CloudFlare証明書もその一つです。
- 秘密鍵は暗号化された鍵で、あなたのドメインに対してあなたのPEMを検証します。
ステップ
- 新しいドメインを追加するときに証明書を追加するには、プロジェクトの「設定」>「ページ」>「新しいドメイン」に進み、ドメイン名と証明書を追加します。
- 以前に追加したドメインに証明書を追加するには、プロジェクトの[設定]>[ページ]でドメイン名を探し、[詳細]と[編集]をクリックして証明書を追加します。
- PEM証明書を対応するフィールドに追加します。
- 証明書に中間証明書がない場合は、ルート証明書(通常、CAのウェブサイトから入手可能)をコピー&ペーストして、PEM証明書と同じフィールドに貼り付けます。
- 秘密鍵をコピーし、最後のフィールドに貼り付けます。
GitLab Pages ウェブサイトの HTTPS を強制します。
GitLab 10.7から導入されました。
GitLab Pages の HTTPS 化を強制することで、HTTP 経由でウェブサイトを訪問しようとすると、301 経由で自動的に HTTPS にリダイレクトされます。
GitLabのデフォルトドメインでもカスタムドメインでも動作します(有効な証明書を設定している限り)。
この設定を有効にするには
- プロジェクトの「設定」>「Pages」に移動します。
- 強制HTTPS(有効な証明書が必要)のチェックボックスにチェックを入れます。
flexible
ではなく、full
に設定してください。詳細はCloudFlare CDNの説明をご覧ください。