OpenSSL - Genere certificados autofirmados con diferentes suites de cifrado

2

Quiero generar un certificado raíz y un certificado SSL (autofirmado) para la comunicación entre un dispositivo integrado y nuestros servidores backend (IIS 8.0).

Usé OpenSSL para generar un certificado con los siguientes pasos:

Así es como creé el certificado raíz:

openssl genrsa -out ca.key 2048
openssl req -new -key ca.key -out ca.csr
openssl x509 -req -days 7305 -in ca.csr -out ca.crt -signkey ca.key

Luego hice el certificado SSL de esta manera:

openssl genrsa -out mydomain.com.key 2048
openssl req -new -key mydomain.com.key -out mydomain.com.csr
openssl x509 -req -days 7305 -in mydomain.com.csr -CA ./ca.crt -CAkey ./ca.key -CAcreateserial -out mydomain.com.crt

Todo esto funcionó bien.

Después de importar en IIS, obtengo los siguientes conjuntos de cifrado compatibles:

TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256

Mi dispositivo integrado solo puede manejar:

TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA256

Sé que la limitación no se encuentra en nuestra configuración de Windows ni en nuestro IIS, ya que los sitios alojados en ese mismo servidor web (con nuestro certificado GoDaddy), son compatibles con las 4 de estas suites.

Supongo que debo generar el certificado de otra manera. Simplemente no sé cómo ...

    
pregunta H. Lowette 17.11.2015 - 17:22
fuente

2 respuestas

3

El certificado que creó perdió la extensión "Uso de clave de certificado" con la propiedad "Clave de cifrado" habilitada.

Por lo tanto, no está permitido que el servidor use la clave RSA en el certificado para el intercambio de claves y, como resultado, el servidor solo ofrece suites de cifrado con claves efímeras.

    
respondido por el jaeckel 17.11.2015 - 23:53
fuente
1

Actualización 2015-11-18Wed: verifique la respuesta de Jaeckel.

Jaeckel plantea un punto válido que olvidé. El certificado no puede estar bien después de todo. Comprueba la sección X509v3 Key Usage .

Publicación original conservada debajo de la línea.

El certificado está bien.

Simplemente no hay superposición de conjuntos de cifrado. A saber: su IIS solo habla de conjuntos de cifrado Forward-Secure y su dispositivo integrado solo habla de conjuntos de cifrado NO-Forward-Secure.

Intente ejecutar IISCrypto y utilícelo para permitir que su IIS hable al menos una de las suites de cifrado que está incrustada. El dispositivo habla.

Puede ir con TLS_RSA_WITH_AES_128_CBC_SHA es Obligatorio para implementar el conjunto de cifrado para TLS1.2, por lo que cualquier cosa que afirme la compatibilidad con TLS1.2 debe poder expresarlo)

Clasifíquelos para que sean los menos preferidos. Eso garantiza que los clientes que hablan tanto en las suites FS como en las que no lo son terminen con una suite compatible con FS.

Sin embargo, si insiste en utilizar un tipo de certificado diferente, su única opción práctica, además de "RSA", es "ECDSA". Pero las cuatro suites integradas que enumeró son solo para certificados de tipo RSA.

    
respondido por el StackzOfZtuff 17.11.2015 - 17:59
fuente

Lea otras preguntas en las etiquetas