Como criar arquivo .pfx de certificado e chave privada?

Eu preciso do arquivo .pfx para instalar https no site no IIS.

Eu tenho dois arquivos separados: certificado (.cer ou pem) e chave privada (.crt), mas o IIS aceita apenas arquivos .pfx.

Eu obviamente instalei o certificado e ele está disponível no gerenciador de certificados (mmc), mas quando eu seleciono o Assistente de Exportação de Certificado não consigo selecionar o formato PFX (ele está em cinza)

Existem algumas ferramentas para fazer isso ou exemplos c # de fazer isso de forma programática?

Você precisará usar o openssl.

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

O arquivo de chave é apenas um arquivo de texto com sua chave privada.

Se você tiver uma CA raiz e certificados intermediários, inclua-os também usando vários parâmetros

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

Você pode instalar o openssl daqui: openssl

O utilitário de linha de comando Microsoft Pvk2Pfx parece ter a funcionalidade que você precisa:

Pvk2Pfx (Pvk2Pfx.exe) é uma ferramenta de linha de comando que copia informações de chave pública e chave privada contidas em arquivos .spc, .cer e .pvk em um arquivo Personal Information Exchange (.pfx).
http://msdn.microsoft.com/en-us/library/windows/hardware/ff550672(v=vs.85).aspx

Nota: se você precisa / quer / prefere uma solução C #, então você pode querer considerar o uso da http://www.bouncycastle.org/ api.

Se você estiver procurando por uma GUI do Windows, confira o DigiCert. Eu usei isso e foi bastante simples.

Na guia SSL, importei primeiro o certificado. Então, quando eu selecionei o certificado, consegui exportar como um PFX, com e sem um arquivo de chaves.

https://www.digicert.com/util

Você não precisa de openssl ou makecert ou nada disso. Você também não precisa da chave pessoal dada a você pela sua CA. Eu quase posso garantir que o problema é que você espera poder usar os arquivos chave e cer fornecidos pelo seu CA, mas eles não são baseados no “modo IIS”. Estou tão cansado de ver informações ruins e difíceis aqui que resolvi postar no blog o assunto e a solução. Quando você percebe o que está acontecendo e vê como é fácil, você vai querer me abraçar 🙂

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

Use a interface do usuário IIS “Server Certificates” para “Generate Certificate Request” (os detalhes dessa solicitação estão fora do escopo deste artigo, mas esses detalhes são críticos). Isso lhe dará um CSR preparado para o IIS. Em seguida, você entrega esse CSR à sua CA e solicita um certificado. Então você pega o arquivo CER / CRT que eles lhe dão, volta para o IIS, “Complete Certificate Request” no mesmo lugar que você gerou o pedido. Pode pedir um .CER e você pode ter um .CRT. Eles são a mesma coisa. Apenas mude a extensão ou use o . extensão suspensa para selecionar seu .CRT. Agora forneça um “nome amigável” apropriado (* .seudominio.com, seudominio.com.br, foo.seudominio.com.br, etc.) ISTO É IMPORTANTE! Isso DEVE corresponder ao que você configurou o CSR e o que sua CA forneceu a você. Se você solicitou um curinga, sua autoridade de certificação deve ter aprovado e gerado um curinga e você deve usar o mesmo. Se o seu CSR foi gerado para foo.seudominio.com, você DEVE fornecer o mesmo nesta etapa.

Eu tenho um link com sua exigência. Combine arquivos CRT e KEY em um PFX com o OpenSSL

Extratos do link acima:

Primeiro, precisamos extrair o certificado da CA raiz do arquivo .crt existente, porque precisamos disso mais tarde. Então abra o arquivo .crt e clique na aba Caminho de Certificação.

Clique no certificado mais alto (neste caso, VeriSign) e clique em Exibir certificado. Selecione a guia Detalhes e clique em Copiar para arquivo…

Selecione o certificado X.509 (.CER) codificado na Base 64 Salve como rootca.cer ou algo similar. Coloque-o na mesma pasta que os outros arquivos.

Renomeie de rootca.cer para rootca.crt Agora devemos ter 3 arquivos em nossa pasta a partir dos quais podemos criar um arquivo PFX.

Aqui é onde precisamos do OpenSSL. Podemos baixá-lo e instalá-lo no Windows ou simplesmente abrir o terminal no OSX.

EDITAR:

  1. Existe um link de suporte com informações passo a passo sobre como instalar o certificado.

  2. Depois de instalar com sucesso, exporte o certificado, escolha o formato .pfx , inclua a chave privada.

    Nota importante :: Para exportar o certificado no formato .pfx, é necessário seguir as etapas na mesma máquina a partir da qual solicitou o certificado .

  3. O arquivo importado pode ser enviado para o servidor.

Você precisa usar a ferramenta makecert.

Abra um prompt de comando como admin e digite o seguinte:

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

Onde = o nome do seu a ser criado.

Em seguida, você pode abrir o snap-in do Gerenciador de Certificados para o console de gerenciamento digitando certmgr.msc no menu Iniciar, clique em personal> certificates> e seu certificado deverá estar disponível.

Aqui está um artigo.

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

https://msdn.microsoft.com/pt-br/library/ff699202.aspx

((citações relevantes do artigo estão abaixo))

Em seguida, você deve criar o arquivo .pfx que será usado para assinar suas implantações. Abra uma janela de prompt de comando e digite o seguinte comando:

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

