gpt4 book ai didi

ssl - 使用自签名证书

转载 作者:太空宇宙 更新时间:2023-11-03 14:20:19 27 4
gpt4 key购买 nike

我正在使用自签名证书与 Axis2 服务器进行 HTTPS 连接。所有这些连接都可以正常工作并且符合要求。

我的网络服务中有一个部分负责发送电子邮件。我正在使用 GMail 发送邮件。

问题是当我尝试使用 SSL 连接发送邮件时出现证书错误,即 GMail 证书不受信任。我也遇到过与 JBoss 类似的问题。这一次我能够通过下载 GMail 证书并使用 Keytool 实用程序将其导入 Keystore 来解决这个问题。很长一段时间以来,这种方法一直奏效。

但直到最近我又开始遇到老问题了。我尝试使用上次解决问题的旧技术,但这次没有用。 (不知道为什么)

我认为 GMail 使用一个开箱即用的签名证书,任何服务器都应该信任它,让它是 JBoss 或 Axis2。我无法弄清楚问题到底是什么。是因为使用了自签名证书吗?或者是否有任何特定的方法来创建它以便签名证书是可信的?

感谢您的帮助。

最佳答案

要进行 SSL 加密的服务器/客户端通信,我们需要服务器和客户端的 keystore 和信任库。以下是创建它们的步骤。

#Creating Server keystore and exporting a certificate
keytool -genkey -alias serverkeys -keyalg RSA -keystore server.keystore -storepass changeit -keypass changeit -dname "CN=test.com, OU=Test, O=Test, L=London, ST=London, C=UK"
keytool -export -alias serverkeys -keystore server.keystore -storepass changeit -file server.cer

#Creating Client keystore and exporting a certificate
keytool -genkey -alias clientkeys -keyalg RSA -keystore client.keystore -storepass changeit -keypass changeit -dname "CN=test.com, OU=test, O=test, L=London, ST=London, C=UK"
keytool -export -alias clientkeys -keystore client.keystore -storepass changeit-file client.cer

#Making a copy of cacerts file. These copies will be used for client/server truststore
cp /usr/java/jdk1.6.0_14/jre/lib/security/cacerts client.truststore
cp /usr/java/jdk1.6.0_14/jre/lib/security/cacerts server.truststore

#Copying server certificate to Client truststore
keytool -import -trustcacerts -v -keystore client.truststore -storepass changeit -file server.cer

#Copying Client certificate to Server truststore
keytool -import -trustcacerts -v -keystore server.truststore -storepass changeit -file client.cer

在最初的几次迭代中,我没有使用 cacert,而是直接从证书创建信任库,而且效果很好。当我们需要使用 SSL 连接到某些其他服务时出现问题,并且即使服务使用签名证书也无法建立连接。

例如,如果信任库不是从 cacerts 创建的,则连接到 GMail SMTP 服务器将失败。原因是即使 GMail 使用签名证书,我们也会使用一个不知道 GMail 证书是否可信的信任库。出于这个原因,我们使用 cacerts 来创建信任库。之后,我们能够连接任何使用签名证书的服务。

如果我们遇到未签名的证书,我们必须将它们添加到组件信任库中。

关于ssl - 使用自签名证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7977193/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com