¿Alguien puede decirme cómo agrego varios nombres alternativos de sujeto a una CSR existente?
No estoy hablando de generar una CSR con SAN o agregar SAN en el momento de la firma: sé cómo hacer ambas cosas.
Antecedentes: el problema que tenemos es que el chasis HP Blade le permite generar CSR, pero solo permiten una sola SAN. No podemos usar un CSR generado en otro lugar ya que no podríamos usar el certificado resultante ya que no hay forma (que pueda encontrar) de cargar la clave en el chasis del blade.
El proceso estándar de nuestra CA no permite agregar SAN. Están dispuestos a experimentar, sin embargo, estoy tratando de encontrar una solución a nuestro fin, ya que esto significa que no tendremos que confiar en que tengan un proceso no estándar para nosotros, en mi experiencia si necesitan usar un proceso no estándar la vida eventualmente se pondrá difícil. Por ejemplo, cuando un miembro del personal que conoce el proceso no estándar no está presente debido a una baja, etc.
El método actual es conectarse al administrador de bladechassis a través de la interfaz gráfica de usuario web y generar la CSR con un solo CN.
La interfaz gráfica de usuario web solo permite una única SAN en la CSR.
Luego lo firmamos con la siguiente estrofa en la configuración de openssl:
[ v3_ca ]
subjectAltName = "DNS:bladesystem8,DNS:bladesystem8.services.adelaide.edu.au,DNS:bladesystem8-backup,DNS:bladesystem8-backup.services.adelaide.edu.au"
El certificado resultante tiene las SAN adicionales.
fuente
Respuestas:
Si su chasis no admite agregar SAN, deberá quitar la llave del chasis y generar la CSR con openssl.
Asegúrese de que no
req_extensions = v3_req
esté comentado en la[ req ]
sección.Agregue el
subjectAltName
a la[ v3_req ]
sección.Generar una nueva CSR.
No puede editar una CSR existente.
fuente
Nota importante: todo esto es algo especulativo, por lo que si está profundamente inmerso en el código y no está de acuerdo con lo que digo, créelo. No soy un experto en CA, solo juego uno en la televisión. Eso dijo:
Como característica de las CSR, será difícil. El paso final para generar una CSR mediante programación es hacer hash de todo lo que ha creado y luego firmarlo con la clave privada. Entonces, si bien podría agregar esos atributos al texto de la CSR, la firma no coincidiría con el contenido, por lo que ninguna CA lo firmaría.
Sin embargo, en su caso, usted controla (o al menos está en contacto con) la CA. Esto te da dos opciones:
De estos, el # 1 parece, con mucho, el más fácil. Tendrá que romper el sello de seguridad en OpenSSL para que lo haga, pero tiene algunas funciones que deberían facilitar un poco. Comenzaría con asn1parse, que le mostrará cómo separar la CSR.
fuente
site.com
a unwww.site.com
certificado como SAN).Si bien la respuesta de cakemox es definitivamente la más fácil si de alguna manera puede obtener una copia de la clave privada, hay otra forma si no puede, básicamente, volviendo a firmar la CSR utilizando un certificado de "Agente de inscripción".
Esta publicación de blog de css-security.com tiene todos los detalles esenciales. Pero la descripción general de alto nivel del proceso se ve así:
Cuando lo intenté personalmente, estoy bastante seguro de que me salteé la parte sobre la modificación de la plantilla de certificado. Suponiendo que pueda generar un certificado de Agente de inscripción para usted, el proceso real se parece a esto.
Cree un san.inf con la información de la extensión SAN.
Vuelva a firmar la solicitud.
Enviar la solicitud corregida
Y luego proceda normalmente con el proceso de emisión.
fuente