搜索

首页  >  问答  >  正文

java - 经f5转发,tomcat使用https协议问题

今天新项目上线,碰到一个问题,公司用f5转发,使用的世https协议,但是在我们项目里request.getScheme()获取到的却是http,运维说是我们代码问题....,我查看我们项目的tomcat的serve.xml,发现没有证书,我想问一下精通这方面问题的小伙伴们,tomcat里没有证书,能用https协议吗?有碰到过这个问题的吗?怎么解决的?

过去多啦不再A梦过去多啦不再A梦2768 天前1020

全部回复(2)我来回复

  • 阿神

    阿神2017-05-27 17:43:49

    https通常是由反向代理(如F5)来完成的(即SSL证书是配在反向代理上的),而Tomcat本身用的是http协议。

    由于反向代理用了7层转发,request.getRemoteAddr()不可能得到用户真实IP地址,所以通常在反向代理那边配X-Forwarded-For,Tomcat这边用request.getHeader("X-Forwarded-For")拿到用户真实IP地址)。同样道理,request.getScheme()也不可能得到用户真实的协议,通常会在反向代理那边配X-Forwarded-Proto这种Header,Tomcat这边用request.getHeader("X-Forwarded-Proto")来判断用户是否处于https状态。

    回复
    0
  • 漂亮男人

    漂亮男人2017-05-27 17:43:49

    没明白你的问题是啥。。
    tomcat没配证书怎么用https?
    f5没用过,类似的nginx是可以做到ssl卸载的,即你的应用不需要感知https

    回复
    0
  • 取消回复