GitLabページ用のLet’s Encrypt (手動プロセス、非推奨)
GitLab Pagesのウェブサイトを独自ドメインで運用している場合は、SSL/TSL証明書でセキュリティを確保した方がよいでしょう。
Let’s Encryptは、無料で自動化されたオープンソースの認証局です。
要件
このチュートリアルに従うには、すでにお持ちであることが前提です:
- GitLab にあなたのウェブサイトのソースコードを含むプロジェクトを作成しました。
- ドメイン(
example.com
)を取得し、あなたのPagesウェブサイトを指すDNSエントリを追加しました。 - Pagesプロジェクトにドメインを追加し、所有権を確認しました。
- プロジェクトをコンピュータにクローンします。
- あなたのウェブサイトが稼動し、HTTPプロトコルで
http://example.com
。
Let’s Encrypt証明書の取得
要件を満たしたら、以下の手順に従って証明書を取得してください。
-
コンピューターでターミナルを開き、リポジトリのルートディレクトリに移動します:
cd path/to/dir
-
CertBot(Let’sEncryptが証明書のイシュー発行に使用するツール)をインストールします:
brew install certbot
-
ドメイン (
example.com
) の証明書をリクエストし、通知を受け取るための電子メールアカウント (your@email.com
) を提供します:sudo certbot certonly -a manual -d example.com --email your@email.com
また、電子メールアカウントを追加せずに登録することもできますが、証明書の有効期限に関する通知は行われません:
sudo certbot certonly -a manual -d example.com --register-unsafely-without-email
ヒント:CertBot のコマンドラインオプションに関するドキュメントをお読みください。 -
規約への同意を求めるメッセージが表示されますので、
A
を押して同意し、Y
を押してIPログの取得を許可してください。CertBot は次のメッセージを表示します:
Create a file containing just this data: Rxnv6WKo95hsuLVX3osmT6LgmzsJKSaK9htlPToohOP.HUGNKk82jlsmOOfphlt8Jy69iuglsn095nxOMH9j3Yb And make it available on your web server at this URL: http://example.com/.well-known/acme-challenge/Rxnv6WKo95hsuLVX3osmT6LgmzsJKSaK9htlPToohOP Press Enter to Continue
-
証明書をイシューする前に、Let’s Encryptがドメインの所有権を確認する必要があります。そのためには、Webサイトのルート下に3つの連続したディレクトリ
/.well-known/acme-challenge/Rxnv6WKo95hsuLVX3osmT6LgmzsJKSaK9htlPToohOP/
を作成し、最後のフォルダに、前のプロンプトメッセージで参照した内容を含むindex.html
ファイルを追加します:Rxnv6WKo95hsuLVX3osmT6LgmzsJKSaK9htlPToohOP.HUGNKk82jlsmOOfphlt8Jy69iuglsn095nxOMH9j3Yb
public
このファイルは、Let’s Encrypt がドメインの所有権を確認するためにhttp://example.com/.well-known/acme-challenge/Rxnv6WKo95hsuLVX3osmT6LgmzsJKSaK9htlPToohOP
にアクセスする必要があることに注意してください。 -
ファイルを GitLab のリポジトリに追加、コミット、プッシュします。 パイプラインが通ったら、ターミナルのEnterキーを押して証明書の発行を続けます。 CertBot が次のようなメッセージを表示します:
Waiting for verification... Cleaning up challenges IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2019-03-12. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
GitLab Pagesに証明書を追加します。
証明書が発行されたので、それをPagesサイトに追加しましょう:
- GitLab に戻り、プロジェクトのSettings >Pages に移動してドメインを探し、DetailsとEditをクリックして証明書を追加します。
-
ターミナルから、証明書をコピーして最初のフィールドに貼り付けますCertificate(PEM):
sudo cat /etc/letsencrypt/live/example.com/fullchain.pem | pbcopy
-
秘密鍵をコピーし、2 番目のフィールドに貼り付けますKey(PEM):
sudo cat /etc/letsencrypt/live/example.com/privkey.pem | pbcopy
- 変更を保存]をクリックして、ウェブサイトに適用します。
- 設定変更が有効になるまで数分待ちます。
- 御社のウェブサイト
https://example.com
をご覧ください。
あなたのサイトでhttps
接続を強制するには、プロジェクトの[設定] >[内部]に移動し、[HTTPSを強制する(有効な証明書が必要です)]をチェックします。
リニューアル
Let’s Encryptの証明書は90日ごとに有効期限が切れるため、定期的に更新する必要があります。 すべての証明書を一度に更新するには、以下を実行します:
sudo certbot renew