多域名下tomcat配置指定域名https并使其强制跳转

发布于 2022-09-04 23:17:41 字数 975 浏览 12 评论 0

如何让tomcat在多域名情况下,使其中一个域名强制使用https呢?看网上好多配置,都是在一个域名的情况下进行的。
比如:一个tomcat上有test.emp.com和testadmin.emp.com.现在要让testadmin.emp.com上的内容强制使用https访问。不知该如何配置呢?
使用nginx配置了下433端口,发现testadmin.emp.com确实能使用https访问,但同时还能用http访问。之后在监听的80端口加了条

server {  
  listen      80;  
  server_name    testadmin.emp.com;  
  return      301 https://$server_name$request_uri;  
} 

或者加
···

server{  
    server_name  testadmin.emp.com;;  
    listen 80;  
    index index.jsp;  

    if ($host = ' testadmin.emp.com;' ) {
        rewrite ^(.*)$  https:// testadmin.emp.com;$1 permanent;  
    }
    location / {  
             proxy_pass http://127.0.0.1:8080;  
             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 $scheme;  
    }  
}

···
就开始重定向死循环了

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

尸血腥色 2022-09-11 23:17:41

不需要反向代理,在你要HTTPS的站点web.xml里加<security-constraint>配置。例如

<security-constraint>
    <display-name>zzz</display-name>
    <web-resource-collection>
      <web-resource-name>xxx</web-resource-name>
      <url-pattern>/xxx/*</url-pattern>  ##指定需要强制https的url
      <http-method>DELETE</http-method> 
      <http-method>GET</http-method>
      <http-method>POST</http-method>
    </web-resource-collection>
    <user-data-constraint>
      <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
  </security-constraint>
  <context-param>
    <param-name>ca_root</param-name>
    <param-value>/xxx/tomcat.keystore</param-value> ##指定服务器证书ks
  </context-param>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文