我试图将DH密钥大小从1024位增加到2048位,根据这个问题:
How to expand DH key size to 2048 in java 8.
但是,它似乎不起作用.相关信息:
java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
和
System.out.println(Security.getProperty("jdk.tls.ephemeralDHKeySize"));
2048
但是,如果我从客户端连接到该服务器,它使用1024位:
openssl s_client -connect server:port -cipher "EDH" 2>/dev/null | grep -ie "Server .* key"
Server Temp Key: DH, 1024 bits
知道我还能做什么吗?
最佳答案 我担心您正在调用Security.getProperty(“jdk.tls.ephemeralDHKeySize”)来检查DH密钥大小. jdk.tls.ephemeralDHKeySize属性不是Security属性,它是一个System属性,这使我怀疑你没有正确设置它.如果你这样设置:
Security.setProperty("jdk.tls.ephemeralDHKeySize", "2048"); // don't do this
然后那不会起作用.尝试传递:
-Djdk.tls.ephemeralDHKeySize=2048
在程序的命令行中,或者像这样设置:
System.setProperty("jdk.tls.ephemeralDHKeySize", "2048");
在代码中.