8000
Skip to content

Conversation

@s-hadinger
Copy link
Collaborator

Description:

Multiple fixes to TLS ECDSA:

  • ECDSA is enabled for EC certificates which is now the default in letsencrypt. However the current implementation was failing with error 49 - now fixed.
  • ECDSA is disabled by default to avoid regression with fingerprint validation, since fingerprints are different from RSA to ECDSA certificates, and it's the server that decides which certificate to use if both are present. See TLS disable ECDSA for MQTT to ensure we don't break fingerprints after #22649 #22656
  • SetOption165 1 enables ECDSA in addition to RSA. SetOption165 1 is automatically done if a TLS error 296 (incorrect cipher) is detected, to ensure smooth compatibility with letsencrypt. When using letsencrypt/EC, the first connection (RSA only) will fail, then SetOption165 1 is enabled and the second connection succeeds.
  • Added logs to indicate which cipher is used, Example:
MQT: TLS cipher suite: ECDHE_RSA_AES_128_GCM_SHA256

Note: ECDSA is not enabled on ESP8266 (yet, maybe next to come)

Checklist:

  • The pull request is done against the latest development branch
  • Only relevant files were touched
  • Only one feature/fix was added per PR and the code change compiles without warnings
  • The code change is tested and works with Tasmota core ESP8266 V.2.7.8
  • The code change is tested and works with Tasmota core ESP32 V.3.1.4
  • I accept the CLA.

NOTE: The code change must pass CI tests. Your PR cannot be merged unless tests pass

@s-hadinger s-hadinger merged commit f6a488a into arendst:development Oct 11, 2025
103 of 128 checks passed
sfromis added a commit to sfromis/Tasmota that referenced this pull request Oct 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

0