我尝试在 Java 应用程序中启用 HTTPS,但没有成功。我认为我的证书是有效的,也许我的 Java 代码有问题。
SslContext sslCtx = SslContextBuilder.forServer(new File("C:\cert.crt"), new File("C:\cert.key"))
.trustManager(InsecureTrustManagerFactory.INSTANCE)
.build();
}
在该行抛出异常:
Exception in thread "main" java.lang.IllegalArgumentException: File does not contain valid private key: cert.key
我使用的是通过 OpenSSL(X509、SHA256,在 Linux 上)完成的自签名证书。我使用这个网站来检查其有效性:
证书和私钥匹配。
对于服务器,您需要生成私钥和相关的公共证书,即密钥对。您似乎只有公共证书,因此出现错误:
File does not contain valid private key: cert.key
。
有关示例,请参阅如何使用 openssl 创建公钥和私钥?。