我正在尝试了解SSL并成功制作了通过SSL连接进行通信的客户端/服务器程序。我已经生成了自己的信任库和密钥库文件,我希望我的客户端和服务器程序可以使用。到目前为止,我可以使用以下命令通过命令行运行这两个程序:
java -Djavax.net.ssl.keyStore=mySrvKeystore -Djavax.net.ssl.keyStorePassword=123456 ServerMain.java
和
java -Djavax.net.ssl.trustStore=mySrvKeystore -Djavax.net.ssl.trustStorePassword=123456 Client.java
但是,我想知道是否有可能以某种方式将文件实现到我的项目中,以便将来将其构建到.jar文件中时,我可以将文件与它捆绑在一起。以前,我通过将它们存储在我的项目文件夹中的res文件夹中并使用“/res/image.jpg”作为路径来完成与图像类似的操作,并且它工作正常。我使用System.setProperty("javax.net.ssl.trustStore", "/res/mySrvkeystore.jks")
尝试了相同的方法,但它仍然保留返回的文件。任何帮助都会很棒!谢谢!
答案 0 :(得分:1)
getResourceAsStream().
InputStream
加载KeyStore.
KeyStore
初始化TrustManager.
TrustManager
初始化SSLContext.
SSLContext
创建SSLSocketFactory.
SSLSocketFactory
创建SSLSocket.