Gitlab PagesでSSLが取得されない場合の原因と解決策
公開日: 2020.1.17
Gitlab Pagesには、自動でLet's EncryptのSSLを取得する機能がありますが、いつまでたっても「取得中」となってSSL化されないことがあります。今回はその原因と対策をまとめました。
現象
Gitlab Pagesでは、ページを公開する際にドメインを登録することで、指定ドメインのSSL証明書を自動で取得する機能があります。
しかし、ドメインの認証もできていてDNSも正しく設定されているのに、SSLがいつまで経っても登録されないことが結構な確率であります。しかも、ここは、Gitlab側で管理しているところなので、こちらで制御できないのが辛いところです。
原因
確実な原因はわかりませんが、海外フォーラムのやりとりと、筆者の体験から推測すると、
- レポジトリがプライベートになっている(初期でPageesが非公開)
- ドメインを追加した際にページがアクセスできない
- Cloudflareなどのプロキシを挟んでいる
という場合に、よく取得ができない気がします。あくまで体感ですが。
解決策
Gitlab側にLet's Encryptの取得ログを表示する機能があれば自分でも対処ができるのですが、そうした機能がないため、やれることはあまりません。
筆者が試した中で確実にSSLの取得ができたのは、
- すでにドメインは認証してHTTPでは表示できる
- Gitlab Pagesは公開ステータスで、ログインしないでも閲覧できる
という状況下で、「一度ドメインを削除して、もう一度登録する」というフローです。
解決策になっているのかは微妙ですが、このフローだとほぼ100%の確率で、数時間、早ければ10分ほどでSSLの取得がされます。
Gitlab PagesでSSLが取得されない場合の原因と対応まとめでした。
Let's Encryptは、サーバー上に一時ファイルを置いてそこにアクセスすることでサーバーの存在を認証しているので、非公開だったり、ドメイン転送がされていない場合に証明書の作成に失敗するというのは理解できるので、「ドメインを再登録する」という解決策はある意味当たり前です。
同じ状況で困っている方はぜひお試しください!
価格は記載がある場合を除き、すべて税込みです。
関連キーワード
サーバレスの新着記事
- サーバレスCloudflare R2の料金体系・無料枠まとめ 2024.8.21
- サーバレスCloudflare R2をCyberduckで使う方法 2024.7.31
- サーバレスAIの学習ボット・クローラーからサイトを守るメリットとブロックする方法 2024.7.19
- サーバレスCloudFlare Pagesのビルド環境の違い 2024.5.9
- サーバレスCloudflare D1の料金体系・無料枠まとめ 2024.3.25
- サーバレスCloudflare PagesでNuxt3のビルド時に「ENOENT: no such file or directory」エラーの対象方法 2024.3.21
- サーバレスGitlab CLIでpush時に「glab auth not found」となった際の対処方法 2024.3.19
- サーバレスCloudFlare Workers AIの料金体系・無料枠まとめ 2024.2.2