¿Cómo crear un archivo .pfx desde certificado y clave privada?

Necesito el archivo .pfx para instalar https en el sitio web en IIS.

Tengo dos archivos separados: certificado (.cer o pem) y clave privada (.crt) pero IIS solo acepta archivos .pfx.

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

¿Hay alguna herramienta para hacer eso o C # ejemplos de hacerlo programáticamente?

Necesitarás 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 con su clave privada.

Si tiene una CA raíz y certificaciones intermedias, inclúyalas también usando múltiples parametros

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

Puede instalar openssl desde aquí: openssl

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

Pvk2Pfx (Pvk2Pfx.exe) es una herramienta de línea de comandos que copia información de clave pública y clave 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 / desea / prefiere una solución de C #, entonces puede considerar usar el http://www.bouncycastle.org/api .

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

Debajo de 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 clave.

https://www.digicert.com/util

NO necesitas openssl o makecert ni nada de eso. Tampoco necesita la clave personal que le entregó su CA. Casi puedo garantizar que el problema es que espera poder usar la clave y los archivos cer proporcionados por su CA, pero no están basados ​​en “la forma IIS”. Estoy tan cansado de ver información mala y difícil aquí que decidí bloguear el tema y la solución. Cuando te das cuenta de lo que está pasando y ves lo fácil que es, querrás abrazarme 🙂

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

Use la IU de “IIS de servidor” de IIS para “Generar solicitud de certificado” (los detalles de esta solicitud están fuera del scope de este artículo, pero esos detalles son críticos). Esto le dará un CSR preparado para IIS. Luego le entrega esa CSR a su CA y solicita un certificado. Luego, toma el archivo CER / CRT que le dan, regrese a IIS, “Complete Certificate Request” en el mismo lugar donde generó la solicitud. Puede solicitar un .CER y puede tener un .CRT. Ellos son la misma cosa. Simplemente cambie la extensión o use el . desplegable de extensión para seleccionar su .CRT. Ahora proporcione un “nombre descriptivo” apropiado (* .sudominio.com, sudominio.com, foo.sudominio.com, etc.) ¡ESTO ES IMPORTANTE! Esto DEBE coincidir con para qué configuró la CSR y qué CA le proporcionó. Si solicitó un comodín, su CA debe haber aprobado y generado un comodín y debe usar el mismo. Si su CSR fue generada para foo.yourdomain.com, DEBE proporcionar la misma en este paso.

Obtuve un enlace con tu requerimiento. Combina archivos CRT y KEY en un PFX con OpenSSL

Extractos del enlace de arriba:

Primero, necesitamos extraer el certificado de CA raíz del archivo .crt existente, porque lo necesitamos más adelante. Abra el archivo .crt y haga clic en la pestaña Ruta de certificación.

Haga clic en el certificado superior (en este caso, VeriSign) y presione Ver certificado. Seleccione la pestaña Detalles y presione Copiar a archivo …

Seleccione el certificado X.509 codificado en Base-64 (.CER). Guárdelo como rootca.cer o algo similar. Colóquelo en la misma carpeta que los otros archivos.

Renombrarlo desde rootca.cer a rootca.crt Ahora deberíamos tener 3 archivos en nuestra carpeta desde los cuales podemos crear un archivo PFX.

Aquí es donde necesitamos OpenSSL. Podemos descargarlo e instalarlo en Windows , o simplemente abrir el terminal en OSX.

EDITAR:

  1. Hay un enlace de soporte con información paso a paso sobre cómo instalar el certificado.

  2. Después de instalar con éxito, exporte el certificado, elija .pfx formato .pfx e incluya la clave privada.

    Nota importante : Para exportar el certificado en formato .pfx, debe seguir los pasos en la misma máquina desde la que solicitó el certificado .

  3. El archivo importado se puede cargar en el servidor.

Necesitas usar la herramienta makecert.

Abra un símbolo del sistema como administrador y escriba lo siguiente:

 makecert -sky exchange -r -n "CN=" -pe -a sha1 -len 2048 -ss My ".cer" 

Donde = el nombre de su certificado para crear.

A continuación, puede abrir el complemento Administrador de certificados para la consola de gestión escribiendo certmgr.msc en el menú Inicio, haga clic en> certificados> personales y su certificado estará disponible.

Aquí hay un artículo.

https://azure.microsoft.com/documentation/articles/cloud-services-certs-create/

https://msdn.microsoft.com/en-us/library/ff699202.aspx

((citas relevantes del artículo están abajo))

A continuación, debe crear el archivo .pfx que usará para firmar sus implementaciones. Abra una ventana del símbolo del sistema y escriba el siguiente comando:

 PVK2PFX –pvk yourprivatekeyfile.pvk –spc yourcertfile.cer –pfx yourpfxfile.pfx –po yourpfxpassword 

dónde:

  • pvk: yourprivatekeyfile.pvk es el archivo de clave privada que creó en el paso 4.
  • spc – yourcertfile.cer es el archivo de certificado que creó en el paso 4.
  • pfx – yourpfxfile.pfx es el nombre del archivo .pfx que se creará.
  • po – yourpfxpassword es la contraseña que desea asignar al archivo .pfx. Se le solicitará esta contraseña cuando agregue el archivo .pfx a un proyecto en Visual Studio por primera vez.

