当前位置: 首页 > 知识库问答 >
问题:

使用自签名证书时未与Tomcat服务器进行SSL/TLS通信

东门宜
2023-03-14

我已经用自签名证书配置了Tomcat服务器(apache-Tomcat-9.0.1)。在此服务器上添加了所需的配置。xml,然后复制。jks文件在conf文件夹中。

使用SSL Stuff创建自签名证书配置Tomcat

HTTPS按预期在浏览器上工作。

在进行HttpsURLConnection调用以获取REST API时禁用SSL验证

证书异常禁用证书异常

它起作用了-

在服务器上。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服务器启动时不会在任何地方显示任何异常。

但是SSL/TLS通信不发生与Tomcat服务器上使用自签名证书?。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通信,两者都必须有自己的私钥和公共证书,但在上面,我们只配置了带有证书和私钥的服务器,而没有配置客户端?,请更正?

我检查了各种例子:帖子,但都在谈论生成密钥,只配置Tomcat服务器。对于测试,它说话像浏览器将显示证书异常,接受该异常,所有将被设置,没有我发现关于实际TLS/SSL握手的讨论,我们实际上配置了Tomcat服务器。

共有1个答案

元彦君
2023-03-14

不,如果非浏览器客户端执行双向ssl,则tomcat中的ssl证书是不够的:在客户端导入tomcat的证书,并在tomcat中导入客户端的证书。这种方式可以实现双向ssl,您只需创建适当的ssl上下文或覆盖javax即可。ssl.*其中包括密钥库密钥库密码和密钥密码(如果有的话)

 类似资料:
  • 我想为我的REST API使用TLS,我计划为它创建自签名证书,并为我的restapi的客户端提供公钥。 我的restapi部署在tomcat catalina容器(tomcat版本8.0.42)上。 我的测试步骤如下, 服务器端 1) 我使用openssl创建了一个自签名证书 2) 已创建bundle 3) 然后将tomcat配置为启用TLS(keystoreType为“PKCS12”),并启动

  • 问题内容: 我完全被困在这里。我有一个Java客户端代码,需要使用自签名证书连接到SSL服务器。 仅 当我在服务器端禁用SSLv2支持时, 才会 出现此问题。 痕迹是 在服务器端,我可以看到以下跟踪: 如果启用SSL2,我会看到 而且一切正常。 我还知道那不是服务器端的东西,因为与其他软件连接可以正常工作。 知道我在做什么错吗? 还有人知道这个“读取客户端问候A / B”是什么意思吗? 谢谢 更新

  • 问题内容: 我正在连接到以前成功使用过的Web服务,但是现在他们已经更改了主机名并向我发送了两个.pem文件。一个是CA,另一个是我的新客户证书。 (我将Java 1.5,Spring + Spring Web Services与Apache httpclient一起使用,但是我怀疑我的问题是证书,密钥和SSL本身。) 我已经导入了.pem文件以及从Firefox导出到cacerts中的主机的.c

  • 我想生成一个自签名SSL证书,并将其与Tomcat一起使用。 我怎么能这样呢?

  • 问题内容: 我正在尝试使用自签名服务器证书建立TLS连接。 我使用以下示例代码生成了证书:http : //golang.org/src/pkg/crypto/tls/generate_cert.go 我相关的客户端代码如下所示: 以及类似的服务器代码: 因为服务器证书是自签名的,所以对于服务器和客户端CA_Pool使用相同的证书,但这似乎不起作用,因为我总是会收到此错误: 我怎么了 问题答案:

  • 问题内容: 我已经开始为API编写包装,该包装要求所有请求都通过HTTPS进行。我不想在开发和测试它时向实际的API发出请求,而是希望在本地运行自己的服务器来模拟响应。 我对如何生成创建HTTPS服务器并向其发送请求所需的证书感到困惑。 我的服务器看起来像这样: Pem文件是使用以下命令生成的: 一个请求看起来像这样: 通过此设置,我得到了,所以我认为我需要为该请求添加一个选项。 所以我的问题是我