我使用tomcat配置了https环境,通过openssl或者keytool生成证书后配置在tomcat的server.xml,看起来是这样的
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="SSL"
keystoreFile="D://work//cert//server.p12"
keystorePass="123456"
keystoreType="PKCS12"
truststoreFile="D://work//cert//ca.p12"
truststorePass="123456"
truststoreType="PKCS12"/>
或者是
<Connector port="8443" maxThreads="150" scheme="https" secure="true"
SSLEnabled="true" keystoreFile="D://work//cert//test.keystore"
keystorePass="123456" clientAuth="false" sslProtocol="TLS"/>
,配置完成后重启tomcat,发现访问https://localhost:8443,已经提示我是否要信任证书了,说明看起来https环境起作用了,感觉棒棒哒。
但 是,按照常识,HTTPS环境下POST请求通过HTTPFOX等软件是抓取不到请求信息的,可是我配置了个controller后通过post提交发现 我能看到header和POST Data,真深深的伤害了我,我感觉人与人之间的信任没有了,后来我又查了一堆资料,包括tomcat官方文档配置SSL的方式也不行,地址。
然后查查查,在web.xml上加入
<security-constraint>
<!-- Authorization setting for SSL -->
<web-resource-collection>
<web-resource-name>spring</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
依然可以看到提交的请求参数,于是乎我就不淡定了。
请求有经验者,这个Tomcat HTTPS环境如何配置,如何生成证书才能保证提交参数加密?
在参数传输之前加密就可以了,https加密是针对的传输层,指的是链路加密。而你在客户端获取的参数是在应用层,是https在传输层解密之后的,当然是明文了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。