GitLab Pages integration with Let’s Encrypt

原文:https://docs.gitlab.com/ee/user/project/pages/custom_domains_ssl_tls_certification/lets_encrypt_integration.html

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

满足要求后,启用”让我们加密”集成:

  1. 导航到项目的“设置”>”页面” .
  2. 找到您的域,然后单击详细信息 .
  3. 点击右上角的编辑 .
  4. 通过使用 Let’s Encrypt切换自动证书管理来启用 Let’s Encrypt 集成:

    Enable Let's Encrypt

  5. 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 证书时出了点问题 ,您可以尝试按照以下步骤再次获取证书:

  1. 转到项目的设置>页面 .
  2. 在您的域上单击” 编辑 “.
  3. Click Retry.
  4. 如果您仍然看到相同的错误:
    1. 请确保您已正确设置只有一个CNAMEA DNS 记录为您的域.
    2. 确保您的域没有 AAAA DNS 记录.
    3. 如果您的域或任何更高级别的域都有CAA DNS 记录,请确保其中包含letsencrypt.org .
    4. 确保您的域已验证 .
    5. 转到步骤 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 页面添加域:

  1. 转到项目的设置>页面 .
  2. 在您的域上单击删除 .
  3. Add the domain again and verify it.
  4. Enable Let’s Encrypt integration for your domain.
  5. 如果一段时间后仍然看到相同的消息:
    1. 请确保您已正确设置只有一个CNAMEA DNS 记录为您的域.
    2. 确保您的域没有 AAAA DNS 记录.
    3. 如果您的域或任何更高级别的域都有CAA DNS 记录,请确保其中包含letsencrypt.org .
    4. 转到步骤 1.