es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Convertir múltiples archivos pem en un archivo pkcs12 único/Crear un truststore sin contraseña.

Tengo varios certificados de cliente (.pem sin raíz compartida ca), que me gustaría convertir en un único truststore pkcs12 sin contraseña para fines de prueba.
El truststore no debe contener claves privadas ya que es solo para validar los clientes.

Intenté lo siguiente:

cat client1.crt client2.crt > trusted-clients-collection
openssl pkcs12 -export -in trusted-clients-collection -nokeys -passout ‘pass:’ -out trusted-clients.p12

Pero eso devolvió un truststore vacío. Reemplazar -in con -certfile tampoco ayuda. Si omito -nokeys, se solicita una clave privada. Si proporciono eso, la clave privada estará en el truststore resultante.

O el siguiente comando:

keytool -import -alias client1 -file client1.crt -keystore trusted-clients.p12 -storetype pkcs12 -storepass “changeit”
keytool -import -alias client2 -file client2.crt -keystore trusted-clients.p12 -storetype pkcs12 -storepass “changeit”

Pero eso crea un truststore con una contraseña y no pude encontrar una forma de usar una contraseña vacía.

¿Hay un comando para crear un truststore pkcs12 a partir de múltiples pems sin contraseña? Espero usar OpenSSL. O es mi expectativa de que el archivo pkcs12 sea un truststore incorrecta?

Estoy usando OpenSSL 1.1.1l como se envía por git (Bash) versión 2.34.0.windows.1.

Algunos certificados de prueba se pueden encontrar aquí:
https://github.com/yidongnan/grpc-spring-boot-starter/tree/master/tests/src/test/resources/certificates

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para crear un truststore pkcs12 a partir de varios archivos .pem, sin contraseña, use el siguiente comando:

    cat client1.pem client2.pem > trusted-clients-collection.pem
    openssl pkcs12 -export -in trusted-clients-collection.pem -nokeys -out trusted-clients.p12
    

    Esto creará un truststore pkcs12 llamado “trusted-clients.p12” sin contraseña y que solo contiene los certificados de cliente y no sus claves privadas.

    Tenga en cuenta que la opción -nokeys es necesaria para excluir las claves privadas del truststore.

    Alternativamente, si desea utilizar keytool para crear el truststore, puede especificar una contraseña en blanco usando -storepass "" de la siguiente manera:

    keytool -import -alias client1 -file client1.crt -keystore trusted-clients.p12 -storetype pkcs12 -storepass ""
    keytool -import -alias client2 -file client2.crt -keystore trusted-clients.p12 -storetype pkcs12 -storepass ""
    

    Esto creará un truststore pkcs12 llamado “trusted-clients.p12” sin contraseña que solo contiene los certificados de cliente.

Comments are closed.