SSLSocketServer最简单的方法(在运行时生成证书)
问题描述:
我想要一个简单的方法来创建一个SSLServerSocket。我希望在运行时生成和使用自签名证书,因为数据需要受到保护,但它非常非常安全并不是非常重要。SSLSocketServer最简单的方法(在运行时生成证书)
我找到了关于制作SSLServerSocket的教程,但他们认为你有一个合适的证书。
伪代码,代码示例和一个简单的段落都是可接受的答案。
答
最简单的方法可能是调用外部程序。 openssl
是许多加密的东西一个伟大的工具...让使用自签名的证书:
openssl req -new -newkey rsa:1024 -days 365 -nodes -x509 -keyout www.example.com.pem -out www.example.com.pem
您可以用Runtime.exec()
运行这样产生或使用ProcessBuilder
。
答
正常情况下,自签名证书在服务器的每次运行中都生成时根本没有意义。最好创建一次自签名证书(例如,在服务器设置期间),就这些了。
关于保护通信的自签名证书有很好的描述和讨论in this StackOverflow topic。请阅读它,因为它也解决您的问题。
为什么你必须在运行时创建它?您在服务器的整个生命周期中只需要一个模数ciertifcate到期。 – EJP 2010-12-02 06:27:34
当然,但它必须在运行时至少一次... – 2010-12-02 21:17:40