Solución:
Aunque esta pregunta se refería más específicamente a las direcciones IP en Subject Alt. Nombres, los comandos son similares (usando DNS
entradas para un nombre de host y IP
entradas para direcciones IP).
Para citarme a mí mismo:
Si estas usando
keytool
, a partir de Java 7, keytool tiene una opción para incluir un nombre alternativo de sujeto (consulte 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 Java 7 keytool
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 la IP como el 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
Al generar CSR es posible especificar -ext atributo de nuevo para que se inserte en el CSR
keytool -certreq -file test.csr -keystore test.jks -alias testAlias -ext SAN=dns:test.example.com
ejemplo completo aquí: Cómo crear CSR con SAN utilizando keytool