我的邮件服务器在与其他特定邮件服务器进行 TLS 握手时遇到了问题。
经过一些测试,发现两台服务器没有共同的密码。现在的问题是,它们有共同的密码套件,但 KeyExchange 不同。我将在表格中显示它以更清楚:
My server:
excode Cipher Suite Name (OpenSSL) KeyExch. Encryption
xc028 ECDHE-RSA-AES256-SHA384 ECDH 256 AES
xc014 ECDHE-RSA-AES256-SHA ECDH 256 AES
x9f DHE-RSA-AES256-GCM-SHA384 DH 2048 AESGCM
x6b DHE-RSA-AES256-SHA256 DH 2048 AES
x39 DHE-RSA-AES256-SHA DH 2048 AES
Other server:
xc024 ECDHE-ECDSA-AES256-SHA384 ECDH 256 AES
xc00a ECDHE-ECDSA-AES256-SHA ECDH 256 AES
xc032 ECDH-RSA-AES256-GCM-SHA384 ECDH/RSA AESGCM
xc02a ECDH-RSA-AES256-SHA384 ECDH/RSA AES
xc00f ECDH-RSA-AES256-SHA ECDH/RSA AES
如果我没记错的话,问题在于前两个密码由于使用 ECDSA 证书而不同,而我对此无能为力。但后三个密码不同,因为我们的服务器使用不同的密钥交换方法。所以问题是,我如何强制或更改我的盒子与相关密码相关的密钥交换方法,以使其与其他服务器的密钥交换方法相匹配。或者,换句话说,是什么决定了在 keyExchange 中使用哪种方法。
我使用 postfix 3.1.0 和 openssl 1.0.2g