我们的组织正在使用SonarQube应用程序,该应用程序托管在我们内部使用的azure服务器中,并且无法通过Internet访问。为了增加安全性,我们在内部认证机构提供的ssl证书的帮助下为应用程序实现了https。
但是在实施https后,我们收到“您到该站点的连接不安全”的信息。 他们有什么办法可以确保连接安全吗?当我们在内部使用该应用程序时。
答案 0 :(得分:0)
根据SonarQube文档,为增加安全性/ Https,他们的建议是使用反向代理,而不是直接将SSL添加到SonarQube网站。这是官方文档和链接:
要通过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模块的帮助下,这很容易完成。
您需要什么:
第一步是创建一个将充当反向代理的IIS网站。
除非需要进行Kerberos身份验证,否则不需要在反向代理上配置任何形式的身份验证。如果您在此处配置了Active Directory集成,它应该可以解决SonarQube带来的挑战。
如果您正在使用Kerberos或IIS Advanced保护,请在此处查看有关正确配置的指南。 (https://blogs.technet.microsoft.com/latam/2015/06/24/kerberos-authentication-and-application-request-routing/)
配置绑定以使用SSL并设置正确的主机名和证书。我通过使用安装在计算机上的IIS Express开发证书来作弊:
接下来,我们将打开URL重写设置以配置反向代理:
点击添加规则以创建新规则:
然后从模板列表中选择“反向代理”:
输入目标服务器URL(可以是http://localhost:9000,甚至是远程服务器),然后单击“确定”以创建规则:
您返回到“ URL重写”屏幕,在这里我们需要添加一个额外的服务器变量,该变量将与请求一起发送到另一台服务器,以告诉SonarQube它实际上在反向代理的后面, SSL卸载:
点击“添加...”以创建服务器变量:
添加服务器变量“ X_FORWARDED_PROTO”以允许重写模块操作此标头:
您现在应该在“变量”列表中列出该变量。点击“返回规则”,移回规则列表:
编辑刚刚创建的URL重写规则:
展开规则定义的“服务器变量”部分:
添加您在上一步中允许的“ X_FORWARDED_PROTO”标头,并为其赋予值“ https”:
应用更改:
现在您应该可以通过SSL访问SonarQube。您可能希望将原始SonarQube实例配置为仅接受来自反向代理的流量,或者仅接受通过Windows防火墙来自localhost的流量。
复制自: