GitLab-ce配置HTTPS协议访问

本地生成https证书

我的gitlab安装环境为Ubuntu 18.04,安装好之后默认使用的是HTTP协议访问;没有HTTPS协议安全于是自己搞了搞,各种查资料啊,虽然中间也有不懂得地方,但是总算是成功了。接下来给大家详细的描述一下步骤:

想要配置https协议,必须要有一个https的证书,由于我是在本地尝试的,所以自己生成了一个证书

1、生成证书,建立权限并生成证书。

mkdir -p /etc/gitlab/ssl && chmod 700 /etc/gitlab/ssl && cd/etc/gitlab/ssl

2、创建服务器私钥,需要输入一个密码,之后也会用到,我设置的123456

openssl genrsa-des3 -out server.key 1024

3、创建签名的证书(csr)

openssl req -new -key server.key -out server.csr

在加载SSL支持的Nginx并使用上述私钥时要除去刚才设置的口令:

先备份刚才的csr文件

cp server.key server.key.org

去除命令,直接覆盖了server.key了

openssl rsa -in server.key.org -out server.key

最后标记证书使用上述私钥和CSR:(把csr标记后转换成了crt nginx要用key和crt文件)

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

做完这些,证书什么的就完成了,接下来修改配置文件

vim /etc/gitlab/gitlab.rb

需要修改的配置:

external_url"https://192.168.61.128"
nginx['redirect_http_to_https']= true
nginx['ssl_certificate']= "/etc/gitlab/ssl/server.crt"
nginx['ssl_certificate_key']= "/etc/gitlab/ssl/server.key"
# 下边这三项不知道改不改,有的说改了,有的说没改;仅供参考
nginx['enable'] = true
nginx['redirect_http_to_https'] = true
nginx['redirect_http_to_https_port'] = 80

最后执行

gitlab-ctl reconfigure

不用配置443端口,因为已经自动指向了。接下来看看成果吧,完美的https

正经的HTTPS证书版本,阿里云的ssl证书

首先拿到两个证书,一个是key文件,一个为pem文件。

将pem文件直接改为crt后缀的文件,哈哈。

创建/etc/gitlab/ssl目录,然后在其中复制密钥和证书:

sudo mkdir -p /etc/gitlab/ssl
sudo chmod 755 /etc/gitlab/ssl

将两个证书放到ssl的目录下,我是直接用sz,rz命令上传的。

/etc/gtilab/gitlab.rb # 文件修改的内容

external_url "https://git.bjdvt.com"  # 外往访问的地址
nginx['enable'] = true          
nginx['redirect_http_to_https'] = true
# 指向两个证书文件的路径  
nginx['ssl_certificate'] = "/etc/gitlab/ssl/git.bjdvt.com.crt" nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/git.bjdvt.com.key"

最后配置完记得

gitlab-ctl reconfigure

感觉不保险的话,那就在重启一个gitlab:

gitlab-ctl restart

还有你的云服务器的防火墙443的端口一定要开启,不然无法访问。我在此处挣扎了很久,很难受


gitlab官方配置地址:https://docs.gitlab.com/omnibus/settings/nginx.html

原文地址:https://www.cnblogs.com/xingyunqiu/p/12641922.html