san - ¿Cómo agregar un nombre alternativo a los certs de ssl?
ssl con nombre (3)
Estoy usando openssl para crear certificados autofirmados. Recibo este error con los certs que generé: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: no hay nombres alternativos de sujeto presentes
¿Alguien sabe cómo especificar "Nombre alternativo del sujeto" al crear un certificado? Así es como estoy generando un almacén de claves:
sudo $JAVA_HOME/bin/keytool -genkey -dname "CN=192.168.x.xxx, OU=I, O=I, L=T, ST=On, C=CA" -alias tomcat -validity 3650 -keyalg RSA -keystore /root/.keystore -keypass abcd -storepass abcd
Para generar una clave:
openssl s_client -connect 192.168.x.xxx:8443 2>/dev/null
¡Por favor ayuda! ¡Gracias!
Al generar CSR, es posible especificar el atributo -ext nuevamente para que se inserte en el CSR
keytool -certreq -file test.csr -keystore test.jks -alias testAlias -ext SAN=dns:test.example.com
complete el ejemplo aquí: Cómo crear CSR con SAN usando keytool
Aunque esta pregunta era más específicamente sobre direcciones IP en Asunto Alt. Nombres, los comandos son similares (usando entradas DNS
para un nombre de host y entradas de IP para direcciones IP).
Para citarme a mí mismo:
Si está utilizando
keytool
, a partir de Java 7, keytool tiene una opción para incluir un Nombre Alternativo del Sujeto (vea la tabla en la documentación para -ext): puede usar -ext san = dns: www.example.com o - ext san = ip: 10.0.0.1
Tenga en cuenta que solo necesita keytool
Java 7 para usar este comando. Una vez que haya preparado su almacén de claves, debería funcionar con versiones anteriores de Java.
(El resto de esta respuesta también menciona cómo hacer esto con OpenSSL, pero no parece ser lo que está usando).
Tanto IP como DNS se pueden especificar con el argumento adicional keytool -ext SAN=dns:abc.com,ip:1.1.1.1
Ejemplo:
keytool -genkeypair -keystore <keystore> -dname "CN=test, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown" -keypass <keypwd> -storepass <storepass> -keyalg RSA -alias unknown -ext SAN=dns:test.abc.com,ip:1.1.1.1