我正在尝试将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
知道我还能做什么吗?
答案 0 :(得分:1)
我担心您正在调用Security.getProperty("jdk.tls.ephemeralDHKeySize")
来检查DH密钥大小。 jdk.tls.ephemeralDHKeySize
属性不是安全属性,它是系统属性,这使我怀疑您没有正确设置它。如果您将其设置为:
Security.setProperty("jdk.tls.ephemeralDHKeySize", "2048"); // don't do this
然后那就不行了。尝试传递:
-Djdk.tls.ephemeralDHKeySize=2048
在程序的命令行中,或者像这样设置:
System.setProperty("jdk.tls.ephemeralDHKeySize", "2048");
代码中的。