我已使用自签名证书配置Tomcat Server(apache-tomcat-9.0.1)。在server.xml上添加此必需配置,并在conf文件夹上复制.jks文件。
Create Self Signed Certificate Configure Tomcat with SSL Stuff
HTTPS按预期在浏览器上运行。
在进行HttpsURLConnection调用以获取REST API时禁用SSL验证
Certificate Exception Stuff Disable Certificate Exception
有效! -
在Server.xml上 - =仅配置了8443端口。 在Web应用程序安全约束配置:
<security-constraint>
<web-resource-collection>
<web-resource-name>OVS</web-resource-name>
<!-- all URLs are protected -->
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<!-- redirect all requests to HTTPS -->
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
Tomcat Server启动时没有在任何地方显示任何异常。
但Tomcat Server在使用自签名证书时没有发生SSL / TLS通信?。 Wireshark捕获了数据包,预计会看到TLS数据包或SSL握手但没有,只有TCP数据包。
为什么没有发生SSL握手?,这是因为它仅验证SSL服务器证书? (因为客户端身份验证是错误的)
<Connector SSLEnabled="true" acceptCount="100" clientAuth="false"
disableUploadTimeout="true" enableLookups="false" maxThreads="150"
port="8443" keyAlias="london" keystoreFile="conf/londonkey.jks" keystorePass="sumit123"
protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https"
secure="true" sslProtocol="TLS" />
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
您是否在配置自签名证书等内容后进行了测试,以了解是否进行了SSL / TLS通信?
修改
据我所知,要在两个网络实体A和B之间进行SSL通信,两者都必须拥有自己的私钥和公共证书,但在上面我们只配置了带有证书和私钥的服务器。 ?,请更正?
我检查过各种 example : posts,但都讨论了生成密钥并且只配置Tomcat服务器。对于Test,它像浏览器那样说话会显示证书异常,接受该异常并且所有都将被设置,否我在哪里找到关于我们实际配置Tomcat服务器的实际TLS / SSL握手的讨论。
答案 0 :(得分:0)
不,如果非浏览器,tomcat中的ssl证书是不够的 客户端 做双向ssl: 在客户端导入tomcat的cert并导入 tomcat中的客户证书 这样你就可以实现2路ssl 您只需要创建正确的ssl上下文 或覆盖包含密钥库的javax.ssl。* 密钥库密码和密钥密码(如果有) 就是这样