在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

 

posted on 2016-09-22 18:26  oslivan  阅读(1931)  评论(0编辑  收藏  举报