我即将完成 Tomcat 的配置。
我遇到的问题是关于我的客户端应用程序和我的浏览器。
我希望当用户使用他的浏览器访问 Tomcat 时,它只能通过 https 访问,以便我可以使用证书进行身份验证。
在我的客户端应用程序中,当我与 axis2 通信时,我只想使用 http,因此不会使服务器过载。我正在使用带有使用证书的密码回调的 apache rampart,因此不使用 https 没有问题。
现在,这是问题的开始。这是我设法开始工作的内容:
在 tomcat 上允许 SSL,客户端认证对浏览器来说就像一个魅力。
但是,仍然可以通过
访问服务器http://localhost:8080
关于这件事,这是我的 server.xml:
<Connector port="8080" protocolo="HTTP/1.1" redirectPort="8443" />
<Connector port="8443" maxThreads="150" scheme="https" secure="true" SSLEnabled="true" keystoreFile="conf/service.jks" keystorePass="password" clientAuth="true" keyAlias="service" sslProtocol="TLS"/>
它不应该重定向到 8443 端口吗?
我的客户端应用程序可以通过 8080 端口正常通信。
那我做错了什么?
最佳答案
您是否在应用程序的 web.xml 中定义了安全约束?如果没有,请尝试添加如下内容:
<security-constraint>
<web-resource-collection>
<web-resource-name>SSL Forwarding</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
关于java - Apache Tomcat 安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11126145/