I have a server that implements DTLS using OpenSSL 1.0.1 but supports only RSA keys as of today. I want to add support to this server to accept EC keys to be able to implement the newer ECDHE-ECDSA cipher suites while retaining support for RSA. Any pointers as to how to go about this?

All my searches have led me no where although I know web servers do supports this, so this must be possible.

  • I think support for having both an EC and RSA certificate in an SSL context so that the right one gets picked based on the client ciphers was only added with OpenSSL 1.0.2. – Steffen Ullrich Jan 21 '17 at 1:53
  • Thats great to know..will try upgrading – Suman Jan 21 '17 at 1:58
  • @SteffenUllrich: support for multiple key&EE-cert types (as slots in {ssl_ctx_st,ssl_st}.cert) goes back to 0.9.7 at least, although EC as one of those types was added in very inconvenient way in 0.9.8 and easily usable only from 1.0.0 -- EXCEPT RedHat-family builds. What's new in 1.0.2 is setting chain certs per (type of) EE-cert, and you always could and still normally can get around that by letting libssl autobuild the chain from its truststore (yes the truststore, even though that sounds backwards). OTOH upgrading from an unsupported version (as of this month) is always good. – dave_thompson_085 Jan 21 '17 at 9:05
  • @dave_thompson_085: interesting comment. I only came to the assumption that 1.0.2 is the way to got because the feature of nginx and apache to have both RSA and EC certificates in parallel for the same virtual host requires 1.0.2. – Steffen Ullrich Jan 21 '17 at 14:17

That's just another ciphersuite, given support by the ssl library, it should happen almost automatically.

Some suggestions: Is support for ECDHE-ECDSA compiled in the openssl version you are using? Are they allowed by the SSLCipherSuite you are providing?

Regarding getting help with this, openssl-users seems the right forum for this kind of specific question.

  • Yes..I can have support for either one of them but not both simultaneously as I have to use two different certificates. SO I was wondering if the same SSL session can support both. – Suman Jan 21 '17 at 1:55
  • @user314029 The ClientHello -including the list of Cipher Suites- happens before the ServerHello that includes the server certificate, so it is clearly technically possible to do that. I'm not sure about the internals to configure it, though. It's probably similar to the way of presenting different certificates based on SNI, though. – Ángel Jan 21 '17 at 2:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.