Docker下Gitlab配置私有证书
- 1 创建私有证书
- ※2 内网穿透配置(可选)
- 3 Gitlab 配置私有证书
- 3.1 新增存储HTTPS证书文件夹
- 3.2 启动容器
- 3.3 开放HTTPS端口
- 3.4 设置IP、端口
- 3.5 配置邮箱
- 3.6 让配置生效
- 3.7 访问
1 创建私有证书
参考 制作HTTPS私有证书 —HTTPS证书
自制证书可以使用,但是在使用时浏览器会提示不是安全。
代码克隆界面:
会提示self signed certificate
。
问题分析:
gti客户端只支持https地址,需要client配置忽略https证书检验。
解决办法:
打开Git Bash运行如下命令
export GIT_SSL_NO_VERIFY=true
git config --global http.sslVerify "false"
windows下:
git config --global http.sslVerify false
然后再进行 clone 就成功了。
※2 内网穿透配置(可选)
frp:
#本地服务
[gitlab]
type = tcp
local_ip = 192.168.3.220
local_port = 443
remote_port = 443
custom_domains = 真实ip
3 Gitlab 配置私有证书
在 Docker搭建配置Gitlab基础上做部分修改即可,这里仅对差别部分做修改记录。
3.1 新增存储HTTPS证书文件夹
创建cert文件夹用来存储HTTPS证书。
3.2 启动容器
docker run -itd \
-p 443:443 \
-p 9980:80 \
-p 9922:22 \
-v /opt/soft/docker/gitlab/cert:/etc/gitlab/ssl \
-v /opt/soft/docker/gitlab/etc:/etc/gitlab \
-v /opt/soft/docker/gitlab/log:/var/log/gitlab \
-v /opt/soft/docker/gitlab/opt:/var/opt/gitlab \
--restart always \
--privileged=true \
--name gitlab \
gitlab/gitlab-ce
注意:新增了443端口,以及挂载证书文件夹。
3.3 开放HTTPS端口
开放443端口
firewall-cmd --zone=public --add-port=443/tcp --permanent
重启防火墙
firewall-cmd --reload
查询有哪些端口是开启的
firewall-cmd --list-port
3.4 设置IP、端口
- 进入容器
docker exec -it gitlab /bin/bash
- 修改配置文件
vi /etc/gitlab/gitlab.rb
在开头加入以下内容:
注意:external_url
的地址后面不能加端口,否则即使部署成功也无法访问。
#gitlab访问地址,可以写域名。如果端口不写的话默认为80端口
external_url 'https://真实ip'
#ssh主机ip
gitlab_rails['gitlab_ssh_host'] = '真实ip'
#ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 9922
#时区
gitlab_rails['time_zone'] = 'Asia/Shanghai'
#开启备份功能
gitlab_rails['manage_backup_path'] = true
#备份文件的权限
gitlab_rails['backup_archive_permissions'] = 0644
#保存备份 60 天
gitlab_rails['backup_keep_time'] = 5184000
# https证书配置
nginx['redirect_http_to_https']= true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/server.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/server.key"
主要修改:
external_url
,将http
改为https
。- 加入
Nginx
对https
证书配置。
3.5 配置邮箱
参见Docker搭建配置Gitlab的4.3 配置邮箱。
3.6 让配置生效
注意
:这里只需要执行重启配置即可。不用配置443端口,因为已经自动指向了。
gitlab-ctl reconfigure
3.7 访问
访问地址:https://真实ip,注意是https。