Pregunta

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 Certificate Manager (MMC), pero cuando selecciono Certificado Exportar Asistente no puedo seleccionar el formato PFX (está atenuado)

¿Hay alguna herramienta para hacer eso o C# ejemplos de hacer eso programado?

No hay solución correcta

Otros consejos

Deberá 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 en él.

Si tiene una raíz de CA y certs intermedios, incluya también usando múltiples -in parámetros

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 comando Microsoft Pvk2pfx parece tener la funcionalidad que necesita:

PVK2PFX (PVK2PFX.EXE) es una herramienta de línea de comandos copia la clave pública y la información de clave privada contenida en los archivos .spc, .cer y .pvk a 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 C#, entonces puede considerar usar el http://www.bouncycastle.org/ API.

Si está buscando una GUI de Windows, consulte Digicert. Solo usé 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, tanto con y sin un archivo de teclas.

https://www.digicert.com/util

No necesita OpenSSL o Makecert ni nada de eso. Tampoco necesita la clave personal que le brinde CA. Casi puedo garantizar que el problema es que espera poder usar los archivos clave y CER proporcionados por su CA, pero no se basan en "la forma IIS". Estoy tan cansado de ver información mala y difícil aquí que decidí bloguear al sujeto y la solución. Cuando te das cuenta de lo que está pasando y ves lo fácil que es, querrás abrazarme :)

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

Use IIS "Certificados de servidor" UI para "generar solicitud de certificado" (los detalles de esta solicitud están fuera del alcance de este artículo, pero esos detalles son críticos). Esto le dará un CSR preparado para IIS. Luego le das esa CSR a tu CA y solicita un certificado. Luego toma el archivo CER/CRT que le dan, regrese a IIS, "Solicitud de certificado completa" en el mismo lugar en el que generó la solicitud. Puede pedir un .cer y es posible que tenga 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 amigable" apropiado (*.yourdomain.com, yourdomain.com, foo.yourdomain.com, etc.) ¡Esto es importante! Esto debe coincidir con lo que configura el CSR y lo que su CA le proporcionó. Si solicitó un comodín, su CA debe haber aprobado y generado un comodín y debe usar lo mismo. Si se generó su CSR para foo.yourdomain.com, debe proporcionar lo mismo en este paso.

Debe usar la herramienta Makecert.

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

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

Dónde <CertifcateName> = El nombre de su certificado para crear.

Luego, puede abrir el Snap-In del Administrador de certificados para la consola de administración escribiendo certmgr.msc en el menú Inicio, haga clic en Personal> Certificados> y su certificado debe 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

((Las citas relevantes del artículo están a continuación))

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 privado que creó en el Paso 4.
  • SPC - YourCertFile.Cer es el archivo de certificado que creó en el Paso 4.
  • PFX - HISPFXFILE.PFX es el nombre del archivo .pfx que creará.
  • PO - HisPFXPassword es la contraseña que desea asignar al archivo .pfx. Se le solicitará esta contraseña cuando agrega el archivo .pfx a un proyecto en Visual Studio por primera vez.

(Opcionalmente (y no para el OP, sino para futuros lectores), puede crear el archivo .cer y .pvk desde cero) (lo haría antes de lo anterior). Tenga en cuenta que los MM/DD/YYYY son marcadores de posición para las fechas de inicio y finalización. Consulte el artículo de 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

Obtuve un enlace con su requisito.Combine los archivos CRT y clave en un PFX con OpenSSL

Extractos del enlace anterior:

Primero necesitamos extraer el certificado de CA root del archivo .CRT existente, porque necesitamos esto más adelante. Así que abra el .crt y haga clic en la pestaña Ruta de certificación.

Haga clic en el certificado superior (en este caso VeriSign) y presione el certificado de vista. Seleccione la pestaña Detalles y presione la copia al archivo ...

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

Cambíe el nombre de 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. Nosotros podemos Descargar e instálelo en Windows, o simplemente abra 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, exportar el certificado, elija .pfx Formato, 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 ha solicitado el certificado.

  3. El archivo importado se puede cargar al servidor.

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

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

Ejecutarlo, seleccione un archivo y obtenga su *.pfx !!

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

Como 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 ajuste de los certificados a MMC y elegir para qué cuenta debe administrar los certificados. Elija la computadora local. Si su certificado no está allí, importárelo haciendo clic derecho en la tienda y eligiendo todas las tareas> importar.

Ahora navegue a su certificado importado en la versión local de la computadora del certificado. Haga clic derecho en el certificado y elija todas las tareas> Exportar. La segunda página del asistente de exportación debe 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 de exportar la clave privada no está disponible en la cuenta de usuario actual).

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

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

Aunque probablemente sea más fácil generar una nueva RSE usando 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 programa.

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

  • Ejecutar MMC como administrador
  • Una vez que obtenga el certificado del CA (CRT + P7B), importe (Certificados personales y la Autoridad de Certificación Intermedia Certificados)
  • IMPORTANTE: Haga clic derecho en su nuevo certificado (personal certificados) Todas las tareas ... gestión de 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 ... Exporta, y debería poder exportar el certificado, incluida la clave privada como un archivo PFX, ¡y puede cargarlo en Azure!

¡Espero que esto ayude!

Sé que algunos usuarios han hablado de instalar esto y aquello y agregar programas de líneas de comandos y descargar ...

Personalmente, soy flojo y encuentro todos estos métodos engorrosos y lentos, además no quiero descargar nada y encontrar las líneas CMD correctas si no tengo que hacerlo.

La mejor manera para mí en mi servidor IIS personal es usar RapidsSlonline. Esta es una herramienta que está en un servidor le permite cargar su certificado y clave privada y puede generar un archivo PFX para usted 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 el tipo de corriente = PEM
  2. Cambiar para = PFX
  3. Sube tu certificado
  4. Sube tu clave privada
  5. Si tiene certificaciones de CA o certs intermedios, los suban también
  6. Establezca una contraseña de su elección, utilizada en IIS
  7. Haga clic en Recaptcha para demostrar que no es un bot
  8. Haga clic en Convertir

Y eso es todo, debe descargar un PFX y usarlo en su proceso de importación en IIS.

Espero que esto ayude a otras personas tecnológicas perezosas y mentales.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top