当提交代码到gitlab仓库时,触发jenkins脚本编译并自动测试时,如果使用的触发地址是jenkins的自签名https网址时,会出现证书校验问题,如何解决这个问题呢?
第一步,确认部署gitlab核心程序的机器能够访问自定义的jenkins域名,即在/etc/hosts中添加域名ip隐射。
第二步,复制jenkins自签名证书致/etc/gitlab/trusted-certs/目录下,为方便陈述,假设jenkins的自签名网站为myjenkins.com,命令为
cp myjenkins.com.crt /etc/gitlab/trusted-certs/
第三步,创建自签名证书软链接致/opt/gitlab/embedded/ssl/certs/目录下,命令为
ln -s /etc/gitlab/trusted-certs/myjenkins.com.crt /opt/gitlab/embedded/ssl/certs/myjenkins.com.crt
第四步,修改gitlab配置,允许自签名证书的使用,修改文件为/etc/gitlab/gitlab.rb,修改后的内容为
gitlab_shell['http_settings'] = { user: 'username', password: 'password', ca_file: '/etc/ssl/cert.pem', ca_path: '/etc/pki/tls/certs', self_signed_cert: true}
第五步,重启gitlab,使新的配置生效,命令为
gitlab-ctl reconfigure
第六步,验证jenkins自签名https网站是否能够访问畅通,进入/opt/gitlab/embedded/bin/目录,执行以下命令即可校验gitlab是否能够正常访问jenkins的自签名https网站
openssl s_client -connect myjenkins.com:443 -servername myjenkins.com -showcerts