是否有计划将HTTPS添加回SonarQube?

时间:2016-07-26 15:02:17

标签: ssl sonarqube sonarqube-ops

我正在使用反向代理运行SonarQube。但是,出于安全原因,我还在SonarQube和数据库之间使用X.509身份验证。从5.4升级到5.6后,我无法再连接到我的PostgreSQL数据库,因为证书没有通过。

  1. 在协商与数据库的SSL连接时,是否有另一种方法可以将SonarQube配置为使用本地密钥库?
  2. 是否有计划添加SSL支持?
  3. 是否有计划添加WAR样式的部署?
  4. 我可能会被困在5.4。

2 个答案:

答案 0 :(得分:0)

回答第2点:在SonarQube上处理HTTPS的唯一方法是使用代理。 有关详细信息,请查看documentation

回答第3点:不,没有计划回到WAR。

答案 1 :(得分:0)

SonarQube使用反向代理支持HTTPS。这是官方文档和链接:

  

要通过HTTPS运行SonarQube服务器,您必须构建标准的反向代理基础结构。   反向代理必须配置为在每个HTTP请求标头中设置值“ X_FORWARDED_PROTO:https”。没有此属性,由SonarQube服务器启动的重定向将回退到HTTP。

使用Apache代理

我们假设您已经安装了带有mod_proxy模块的Apache 2,SonarQube在http://private_sonar_host:sonar_port/上运行并且可用,并且您想为www.public_sonar.com配置虚拟主机。 此时,编辑www.public_sonar.com虚拟主机的HTTPd配置文件。包括以下内容以通过http://www.public_sonar.com/处的mod_proxy公开SonarQube:

    ProxyRequests Off
ProxyPreserveHost On
<VirtualHost *:80>
  ServerName www.public_sonar.com
  ServerAdmin admin@somecompany.com
  ProxyPass / http://private_sonar_host:sonar_port/
  ProxyPassReverse / http://www.public_sonar.com/
  ErrorLog logs/somecompany/sonar/error.log
  CustomLog logs/somecompany/sonar/access.log common
</VirtualHost>

使用Nginx

我们假设您已经安装了Nginx,并且正在为www.somecompany.com使用虚拟主机,并且SonarQube正在运行并且可以在http://sonarhost:sonarport/上使用。 此时,编辑Nginx配置文件。包括以下内容以在http://www.somecompany.com/上公开SonarQube:

# the server directive is nginx's virtual host directive
server {
  # port to listen on. Can also be set to an IP:PORT
  listen 80;

  # sets the domain[s] that this vhost server requests for
  server_name www.somecompany.com;

  location / {
    proxy_pass http://sonarhost:sonarport;
  }
}

使用IIS

SonarQube建议使用反向代理来保护声纳安装。在IIS和Url Rewrite模块的帮助下,这很容易完成。

您需要什么:

  1. 在一台机器上启用了IIS(不必是SonarQube机器,但我将假设您在同一系统上执行此操作)
  2. IIS的Url Rewite扩展(https://www.iis.net/downloads/microsoft/url-rewrite
  3. IIS的基于应用程序的路由扩展(https://www.iis.net/downloads/microsoft/application-request-routing
  4. SSL证书(可以是自签名的,也可以是真实的)

第一步是创建一个将充当反向代理的IIS网站。

enter image description here

除非需要进行Kerberos身份验证,否则不需要在反向代理上配置任何形式的身份验证。如果您在此处配置了Active Directory集成,它应该可以解决SonarQube带来的挑战。

enter image description here

如果您正在使用Kerberos或IIS Advanced保护,请在此处查看有关正确配置的指南。 (https://blogs.technet.microsoft.com/latam/2015/06/24/kerberos-authentication-and-application-request-routing/

配置绑定以使用SSL并设置正确的主机名和证书。我通过使用安装在计算机上的IIS Express开发证书来作弊:

enter image description here

接下来,我们将打开URL重写设置以配置反向代理:

enter image description here

点击添加规则以创建新规则:

enter image description here

然后从模板列表中选择“反向代理”:

enter image description here

输入目标服务器URL(可以是http://localhost:9000,甚至是远程服务器),然后单击“确定”以创建规则:

enter image description here

您返回到“ URL重写”屏幕,在这里我们需要添加一个额外的服务器变量,该变量将与请求一起发送到另一台服务器,以告诉SonarQube它实际上在反向代理的后面, SSL卸载:

enter image description here

点击“添加...”以创建服务器变量:

enter image description here

添加服务器变量“ X_FORWARDED_PROTO”以允许重写模块操作此标头:

enter image description here

您现在应该在“变量”列表中列出该变量。点击“返回规则”,移回规则列表:

enter image description here

编辑刚刚创建的URL重写规则:

enter image description here

展开规则定义的“服务器变量”部分:

enter image description here

添加您在上一步中允许的“ X_FORWARDED_PROTO”标头,并为其赋予值“ https”:

enter image description here

应用更改:

enter image description here

现在您应该可以通过SSL访问SonarQube。您可能希望将原始SonarQube实例配置为仅接受来自反向代理的流量,或者仅接受通过Windows防火墙来自localhost的流量。

复制自:

USING IIS

Server setup documentation