我有两个文件: mycer.cer mykey.key
我需要使用java创建SslContext以通过SSL连接到另一台服务器。 我试图找出如何直接从这些文件创建SslContext对象。
这篇文章可能会重复,但我试图找到一个明确的解释,用一个例子来创建SslContext,但没有找到清楚的东西。
提前致谢
答案 0 :(得分:1)
获取p12格式的证书,据我所知你不能使用证书文件,有实用程序(如openssl)的源(从你生成下载证书的地方)可以给你一个p12格式。
openssl pkcs12 -export -in mycer.crt -inkey mykey.key -out mycer.p12 -name "mycer"
然后检查以下网址..它应该包含您想要的信息。
Java HTTPS client certificate authentication
希望它有所帮助!
答案 1 :(得分:0)
此问题已在此处回答:In Java, what is the simplest way to create an SSLContext with just a PEM file?
我为此用例创建了一个库,以简化配置。它在掩体下使用充气城堡。用法请参见下文:
app.get('/', (req, res) => {
db.post.findAll()
.then((posts) => {
const postArray = posts.map(post => {
return post.get();
})
// I am assuming you need only one and the first post instance contains that image URL
res.render('index', { image: postArray[0].image_url });
})
});
要使用上述设置,您可以使用以下库:
X509ExtendedKeyManager keyManager = PemUtils.loadIdentityMaterial("certificate-chain.cer", "mykey.key");
X509ExtendedTrustManager trustManager = PemUtils.loadTrustMaterial("mycer.cer");
SSLFactory sslFactory = SSLFactory.builder()
.withIdentityMaterial(keyManager)
.withTrustMaterial(trustManager)
.build();
SSLContext sslContext = sslFactory.getSslContext();