如何检查我的服务器 Diffie-Hellman MODP 大小(位)并增加它?

Pan*_*ong 5 linux openssl bit diffie-hellman redhat-openjdk

再会,

我在 Linux Redhat 中有一个 WAS 自由服务器,并且我启用了唯一的 TLSv1.2。

我输入以下命令来获取服务器信息:

openssl s_client -connect 10.7.5.65:9443 -msg
Run Code Online (Sandbox Code Playgroud)

部分结果如下:

No client certificate CA names sent
Peer signing digest: SHA512
Server Temp Key: DH, 1024 bits
---
SSL handshake has read 1710 bytes and written 479 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES128-GCM-SHA256
Server public key is 2048 bit
Secure Renegotiation IS supported
Run Code Online (Sandbox Code Playgroud)

我看到Server Temp Key值是 DH,1024 位,但也看到服务器公钥是 2048 位,请问我的 Diffie-Hellman MODP 大小(位)实际上是 1024 还是 2048?

还有那部分 ServerKeyExchange

<<< TLS 1.2 Handshake [length 020f], ServerKeyExchange
    0c 00 02 0b 00 80 ff ff ff ff ff ff ff ff c9 0f
Run Code Online (Sandbox Code Playgroud)

00 80 转换为十进制是 128,所以这意味着我的 Diffie-Hellman MODP 大小(位)是 1024 位?

如果是 1024 位,我如何将其增加到 2048 位?

我在此服务器中使用 Java 8 OpenJDK。

好心提醒。

小智 2

在本例中,您的 dhparams 看起来像是 1024 位。您可以使用 openssl 生成新的 dhparams:

openssl dhparam -out dhparam.pem 2048

然后配置使用 dhparams 的服务器以使用新文件,然后重新启动。很久以前我们就用 nginx 和 apache 做过这个。对于 RHEL/CentOS,通常有一个用于系统集中位于 /etc 中的 dhparam 文件。替换它应该就足够了,但如果您使用的是非中心位置的文件,则需要相应地修改您的配置。