1、背景
由于公司安全部门整活,需要将gitlab配置https。所以有了这篇文章——将http的gitlab配置ssl证书,使其自动跳转https访问
2、方法
方法1、直接配置
gitlab会自动生成证书(由于自建证书,浏览器会提示不安全)
[root@localhost ssl]# vim /etc/gitlab/gitlab.rb
external_url 'https://gitlab.example.com' ###改为https开头
nginx['enable'] = true
nginx['client_max_body_size'] = '2048m'
nginx['redirect_http_to_https'] = true #取消#号 更改注释并为true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.example.com.crt" #更改路径
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.example.com.key" #更改路径
###注意如果使用docker,这里的路径,需要是docker内证书的路径
[root@localhost ssl]# mkdir /etc/gitlab/ssl
之后,重新配置
[root@localhost ssl]# gitlab-ctl reconfigure
#如果docker部署也可
[root@localhost ssl]# docker restart gitlab
方法2、使用阿里云证书
阿里云创建下载nginx证书
解压得到pem文件和key文件
放到/etc/gitlab/ssl 目录后,使用如下命令,使用pem文件生成gitlab所需的crt格式证书
[root@localhost ssl]# openssl x509 -outform pem -in gitlab.zjiec.com.pem -out gitlab.zjiec.com.crt
剩余步骤按方法1操作即可
最终效果
3、其他问题
如果git clone遇到报错
① fatal: unable to access 'https://gitlab.example.com/.git/': SSL certificate problem: unable to get local issuer certificate
这个是由于Git默认开启了SSL验证,关闭即可
git config --global http.sslVerify false
② 配置完了记得和开发团队说一下,不然可能会炸,哈哈哈(编译器里的url,可能也需要改一下,不然可能验证失败)
4、参考链接
《Git出现SSL certificate problem》https://blog.csdn.net/Goals1989/article/details/106895801