首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除与此站点的连接对于SonarQube是不安全的

如何删除与此站点的连接对于SonarQube是不安全的
EN

Stack Overflow用户
提问于 2018-07-26 10:52:21
回答 1查看 1.9K关注 0票数 1

本组织正在使用SonarQube应用程序,该应用程序托管在我们内部使用的azure服务器中,并且无法通过internet访问。为了增加安全性,我们在ssl证书的帮助下实现了应用程序的https,而ssl证书是由我们的内部认证机构提供的。

但是在我实现https之后,我们得到了“您到这个站点的连接是不安全的”。他们有什么办法使连接安全吗?因为我们在内部使用应用程序。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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/

代码语言:javascript
复制
    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/

代码语言:javascript
复制
# 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重写模块的帮助下,这是一个小菜一碟。

你需要的是:

  1. 在机器上启用IIS (不一定是SonarQube机器,但我假设您是在同一个系统上这样做的)
  2. IIS的Url扩展(https://www.iis.net/downloads/microsoft/url-rewrite)
  3. 基于应用的IIS路由扩展(https://www.iis.net/downloads/microsoft/application-request-routing)
  4. SSL证书(可以是自签名的,也可以是真正的)

第一步是创建一个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的通信量。

抄录自:

使用IIS

服务器设置文档

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51537101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档