【问题标题】:Using LetsEncrypt and Google webmaster tools with gitlab ce通过 gitlab ce 使用 LetsEncrypt 和 Google 站长工具
【发布时间】:2017-08-14 08:55:23
【问题描述】:

我已使用certbot 获取 SSL 证书。当时ubuntu的默认apache服务器正在监听80端口。假设我的服务器可以通过example.com访问。

现在,我正在运行一个 GitLab CE 9.4.4 服务器,它使用我之前通过letsencrypt 获得的SSL 证书。在/etc/gitlab/gitlab.rb 我也是这样的

nginx['ssl_certificate'] = "/etc/letsencrypt/live/example.com/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/example.com/privkey.pem"

(以及用于 docker 注册表的 registry_nginx 的类似行。)

但是,certbot renew 在尝试更新我的证书时失败,因为无法通过 http://example.com/.well-known 访问 /var/www/.well-known

当人们尝试使用 Google 网站管理员工具时,也会出现类似的问题。默认验证过程要求您将名为googleXXXXXXX.html 的文件上传到服务器的根目录。

如何将 GitLab 配置为服务器 .well-known 中的静态文件和以 google 开头的文件?

(不幸的是,包含 gitlab静态文件 的 Google 搜索会产生有关 GitLab 页面的结果。)

【问题讨论】:

    标签: ssl gitlab google-search-console lets-encrypt


    【解决方案1】:

    通过 GitLab Webroot

    Ubuntu 上 GitLab CE 的 webroot 默认为/opt/gitlab/embedded/service/gitlab-rails/public。您可以将googleXXXX.html 复制到此目录并将 LetsEncrypt 的 webroot 指向此目录:

    ...
    [renewalparams]
    authenticator = webroot
    installer = None
    account = SOMEHASH
    [[webroot_map]]
    example.com = /opt/gitlab/embedded/service/gitlab-rails/public
    

    通过 GitLab 配置

    配置 LetsEncrypt

    打开 letencrupt 更新配置,例如/etc/letsencrypt/renewal/example.com.conf,并调整选项,使web根指向/var/www/letsencrypt

    ...
    [renewalparams]
    authenticator = webroot
    installer = None
    account = SOMEHASH
    [[webroot_map]]
    example.com = /var/www/letsencrypt
    

    创建目录/var/www/letsencrypt/var/www/letsencrypt/.well-known。后一个目录将托管验证质询文件。

    配置网站管理员工具

    创建目录/var/www/google并将googleXXXX.html下载到新创建的目录中。

    配置 GitLab(用于 LetsEncrypt 和网站管理员工具)

    打开/etc/gitlab/gitlab.rb 并添加以下两行。

    nginx['custom_gitlab_server_config'] = "location ^~ /.well-known { root /var/www/letsencrypt; }\n"
    nginx['custom_gitlab_server_config'] << "location ^~ /google { root /var/www/google; }\n"
    

    通过运行重新配置你的 gitlab 服务器

    gitlab-ctl reconfigure
    

    所有以/.will-known 开头的请求现在都将转发到/var/www/letsencrypt 目录。同样,所有以/google 开头的请求都被转发到目录/var/www/google。 (请注意,这种方法会使以 google 开头的用户或组无法访问。在这种情况下,您可以更改 gitlab 配置以包含您的 googleXXXX.html 的全名)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-17
      • 2011-09-03
      • 1970-01-01
      • 1970-01-01
      • 2016-02-15
      • 1970-01-01
      相关资源
      最近更新 更多