http和https访问混乱

问题描述

我用的是Tomcat7,在web.xml和server.xml中配置了SSL。访问https://localhost:8443是没有问题的。如果访问http://localhost,也能自动跳转到https://localhost:8443.但如果修改访问连接如下:http://localhost:8443,虽然出现了警告提示,但网页同样也能访问。请问有什么办法让这样不合法的连接http://localhost:8443不能访问网页吗?

解决方案

解决方案二:
防火墙,关闭除80以外的端口。
解决方案三:
看一下:server.xml的配置,https配置中加上:scheme="https"指定端口的访问协议是https,如果tomcat版本较老,可以在:web.xml配置指定的哪些网页需要https访问:<security-constraint><web-resource-collection><web-resource-name>HTTPSOnly</web-resource-name><url-pattern>/admin_index.jsp</url-pattern><url-pattern>/login.jsp</url-pattern></web-resource-collection><user-data-constraint><transport-guarantee>CONFIDENTIAL</transport-guarantee></user-data-constraint></security-constraint>
解决方案四:
在server.xml中,port8443的配置已经加入了scheme="https"。现在我的问题是如何让http协议访问8443端口时(http://localhost:8443),出现类似BadRequestYou'respeakingplainHTTPtoanSSL-enabledserverport.这种信息。
解决方案五:
引用2楼liujoi的回复:

看一下:server.xml的配置,https配置中加上:scheme="https"指定端口的访问协议是https,如果tomcat版本较老,可以在:web.xml配置指定的哪些网页需要https访问:<security-constraint><web-resource-collection><web-resource-name>HTTPSOnly</web-resource-name><url-pattern>/admin_index.jsp</url-pattern><url-pattern>/login.jsp</url-pattern></web-resource-collection><user-data-constraint><transport-guarantee>CONFIDENTIAL</transport-guarantee></user-data-constraint></security-constraint>

最笨的办法:在web.xml中增加过滤器:<!--设置过滤器统计文件下载次数--><filter><filter-name>fileDownNum</filter-name><filter-class>org.xxx.filter.FileYouClass</filter-class></filter><filter-mapping><filter-name>fileDownNum</filter-name><url-pattern>/*</url-pattern></filter-mapping>在:.FileYouClass中,从request中获取访问的协议是http还是https,然后返回给用户页面就好了
解决方案六:
使用了Filter的方法,发现在doFilter()中,通过ServletRequest对象来获取request的信息,发现无论是https://localhost:8443,还是http://localhost:8443,得到的scheme都是https。而且还发现这个问题跟session有关系,当https://localhost:8443访问成功后,立即将URL改成http://localhost:8443,网页仍能访问。似乎当前session仍认为是在使用https://localhost:8443。但如果不操作页面了,当目前的session不存在后,再使用http://localhost:8443,就只能显示空白页面了。这是Tomcat的问题吗?

时间: 2024-09-25 02:12:33

http和https访问混乱的相关文章

阿里云上因为SLB引起的https访问速度慢问题

自从我们在阿里云SLB上部署了https之后(详见在SLB上部署https遇到的问题及解决方法),陆续有园友向我们反馈登录时速度很慢(登录时是通过https访问),有些园友甚至无法访问登录页面. 而我们自己登录时,速度飞快,从未遇到过登录速度慢的问题. 在昨天之前,我们一直怀疑可能是这些园友所使用的网络对https进行了某些限制,没有一点去怀疑问题与阿里云有关. 昨天晚上 @Bill Tsui 在闪存上反馈这个问题时,我们让他用http访问,速度立即变得飞快,只要换成https速度就立马变慢.这

iis内网程序想用https访问,ssl证书怎么弄

问题描述 iis内网程序想用https访问,ssl证书怎么弄 程序部署在内网iis服务器上,与外网物理隔离,内网只能通过ip地址访问,没有dns服务器,怎么用h?ttps访问? 解决方案 https一样支持ip方式,自己制作一个对应IP地址的证书就可以了. 解决方案二: 免费StartSSL证书申请详细步骤和IIS中的SSL设置 http://www.server110.com/iis/201407/10798.html 解决方案三: 用hosts文件代替dns 解决方案四: 沃通(WoSign

详解全站 HTTPS 访问优化

本文讲的是详解全站 HTTPS 访问优化,HTTPS 协议就是 HTTP+SSL/TLS,即在 HTTP 基础上加入 SSL /TLS 层,提供了内容加密.身份认证和数据完整性3大功能,目的就是为了加密数据,用于安全的数据传输. HTTPS 通过3大功能增加了数据传输安全,但同时也给Web性能优化带来了新的挑战. HTTPS降低用户访问速度(需多次握手) 网站改用 HTTPS 以后,由 HTTP 跳转到 HTTPS 的方式增加了用户访问耗时(多数网站采用 301.302 跳转) HTTPS 涉及

glassfish https访问证书问题

问题描述 glassfish https访问证书问题 我有个服务部署在glassfish上,用https访问那个服务会出现证书异常,就是安装glassfish自动生成的keystore.jsk的域名不对,怎么生成一个自签名的证书,替换掉glassfish默认的证书 解决方案 openssl可以生成csr,然后在自己sign 解决方案二: HTTPS访问站点,出现证书问题解决

程序-如何在项目中引入 密钥 使项目可以用https访问?

问题描述 如何在项目中引入 密钥 使项目可以用https访问? 求助,在java web程序中,如何实现在项目中导入一个密钥来实现https通信??注意,不是在服务器配置.求大神,着急啊 解决方案 http://blog.csdn.net/huaishuming/article/details/8965597 解决方案二: openssl生成,可以你生成,你把密钥和key文件给他们.

让tomcat支持https访问

如何让tomcat支持https访问呢 步骤: (1)生成keystore文件 命令:keytool -genkey -alias tomcat -keyalg RSA -keysize 1024 -validity 365 -keystore tomcat22.keystore 生成的文件 就是:tomcat22.keystore (2)把keystore 文件放在conf目录下 (3)修改server.xml文件 添加: <Connector port="80" protoc

客户端sessionid用https访问时怎么会经常为空,请教各位兄弟

问题描述 web服务器用jboss,采用https访问时,登录成功后,经常出现页面显示不正常的情况,后来跟踪请求发现,是客户端发起请求时的sessionid为空造成的,但是什么原因造成sessionid为空却百思不得其解,不知道有没有兄弟遇到过 解决方案 解决方案二:session没拿到吧解决方案三:为啥采用https?登陆的时候用下https就行了其他页面也用https成本太高了解决方案四:我用showModalDialog的时候发现当前面里的东西经常不在session,与此有关吗?解决方案五

CentOS7 配置Nginx支持HTTPS访问的实现方案_Linux

CentOS7配置Nginx支持HTTPS访问 1.安装git和bc yum -y install git bc 2.安装Nginx     1.准备:       yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel     2.下载:       wget https://nginx.org/download/nginx-1.11.6.tar.gz     3.解压:     tar zxvf

我们这个cloudfont地址,用http和https访问有没有不一样的地方?

问题描述 我们这个cloudfont地址,用http和https访问有没有不一样的地方?