GitLab添加HTTPS

GitLab添加HTTPS

前两天实验室刚拿到新的SSL证书,而实验室GitLab一直没有启用HTTPS,便打算此次顺便启用.

本文操作系统为CentOS6.9,GitLab版本为8.2.3

1.证书格式转换

拿到的新证书是pfx格式,而GitLab的Web服务器为Nginx,需要把证书转换为pem或者crt格式.
方法1

#pfx转为pem,需输入pfx的密码
openssl pkcs12 -in server.pfx  -nodes -out server.pem
#从pem读取私钥
openssl rsa -in server.pem -out server.key
#从pem读取公钥
openssl x509 -in server.pem -out server.crt

注意:
用上面的方法将PFX文件转换为PEM格式时,OpenSSL会将所有证书和私钥放入一个文件中。您需要在文本编辑器中打开该文件,并将每个证书和私钥(包括BEGIN END语句)复制到其各自的文本文件中,并将它们分别保存为certificate.cer,CACert.cer和privateKey.key。

方法2

#从pfx读取私钥,需输入pfx的密码
openssl pkcs12 -in certname.pfx -nocerts -out key.pem -nodes
#从pfx读取公钥,需输入pfx的密码
openssl pkcs12 -in certname.pfx -nokeys -out cert.pem

参考1:https://blog.csdn.net/qq_18105691/article/details/83339101
参考2:https://blog.csdn.net/ctwy291314/article/details/80017639

2.修改GitLab配置

GitLab使用Nginx服务器,配置文件位于/var/opt/gitlab/nginx/conf中.虽然直接修改该文件,并重新加载Nginx配置可以开启HTTPS,但是在下次使用gitlab-ctl reconfigure命令后,该配置文件会被覆盖,所以推荐修改GitLab的配置文件/etc/gitlab/gitlab.rb

在/etc/gitlab/gitlab.rb中找到并修改一下配置

external_url 'https://domain.com'
nginx['redirect_http_to_https'] = true    false改为true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/cert.pem"     #指定公钥存放路径
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/key.pem"   #指定私钥存放路径

其中证书权限建议设为700

3.测试

使用https://www.ssllabs.com/ssltest/测试,评级为A+.
因为加密方式,协议等都是GitLab自动配置的,所以基本不需要修改,打开/var/opt/gitlab/nginx/conf中的配置文件,可以看到其自动添加的配置.

其它

GitLab 10.5 版本集成了Let’s Encrypt ,打开该选项后一切都是自动的,美滋滋
https://blog.csdn.net/littlebrain4solving/article/details/80168493

你可能感兴趣的:(运维)