事实证明,对于这个特定问题,搜索互联网过于复杂。也许你能指出我正确的方向?
我已经设置了一个带有自签名证书的 SSL/TLS 服务器(不是 HTTPS)。我已成功连接到它并使用 Node.JS 进行了测试
var sock = tls.connect({
host:'127.0.0.1',
port:443,
servername:'foobar',
ca: fs.readFileSync('foobar-cert.pem')
}, function () {
if(sock.authorized)
console.log('secure connection - yea!')
else
console.log('Not Secure because ' + sock.authorizationError)
})
但我似乎无法在 Java 中找到等效的示例代码。
如何使用自签名证书文件连接到 Java 中的 TLS 服务器以进行服务器身份验证?自签名证书将在运行时加载,而不是安装到计算机的共享 CA 文件中。
到目前为止,我找到的最佳答案需要一个外部库。这是我最后的手段,因为我确信 Java 会内置我需要的东西,而且我根本不需要外部库。
编辑:感谢您对重新打开问题的快速回复。
编辑:我看到我的问题已关闭,因为重复告诉 java 接受自签名 ssl 证书。这是不正确的,因为我的问题有额外的要求,我在上面说过:
建议:“证书...将其导入您的 JVM 信任库”
我的要求“自签名证书...未安装到计算机的共享 CA 文件中”建议:“禁用证书验证”(不推荐)
我的要求“将在运行时加载自签名证书” (并用于服务器验证)建议:“使用密钥工具将其导入您的信任库”
我的要求“自签名证书......未安装到计算机的共享 CA 文件中”