我使用 nginx 反向代理在 https 上运行 sonarqube。
这是我的 nginx 反向代理配置。
server{
server_name sonarqube.mydomain.co.in;
access_log /var/log/nginx/sonar.access.log;
error_log /var/log/nginx/sonar.error.log;
proxy_buffers 16 64k;
proxy_buffer_size 128k;
location / {
proxy_pass http://127.0.0.1:9000;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto http;
proxy_set_header X-Forwarded-Proto https;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/sonarqube.mydomain.co.in/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/sonarqube.mydomain.co.in/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server{
if ($host = sonarqube.mydomain.co.in) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name sonarqube.mydomain.co.in;
return 404; # managed by Certbot
}
我已从 Azure AD 中的库中添加了 sonarqube。之后,我在 AZURE SSO 中选择了 SAML。在我的回复 url 中,我已配置https://sonarqube.mydomain.co.in/oauth2/callback/saml https://sonarqube.mydomain.co.in/oauth2/callback/saml并在我的登录网址中https://sonarqube.mydomain.co.in https://sonarqube.mydomain.co.in。我已经配置了从 azure AD 到我的 sonarqube 插件的相关字段。
现在,当我尝试在 sonarqube 中通过 SAML 登录时,出现此错误
You're not authorized to access this page. Please contact the administrator.
Reason: The response was received at http://sonarqube.mydomain.co.in/oauth2/callback/saml instead of https://sonarqube.mydomain.co.in/oauth2/callback/saml
这是因为我的 nginx 反向代理配置吗?我怎样才能解决这个问题?
任何帮助,将不胜感激
• 根据配置反向代理的sonarqube 文档,应将其配置为在每个http 请求标头中设置值“X_FORWARDED_PROTO: https”。如果没有此属性,SonarQube 服务器发起的重定向将退回到 HTTP。在您的代码中,您错误地指定将请求从 HTTP 重定向到 HTTPS。您尚未在“location”参数下指定要返回到“server”类下的任何位置。正确的脚本格式应如下所示:-
‘ server {
listen 80;
server_name sonarqube.mydomain.co.in;
if ($host = sonarqube.mydomain.co.in)
location /
return 301 https://$host$request_uri;
}
} ‘
另外,请删除代码中传递的“proxy_redirect off”参数,该参数会阻止通过 nginx 代理的重定向请求,并删除“proxy_set_header X-Forwarded-Proto http”参数。您可以传递一个像“$redirect”这样的变量,并按如下方式定义该变量,以确保所有请求都到达 HTTPS 端口,而不是“proxy_set_header X-Forwarded-Proto https”:-
if ($scheme != "https") {
return 301 https://$host$request_uri permanent;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)