我使用LetsEncrypt的CertBot免费生成PEM文件。在其他语言中,只需几行代码和PEM/key文件就可以轻松启动HTTPS服务器。到目前为止,我在java中找到的解决方案过于复杂,我正在寻找更简单的解决方案。
1.我不想使用java的命令行“keytool”,我只想把我的PEM/key文件拖放到我的eclipse中,然后用SSLContext编程启动HTTPS服务器。
1.我不想包含像BouncyCastle这样的大量外部库。请参阅以下链接以获得使用BouncyCastle的假定解决方案:How to build a SSLSocketFactory from PEM certificate and key without converting to keystore?
有没有更好/更简单的方法来做到这一点?
5条答案
按热度按时间j5fpnvbx1#
下面的代码一般地显示了如何通过解析具有多个条目的PEM文件来为HTTPS服务器创建SSLContext,例如,几个证书和一个
RSA PRIVATE KEY
。然而,它是不完整的,因为普通Java 8无法解析PKCS#1 RSA私钥数据。因此,看起来你想在没有任何库的情况下完成它是不可能的。至少BouncyCastle用于解析PKCS#1个数据(然后也可以使用BouncyCastle的PEM解析器)。8tntrjer2#
虽然已经提供了一个答案,但我想提供一个需要更少代码的替代方案。请参阅下面的示例设置:
要使用上述设置,您可以使用此库:
上面的设置需要较少的自定义代码,同时仍然可以实现您想要实现的目标。您可以在这里查看库和文档:https://github.com/Hakky54/sslcontext-kickstart
dpiehjr43#
我目前使用的完整解决方案:
1.在服务器上使用certbot生成证书。我使用命令“certbot certonly -dmyawesomedomain.com“
1.我使用以下代码将certbot证书转换为java SSLContext:https://github.com/mirraj2/bowser/blob/master/src/bowser/SSLUtils.java
rqdpfwrv4#
你可以这样做来获得一个合适的SSLContext:
cig3rfwq5#