Onde:

  • pvk – yourprivatekeyfile.pvk é o arquivo de chave privada que você criou na etapa 4.
  • spc – yourcertfile.cer é o arquivo de certificado que você criou na etapa 4.
  • pfx – yourpfxfile.pfx é o nome do arquivo .pfx que será criado.
  • po – yourpfxpassword é a senha que você deseja atribuir ao arquivo .pfx. Você será solicitado para essa senha quando você adiciona o arquivo .pfx a um projeto no Visual Studio pela primeira vez.

(Opcionalmente (e não para o OP, mas para futuros leitores), você pode criar o arquivo .cer e .pvk a partir do zero) (você faria isso ANTES do anterior). Observe o mm / dd / aaaa são espaços reservados para datas de início e término. veja o artigo msdn para documentação completa.

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

Esta é, de longe, a maneira mais fácil de converter * .cer em arquivos * .pfx:

Basta baixar o conversor de certificado portátil da DigiCert: https://www.digicert.com/util/pfx-certificate-management-utility-import-export-instructions.htm

Execute-o, selecione um arquivo e obtenha o seu * .pfx !!

Eu criei o arquivo .pfx de arquivos .key e .pem.

Como este openssl pkcs12 -inkey rootCA.key -in rootCA.pem -export -out rootCA.pfx

Quando você diz que o certificado está disponível no MMC, ele está disponível em “Usuário atual” ou “Computador local”? Eu descobri que só posso exportar a chave privada se ela estiver em Computador Local.

Você pode adicionar o snap-in para Certificados no MMC e escolher para qual conta ele deve gerenciar os certificados. Escolha o computador local. Se o seu certificado não estiver lá, importe-o clicando com o botão direito do mouse na loja e escolhendo Todas as tarefas> Importar.

Agora, navegue até o certificado importado na versão Computador local do snap de certificado. Clique com o botão direito do mouse no certificado e escolha Todas as tarefas> Exportar. A segunda página do assistente de exportação deve perguntar se você deseja exportar a chave privada. Selecione Sim. A opção PFX agora será a única disponível (ela estará desativada se você selecionar não e a opção de exportar a chave privada não estiver disponível na conta Usuário atual).

Você será solicitado a definir uma senha para o arquivo PFX e, em seguida, definir o nome do certificado.

Eu estava tendo o mesmo problema. Meu problema era que o computador que gerava a solicitação de certificado inicial havia travado antes que o processo de validação ssl estendido fosse concluído. Eu precisava gerar uma nova chave privada e depois importar o certificado atualizado do provedor de certificado. Se a chave privada não existir no seu computador, você não poderá exportar o certificado como pfx. Eles opção é acinzentado.

Embora seja provavelmente mais fácil gerar um novo CSR usando o IIS (como o @rainabba disse), supondo que você tenha os certificados intermediários, existem alguns conversores on-line – por exemplo: https://www.sslshopper.com/ssl-converter. html

Isso permitirá que você crie um PFX a partir do seu certificado e chave privada sem ter que instalar outro programa.

Na maioria dos casos, se você não conseguir exportar o certificado como um PFX (incluindo a chave privada) é porque o MMC / IIS não pode encontrar / não tem access à chave privada (usada para gerar o CSR). Estas são as etapas que segui para corrigir esse problema:

  • Executar o MMC como administrador
    • Gere o CSR usando o MMC. Siga estas instruções para tornar o certificado exportável.
  • Depois de obter o certificado da CA (crt + p7b), importe-os (Personal \ Certificates e Intermediate Certification Authority \ Certificates)
  • IMPORTANTE: Clique com o botão direito do mouse em seu novo certificado (Personal \ Certificates) All Tasks..Manage Private Key e atribua permissions à sua conta ou Everyone (arriscado!). Você pode voltar às permissions anteriores depois de terminar.
  • Agora, clique com o botão direito do mouse no certificado e selecione All Tasks..Export, e você poderá exportar o certificado incluindo a chave privada como um arquivo PFX, e poderá carregá-lo no Azure!

Espero que isto ajude!

Eu sei que alguns usuários falaram sobre instalar isto e aquilo e adicionar programas de linhas de comando e baixar …

Pessoalmente eu sou preguiçoso e acho todos esses methods pesados ​​e lentos, mais eu não quero baixar nada e encontrar as linhas de cmd corretas se eu não precisar.

A melhor maneira para mim no meu servidor IIS é usar o RapidSSLOnline. Esta é uma ferramenta que está em um servidor e permite que você faça o upload de seu certificado e chave privada e seja capaz de gerar um arquivo pfx para você, que você pode importar diretamente para o IIS.

O link está aqui: https://www.rapidsslonline.com/ssl-tools/ssl-converter.php

Abaixo estão as etapas usadas para o cenário solicitado.

  1. Selecione o tipo atual = PEM
  2. Alterar para = PFX
  3. Envie seu certificado
  4. Envie sua chave privada
  5. Se você tiver certificado ROOT CA ou certificados intermediários, faça o upload deles também
  6. Definir uma senha de sua escolha, usada no IIS
  7. Clique no reCaptcha para provar que você não é um bot
  8. Clique em Converter

E é isso que você deve ter um PFX baixado e usar isso no seu processo de importação no IIS.

Espero que isso ajude outros como pessoas de tecnologia preguiçoso, preguiçoso.