And*_*ndy 13 java ssl ssl-certificate
我正在尝试使用安全套接字层(HTTPS)与我的PHP脚本建立连接,但我发现为了确保最大的安全性/有效性,我必须将我的网站使用的SSL证书导入到我的应用程序中......我不知道该怎么办的东西.
如果它有帮助,我的SSL证书不是自签名的,而是由StartSSL提供的并且我正在使用Eclipse IDE.
有人能指出我正确的方向吗?即我需要哪些文件,我应该在哪里导入它们以及我在Java中需要哪些代码等?
Vin*_*lds 29
我发现为了确保最大安全性/有效性,我必须将我的网站使用的SSL证书导入我的应用程序
当你发表声明时,你是部分正确的.您无需导入SSL证书.导入StartSSL CA证书就足够了.
此外,没有将证书导入Java应用程序的事情.Java中的SSL支持依赖于密钥库和信任库的概念,而不依赖于应用程序中打包的某些证书.如果您要发布要由最终用户下载和执行的应用程序,则无需在应用程序中发布证书或私钥.私钥和关联的证书将存储在密钥库中,只有您可以访问.
应用程序的最终用户将依赖Java运行时内的SSL支持,这将使应用程序在验证服务器证书后建立到站点的SSL连接.Java运行时在信任库中附带一组默认的CA证书,并且成功建立SSL连接的唯一先决条件是服务器的SSL证书由信任库中的一个CA颁发.Java运行时的信任库中不存在StartSSL证书,至少从版本6开始,因此:
或者,您可以使用-Djavax.net.ssl.trustStore=<path_to_truststore> -Djavax.net.ssl.trustStorePassword=<truststore_password>JVM启动标志使用您自己的信任库初始化您的应用程序,或者在初始化SSL连接之前执行以下代码:
System.setProperty("javax.net.ssl.trustStore","<path_to_truststore>");
System.setProperty("javax.net.ssl.trustStorePassword","<truststore_password>");
Run Code Online (Sandbox Code Playgroud)
这是一种可行的方法,只有当您的应用程序是一个不恰好是applet的Java SE应用程序时(或者对如何指定信任库具有类似限制的应用程序).
阅读Java keytool文档也会有所帮助.