Generé dos certificados SSL, uno es un certificado RSA y el otro es un certificado ECC, para mi dominio forum.example.com y lo implementé en Nginx usando la siguiente configuración:
listen 443 ssl http2; listen [::]:443 ssl http2; server_name forum.example.com; access_log /var/log/nginx/forum.example.com.log; ssl on; ssl_certificate /path/forum.example.com/fullchain.cer; ssl_certificate_key /path/forum.example.com/forum.example.key; ssl_certificate /path/forum.example.com_ecc/fullchain.cer; ssl_certificate_key /path/forum.example.com_ecc/forum.example.com.key; ssl_dhparam /path/dhparams.pem; ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3 ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; http2_idle_timeout 5m; # Rest of the configurationLa idea detrás de esto es utilizar el certificado ECC siempre que sea posible y, en el caso de que un cliente no admita certificados ECC, se utilizará el certificado RSA. Sin embargo, en mi máquina a veces veo que se usa el certificado RSA y, a veces, que se usa el certificado ECC. Supongo que se está utilizando algún método de turno rotativo para determinar qué certificado usar.
¿Hay alguna manera de priorizar ECC sobre RSA, y si el cliente no es compatible con ECC, el servidor usará el certificado RSA?