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证书;
本文来自博客园, 作者:Star-Hitian, 转载请注明原文链接:https://www.cnblogs.com/Star-Haitian/p/15064786.html