Cannot force RSA with TLS 1.3
Closed this issue · 3 comments
Describe the bug
When i force certificate type with --rsa
option, handshake fails.
To Reproduce
I tested it against my local exim, without specific TLS settings on debian testing with new self-signed certificate (but the same result i get for my public MX with public LE cert), the system prefers TLS1.3 over older versions:
check_ssl_cert -H bonifac.skk --resolve 127.0.0.1 -P smtp --ignore-host-cn --allow-empty-san -s --terse --rsa
SSL_CERT CRITICAL bonifac.skk:smtp: Handshake failure
Adding --tls1_2
"solves" issue, but it is less than ideal. With debug output i found, that it uses:
-sigalgs 'RSA+SHA512:RSA+SHA256:RSA+SHA384:RSA+SHA224:RSA+SHA1'
When i try openssl
directly with that sigalgs
, i got the same result (as expected). After adding RSA-PSS+SHA256
to algos, the openssl
successfully finishes handshake:
echo quit | openssl s_client -crlf -starttls smtp -connect 127.0.0.1:25 -servername bonifac.skk -sigalgs 'RSA-PSS+SHA256:RSA+SHA256' -name bonifac
CONNECTED(00000003)
cut
---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: RSA-PSS
Server Temp Key: X25519, 253 bits
---
cut
As you can see, the RSA-PSS signature is used, please add these algos.
Expected behavior
Success handshake.
System (please complete the following information):
- check_ssl_cert version: 2.60.0
- OpenSSL version (
openssl version
): 3.0.8
IMO, you have to add other combinations too: SHA-512 and SHA-384
Thanks, I committed the change. If you need a new release just let me know ...
Don't worry with new version, at least for me ;-)