(Opcionalmente (y no para el OP, pero para futuros lectores), puede crear el archivo .cer y .pvk desde cero) (usted haría esto ANTES de lo anterior). Tenga en cuenta que mm / dd / aaaa son marcadores de posición para las fechas de inicio y finalización. vea el artículo msdn para la documentación completa.

 makecert -sv yourprivatekeyfile.pvk -n "CN=My Certificate Name" yourcertfile.cer -b mm/dd/yyyy -e mm/dd/yyyy -r 

Esta es, con mucho, la forma más fácil de convertir archivos * .cer a * .pfx:

Simplemente descargue el convertidor de certificado portátil de DigiCert: https://www.digicert.com/util/pfx-certificate-management-utility-import-export-instructions.htm

Ejecútalo, selecciona un archivo y obtén tu * .pfx !!

Creé el archivo .pfx de los archivos .key y .pem.

Me gusta esto openssl pkcs12 -inkey rootCA.key -in rootCA.pem -export -out rootCA.pfx

Cuando dice que el certificado está disponible en MMC, ¿está disponible en “Usuario actual” o “Computadora local”? Descubrí que solo puedo exportar la clave privada si está en la computadora local.

Puede agregar el complemento para Certificados a MMC y elegir para qué cuenta debe administrar los certificados. Elija una computadora local. Si su certificado no está allí, impórtelo haciendo clic con el botón derecho en la tienda y seleccionando Todas las tareas> Importar.

Ahora navegue hasta su certificado importado en la versión de computadora local del complemento del certificado. Haga clic con el botón derecho en el certificado y elija Todas las tareas> Exportar. La segunda página del asistente de exportación debería preguntar si desea exportar la clave privada. Seleccione Sí. La opción PFX ahora será la única disponible (está atenuada si selecciona no y la opción para exportar la clave privada no está disponible en la cuenta de Usuario actual).

Se le pedirá que establezca una contraseña para el archivo PFX y luego establecer el nombre del certificado.

Yo estaba teniendo el mismo problema. Mi problema era que la computadora que generó la solicitud de certificado inicial se había bloqueado antes de que se completara el proceso de validación ssl extendida. Necesitaba generar una nueva clave privada y luego importar el certificado actualizado del proveedor del certificado. Si la clave privada no existe en su computadora, entonces no puede exportar el certificado como pfx. La opción está en gris.

Aunque probablemente sea más fácil generar una nueva CSR utilizando IIS (como dijo @rainabba), suponiendo que tenga los certificados intermedios, hay algunos convertidores en línea, por ejemplo: https://www.sslshopper.com/ssl-converter. html

Esto le permitirá crear un PFX a partir de su certificado y clave privada sin tener que instalar otro progtwig.

En la mayoría de los casos, si no puede exportar el certificado como PFX (incluida la clave privada) es porque MMC / IIS no puede encontrar / no tiene acceso a la clave privada (utilizada para generar el CSR). Estos son los pasos que seguí para solucionar este problema:

  • Ejecute MMC como administrador
    • Genera el CSR usando MMC. Siga estas instrucciones para exportar el certificado.
  • Una vez que obtenga el certificado de la CA (crt + p7b), impórtelos (Certificados personales \ Certificados y Autoridad de Certificación Intermedia \ Certificados)
  • IMPORTANTE: Haga clic con el botón derecho en su nuevo certificado (Personal \ Certificados) Todas las tareas … Administre la clave privada y asigne permisos a su cuenta o a Todos (¡arriesgado!). Puede volver a los permisos anteriores una vez que haya terminado.
  • Ahora, haga clic con el botón derecho en el certificado y seleccione Todas las tareas … Exportar, y podrá exportar el certificado, incluida la clave privada, como un archivo PFX, ¡y podrá cargarlo en Azure!

¡Espero que esto ayude!

Sé que algunos usuarios han hablado sobre instalar esto y aquello y agregar progtwigs de líneas de comando y descargar …

Personalmente soy perezoso y encuentro todos estos métodos engorrosos y lentos, además no quiero descargar nada y encontrar las líneas cmd correctas si no es necesario.

La mejor manera para mí en mi servidor IIS personal es usar RapidSSLOnline. Esta es una herramienta que está en un servidor que le permite cargar su certificado y clave privada y puede generar un archivo pfx que puede importar directamente a IIS.

El enlace está aquí: https://www.rapidsslonline.com/ssl-tools/ssl-converter.php

A continuación se muestran los pasos utilizados para el escenario solicitado.

  1. Seleccionar tipo actual = PEM
  2. Cambiar por = PFX
  3. Cargue su certificado
  4. Suba su clave privada
  5. Si tiene un certificado de CA ROOT o certificados intermedios, cárguelos también
  6. Establezca una contraseña de su elección, utilizada en IIS
  7. Haz clic en ReCaptcha para demostrar que no eres un bot
  8. Haga clic en Convertir

Y eso es todo, debería tener un PFX descargado y usarlo en su proceso de importación en IIS.

Espero que esto ayude a otras personas tecnológicas perezosas y de mentalidad similar.