假设我有以下JAR:
myapp-1.0.jar/
META-INF/
MANIFEST
classes/
com/
<All my .class files>
mycert1.cer
mycert2.cer
mycert3.cer
我需要一种从命令行运行JAR的方法,如下所示:
java -jar myapp-1.0.jar -Djavax.net.ssl.keyStore=myapp-1.0.jar/classes/mycert1.cer
或者:
java -jar myapp-1.0.jar -Djavax.net.ssl.keyStore=myapp-1.0.jar/classes/mycert2.cer
但是由于JAR是ZIP文件,所以我似乎无法从命令行访问“嵌入式” SSL证书。该解决方案需要在Windows和Linux上都可以使用。有想法吗?
“ javax.net.ssl.keyStore”的值是一个文件名。
JAR文件中的资源不是文件。
您无法通过系统属性来执行此操作。
您将必须获取该资源的InputStream,并从中加载KeyStore,并使用该资源初始化KeyManager,然后使用该资源初始化SSLContext,并从中获取SSLSocketFactory,并使用该资源创建SSLSockets,如JSSE参考指南。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句