在http的基础上增加SSL
配置gerrit.config文件
[gerrit] basePath = git canonicalWebUrl = https://172.16.99.212/ ...... [httpd] listenUrl = proxy-https://127.0.0.1:8081/
只需要把红色标记的两个地方改掉即可(172.16.99.212是主机Ip,不需要加端口号)。
配置apache代理(/etc/httpd/conf/httpd.conf)
<VirtualHost *:443> SSLEngine on SSLCertificateFile /etc/httpd/conf/gerrit.crt SSLCertificateKeyFile /etc/httpd/conf/gerrit.key ServerName 172.16.99.212 ProxyRequests Off ProxyVia Off ProxyPreserveHost On <Proxy *> Order deny,allow Allow from all </Proxy> AllowEncodedSlashes On ProxyPass / http://127.0.0.1:8081/ nocanon #记住这里配置的值是http,而不是https </VirtualHost>
先要使用OpenSSL生成证书,然后把证书配置进来。一般情况下apache的conf.d/目录下会有一个ssl.conf文件,里面已经配置了443端口,如果直接在httpd.conf下面再进行配置,不会覆盖ssl.conf中的配置(警告信息貌似是这个意思),所以可以直接在ssl.conf中定制这一段即可。重启apache和gerrit,现在就可以通过 https://172.16.99.211 访问gerrit了。
Git配置SSL证书验证
因为SSL证书是我们自己制作的,所以git默认会验证SSL证书,所以需要取消git SSL证书验证: git config --global http.sslVerify false
注意事项
- 官方文档会使用a2enmod该命令加载mod_proxy,但这针对的是Deb系统,对于Centos(报错:a2enmod: command not found),没关系,只要保证httpd.conf中有配置加载即可(配置了就会加载)。
- 如果以上配置依然不能使用https进行访问,可以试着安装 mod_ssl(不确定是否必须), yum install -y mod_ssl