本组织正在使用SonarQube应用程序,该应用程序托管在我们内部使用的azure服务器中,并且无法通过internet访问。为了增加安全性,我们在ssl证书的帮助下实现了应用程序的https,而ssl证书是由我们的内部认证机构提供的。
但是在我实现https之后,我们得到了“您到这个站点的连接是不安全的”。他们有什么办法使连接安全吗?因为我们在内部使用应用程序。
发布于 2018-07-26 12:09:53
根据SonarQube文档,要添加安全性/Https,他们的建议是使用反向代理,而不是直接将SSL添加到SonarQube网站。这是正式文件和链接:
要在HTTPS上运行SonarQube服务器,必须构建一个标准的反向代理基础结构。反向代理必须配置为在每个HTTP请求头中设置"X_FORWARDED_PROTO: https“值。如果没有此属性,由SonarQube服务器发起的重定向将返回到HTTP上。
使用Apache代理
我们假设您已经在模块mod_proxy中安装了Apache2,SonarQube正在运行并在港口/上可用,并且您希望为www.public_sonar.com配置一个虚拟主机。此时,编辑HTTPd虚拟主机的www.public_sonar.com配置文件。包括以下内容,以通过mod_proxy在sonar.com/上公开sonar.com/
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配置文件。包括以下内容,以便在SonarQube上公开http://www.somecompany.com/
# 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重写模块的帮助下,这是一个小菜一碟。
你需要的是:
第一步是创建一个IIS网站,它将充当反向代理。

除非需要进行Kerberos身份验证,否则不需要在反向代理上配置任何形式的身份验证。如果您已经配置了Active Directory集成,那么它应该会转发来自SonarQube的挑战。

如果您正在使用Kerberos或IIS高级保护,请在这里查看有关正确配置该保护的指南。(https://blogs.technet.microsoft.com/latam/2015/06/24/kerberos-authentication-and-application-request-routing/)
配置绑定以使用SSL并设置正确的主机名和证书。通过使用安装在我的计算机上的IIS Express开发证书,我有点作弊:

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

单击Add Rule创建一个新规则:

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

输入目标服务器URL (可以是http://localhost:9000,甚至是远程服务器)并单击OK创建规则:

在URL重写屏幕中,我们需要添加一个额外的服务器变量,并将其与请求一起发送到另一个服务器,以便告诉SonarQube,它实际上是在反向代理后面执行SSL卸载:

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

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

现在应该在变量列表中列出变量。单击“返回到规则”以移回规则列表:

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

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

添加上一步中允许的"X_FORWARDED_PROTO“标题,并给它值"https":

应用更改:

现在您应该能够通过SSL访问SonarQube。您可能希望将原始SonarQube实例配置为只接受来自反向代理的通信,或者只接受本地主机通过Windows的通信量。
抄录自:
https://stackoverflow.com/questions/51537101
复制相似问题