gitlab 配置 Let’s Encrypt 颁发的 SSL免费证书、certbot 免费证书

安装 Let’s Encrypt 客户端

申请ssl证书

certbot --agree-tos --email liulei@leg.tech certonly --webroot -w /opt/gitlab/embedded/service/gitlab-rails/public/ -d gitlab.andro.com
  • certonly  只申请证书
  • --agree-tos    同意用户协议
  • -w    nginx 服务器的根目录,gitlab默认nginx服务器根目录是 /opt/gitlab/embedded/service/gitlab-rails/public/
  • -d    要申请证书的域名

webroot插件通过为中的每个您请求的域创建一个临时文件来工作${webroot-path}/.well-known/acme-challenge。然后,让我们加密验证服务器发出HTTP请求,以验证每个请求域的DNS都解析为运行certbot的服务器。向您的Web服务器发出的示例请求如下所示:

64.78.149.164 - - [27/Jul/2021:02:39:37 +0000] "GET /.well-known/acme-challenge/IJGJ3yMDD4ujhjHB2Qa9-w1GMWO7TgYKmt-vxQawbVc HTTP/1.1" 200 118 "-" "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)"

 

配置gitlab开启https

配置证书软连接

ln -s /etc/letsencrypt/live/gitlab.xxxx.com/fullchain.pem /etc/gitlab/ssl/example.pem
ln -s /etc/letsencrypt/live/gitlab.xxxx.com/privkey.pem /etc/gitlab/ssl/example_com.key

更新gitlab配置文件

vim /etc/gitlab/gitlab.rb
---
external_url 'https://gitlab.xxxx.com'
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/example.pem"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/example_com.key"

重新配置gitlab

gitlab-ctl reconfigure

自动证书更新

sudo crontab -e
0 3 * * 1 /root/certbot/certbot-auto renew && gitlab-ctl hup nginx

郑重声明

该方式对于 之后的ssl证书续期,存在问题。如果不想购买ssl证书,建议使用 阿里云 免费赠与的 20 个ssl证书;

 

posted @ 2021-07-27 11:04  Star-Hitian  阅读(1003)  评论(0编辑  收藏  举报