Sé que usted puede especificar el propósito para el cual un certificado de clave pública puede ser utilizado para mediante la adición de una línea como esta en la openssl.cfg de archivo:

extendedKeyUsage=serverAuth,clientAuth

Pero desde que tengo varios certificados para crear, cada uno con un diferente uso de clave extendida, es posible especificar el atributo que necesito en la línea de comandos (sin el uso de openssl.archivo cfg)? Algo así como:

openssl req -newkey rsa:4096 \
            -extendedKeyUsage "serverAuth,clientAuth" \
            -keyform PEM \
            -keyout server-key.pem \
            -out server-req.csr \
            -outform PEM

Gracias!

InformationsquelleAutor David Caissy | 2013-06-13

3 Comentarios

  1. 31

    Sólo se puede usar algo como esto:

    openssl -extensions mysection -config myconfig.cnf
    

    y myconfig.cnf:

    [mysection]
    keyUsage         = digitalSignature
    extendedKeyUsage = codeSigning
    

    Yo no soy consciente de la interfaz de línea de comandos para esta funcionalidad.

    • Me sale esto: unable to find 'distinguished_name' in config
    • dado config contiene sólo las partes relevantes para la cuestión. Puede que tenga que proporcionar pocos más parámetros adicionales. Esto está fuera del alcance de la pregunta original.
  2. 10

    Lo que terminó haciendo es crear diferentes openssl.archivos cfg y se refieren a la adecuada mediante el uso de la -config o la -extfile interruptor.

    • usted podría querer «aceptar» su propia respuesta (por lo que no se mostrará como una pregunta sin respuesta ya)
  3. 3

    la misma como la tramitación de SAN

    openssl req -subj "/CN=client" -sha256 -new -key client-key.pem -out client.csr\
    -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "\n[SAN]\nsubjectAltName=DNS:example.com,DNS:www.example.com\nextendedKeyUsage=serverAuth,clientAuth"))

Dejar respuesta

Please enter your comment!
Please enter your name here