Java 执行SSLSocketServer(运行时生成证书)的最简单方法

Java 执行SSLSocketServer(运行时生成证书)的最简单方法,java,security,ssl,certificate,ssl-certificate,Java,Security,Ssl,Certificate,Ssl Certificate,我想要一种创建SSLServerSocket的简单方法。我希望在运行时生成并使用自签名证书,因为数据需要保护,但它非常非常安全并不是特别重要 我找到了制作SSLServerSocket的教程,但它们假定您拥有正确的证书 Psuedo代码、代码示例和简单段落都是可以接受的答案。最简单的方法可能是调用外部程序openssl是一个用于许多加密内容的伟大工具。。。使用以下内容制作自签名证书: openssl req -new -newkey rsa:1024 -days 365 -nodes -x509

我想要一种创建SSLServerSocket的简单方法。我希望在运行时生成并使用自签名证书,因为数据需要保护,但它非常非常安全并不是特别重要

我找到了制作SSLServerSocket的教程,但它们假定您拥有正确的证书


Psuedo代码、代码示例和简单段落都是可以接受的答案。

最简单的方法可能是调用外部程序<代码>openssl是一个用于许多加密内容的伟大工具。。。使用以下内容制作自签名证书:

openssl req -new -newkey rsa:1024 -days 365 -nodes -x509 -keyout www.example.com.pem  -out www.example.com.pem

您可以使用
Runtime.exec()
或使用
ProcessBuilder
运行此类生成,如果在服务器的每次运行中生成,则通常自签名证书毫无意义。最好只创建一次自签名证书(例如,在服务器安装期间),仅此而已


关于保护通信安全的自签名证书有很好的描述和讨论。请阅读它,因为它也解决了您的问题。

为什么必须在运行时创建它?在服务器的生命周期中,您只需要一个,modulo ciertifcate expirit.sure,但必须在运行时至少进行一次…嗯。。好问题。想知道这一代人有多复杂?我猜这是在寻找非常大的素数。这是一个需要跨平台工作的嵌入式服务器。用java是不可能做到这一点的吗?