¿Cómo crear un archivo .pfx a partir de un certificado y una clave privada?

Resuelto jlp asked hace 13 años • 0 respuestas

Necesito .pfxun archivo para instalar https en un sitio web en IIS.

Tengo dos archivos separados: certificado ( .cero pem) y clave privada ( .crt), pero IIS solo acepta .pfxarchivos.

Obviamente instalé el certificado y está disponible en el administrador de certificados (mmc), pero cuando selecciono el Asistente para exportación de certificados no puedo seleccionar el formato PFX (está atenuado)

¿Existe alguna herramienta para hacer eso o ejemplos de C# sobre cómo hacerlo mediante programación?

jlp avatar Jun 10 '11 21:06 jlp
Aceptado

Necesitará usar openssl.

openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt

El archivo de clave es solo un archivo de texto que contiene su clave privada.

Si tiene una CA raíz y certificados intermedios, inclúyalos también usando múltiples -inparámetros

openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt -in intermediate.crt -in rootca.crt

Si tiene un archivo crt incluido que usa, por ejemplo, con nginx, puede pasarlo junto con el certificado, todo en uno:

cat domain.name.crt | tee -a domain.name.bundled.crt
cat intermediate.crt | tee -a domain.name.bundled.crt
cat rootca.crt | tee -a domain.name.bundled.crt
openssl pkcs12 -export -out domain.name.pfx \
  -inkey domain.name.key \
  -in domain.name.bundled.crt 

Puedes instalar openssl desde aquí: openssl

jdehlin avatar Jun 24 '2013 20:06 jdehlin

Solución para Windows que no requiere OpenSSL instalado

Recientemente estuve tratando de resolver el mismo problema, y ​​solo tenía una computadora portátil con Windows sin openssl instalado (y sin suficientes derechos de administrador para instalarlo). Resulta que Windows tiene una utilidad incorporada llamada certutilque es capaz de combinar archivos .crt y .key en .pfx. Los documentos están aquí .

Debe crear una nueva carpeta y colocarlo a usted .crty a sus archivos clave. Cambie el nombre de ambos archivos para que tengan el mismo nombre (pero con diferente extensión):

{{sitename}}.crt
{{siteName}}.key

En caso de que su archivo clave sea un txt normal, simplemente cambie la extensión a .key.

Después de eso, abra cmd en esa carpeta y ejecutecertutil -mergepfx [INPUTFILE] [OUTPUTFILE]

Ejemplo:

archivo de certificado:mySite.crt

archivo de clave:mySite.key

Comando certutil:certutil -mergepfx mySite.crt mySite.pfx

Nota: se le pedirá que proporcione una contraseña para .pfxel archivo recién creado (no olvide memorizarla/almacenarla), ya que será necesaria durante la importación del certificado en el sistema de destino.

Yura avatar Jun 12 '2022 11:06 Yura

Si está buscando una GUI de Windows, consulte DigiCert. Acabo de usar esto y fue bastante simple.

En la pestaña SSL, primero importé el certificado. Luego, una vez que seleccioné el Certificado, pude exportar como PFX, con y sin un archivo de claves.

https://www.digicert.com/util

joelnet avatar Aug 14 '2014 23:08 joelnet

La utilidad de línea de comandos Microsoft Pvk2Pfx parece tener la funcionalidad que necesita:

Pvk2Pfx (Pvk2Pfx.exe) es una herramienta de línea de comandos que copia la información de clave pública y privada contenida en archivos .spc, .cer y .pvk en un archivo de Intercambio de información personal (.pfx).
http://msdn.microsoft.com/en-us/library/windows/hardware/ff550672(v=vs.85).aspx

Nota: si necesita/quiere/prefiere una solución C#, puede considerar utilizar la http://www.bouncycastle.org/api .

Seymour avatar Sep 09 '2013 18:09 Seymour

NO necesita openssl o makecert ni nada de eso. Tampoco necesita la clave personal que le proporcionó su CA. Casi puedo garantizar que el problema es que espera poder utilizar los archivos clave y cer proporcionados por su CA, pero no se basan en "el método IIS".

Certificados SSL para IIS con PFX de una vez por todas - Explicación de SSL e IIS - http://rainabba.blogspot.com/2014/03/ssl-certs-for-iis-with-pfx-once-and-for.html

Utilice la interfaz de usuario de "Certificados de servidor" de IIS para "Generar solicitud de certificado" (los detalles de esta solicitud están fuera del alcance de este artículo, pero son críticos). Esto le dará un CSR preparado para IIS. Luego le entrega esa CSR a su CA y solicita un certificado. Luego tomas el archivo CER/CRT que te dan, regresas a IIS, "Solicitud de certificado completa" en el mismo lugar donde generaste la solicitud. Es posible que le solicite un .CER y es posible que tenga un .CRT. Ellos son la misma cosa. Simplemente cambie la extensión o use el archivo . menú desplegable de extensión para seleccionar su .CRT. Ahora proporcione un "nombre descriptivo" adecuado ( *.yourdomain.example, yourdomain.example, foo.yourdomain.example, etc.) ¡ESTO ES IMPORTANTE! Esto DEBE coincidir con lo que configuró el CSR y lo que le proporcionó su CA. Si solicitó un comodín, su CA debe haber aprobado y generado un comodín y usted debe utilizar el mismo. Si su CSR se generó para foo.yourdomain.example, DEBE proporcionar la misma en este paso.

rainabba avatar Mar 08 '2014 00:03 rainabba