GitLab Pages integration with Let’s Encrypt
GitLab Pages integration with Let’s Encrypt
在 GitLab 12.1 中引入 . 对于 GitLab 12.1 之前的版本,请参见手册”让我们加密”说明 .
GitLab Pages 与 Let’s Encrypt(LE)的集成使您可以将 LE 证书用于具有自定义域的 Pages 网站,而不必麻烦自己发行和更新它们. GitLab 现成的为您服务.
Let’s Encrypt是一个免费,自动化和开源的证书颁发机构.
警告:此功能仅涵盖自定义域的证书,而不包含运行Pages 守护程序所需的通配符证书 . 在此问题中跟踪通配符证书的生成.
Requirements
在为您的域启用自动配置 SSL 证书之前,请确保您具有:
- 创建一个项目在 GitLab 包含您的网站的源代码.
- 获取域(
example.com
)并添加一个DNS 条目,将其指向您的 Pages 网站. - 将您的域添加到您的 Pages 项目并验证您的所有权.
- 确认您的网站已启动并且正在运行,可以通过您的自定义域进行访问.
注意: GitLab 的”让我们加密”集成已启用,并在 GitLab.com 上可用. 对于自我管理的 GitLab 实例,请确保您的管理员已启用它 .
Enabling Let’s Encrypt integration for your custom domain
满足要求后,启用”让我们加密”集成:
- 导航到项目的“设置”>”页面” .
- 找到您的域,然后单击详细信息 .
- 点击右上角的编辑 .
通过使用 Let’s Encrypt切换自动证书管理来启用 Let’s Encrypt 集成:
Click 保存更改.
启用后,GitLab 将获得 LE 证书并将其添加到关联的 Pages 域中. 它也会由 GitLab 自动更新.
Notes:
- 颁发证书和更新 Pages 配置可能需要一个小时 .
- 如果您在域设置中已经具有 SSL 证书,它将继续工作,直到被 Let’s Encrypt 的证书替换为止.
Troubleshooting
Error “Something went wrong while obtaining the Let’s Encrypt certificate”
在 GitLab 13.0 中引入 .
如果您遇到错误, 则在获取 Let’s Encrypt 证书时出了点问题 ,您可以尝试按照以下步骤再次获取证书:
- 转到项目的设置>页面 .
- 在您的域上单击” 编辑 “.
- Click Retry.
- 如果您仍然看到相同的错误:
- 请确保您已正确设置只有一个
CNAME
或A
DNS 记录为您的域. - 确保您的域没有
AAAA
DNS 记录. - 如果您的域或任何更高级别的域都有
CAA
DNS 记录,请确保其中包含letsencrypt.org
. - 确保您的域已验证 .
- 转到步骤 1.
- 请确保您已正确设置只有一个
Message “GitLab is obtaining a Let’s Encrypt SSL certificate for this domain. This process can take some time. Please try again later.” hangs for more than an hour
如果您启用了 Let’s Encrypt 集成,但是一个小时后缺少证书,则会看到以下消息:” GitLab 正在为此域获取 Let’s Encrypt SSL 证书. 此过程可能需要一些时间. 请稍后再试.”,请按照以下步骤尝试删除并再次为 GitLab 页面添加域:
- 转到项目的设置>页面 .
- 在您的域上单击删除 .
- Add the domain again and verify it.
- Enable Let’s Encrypt integration for your domain.
- 如果一段时间后仍然看到相同的消息:
- 请确保您已正确设置只有一个
CNAME
或A
DNS 记录为您的域. - 确保您的域没有
AAAA
DNS 记录. - 如果您的域或任何更高级别的域都有
CAA
DNS 记录,请确保其中包含letsencrypt.org
. - 转到步骤 1.
- 请确保您已正确设置只有一个