我已经构建了一个Java程序作为服务器上数据库的前端,并且正在尝试使用SSL加密客户端和服务器之间的流量。这是我发出的用于创建服务器证书的命令:
keytool -genkey -alias localhost -keyalg RSA -keypass kpass123 -storepass kpass123 -keystore keystore.jks
以下是相关代码:
System.setProperty("javax.net.ssl.keyStore",
"G:/Data/Android_Project/keystore.jks");
System.setProperty("javax.net.ssl.keyPassword", "kpass123");
SSLServerSocketFactory factory =
(SSLServerSocketFactory)SSLServerSocketFactory.getDefault();
SSLServerSocket accessSocket =
(SSLServerSocket)factory.createServerSocket(DB_ACCESS_PORT);
当我尝试运行此命令时,我发现了这一点:
我还发现“ KeyPairGenerator”服务具有可用的算法DIFFIEHELLMAN,DSA和RSA,而“
SSLContext”具有算法SSL,TLS,SSLV3,DEFAULT,TLSV1。
我是否需要找到将RSA安装到SSLContext服务中的方法?我什至在寻找正确的服务吗?我不应该使用RSA吗?
我是整个SSL的新手-安全-证书一事,这让我感到震惊,因为这些不同的服务中的每一个都应该使用相同的算法来访问相同的证书。