Como posso criar um certificado autoassinado mais forte que SHA-1?

Como posso criar um certificado autoassinado mais forte que SHA-1?

Para ambiente de desenvolvimento, posso criar um certificado autoassinado no IIS7.5. Mas esse certificado é SHA-1 e recentemente os navegadores estão reclamando disso. Quando abro o FireBug, vejo os seguintes avisos:

"Este site utiliza um certificado SHA-1; é recomendado que você use certificados com algoritmos de assinatura que usam funções hash mais fortes que SHA-1."

Então minhas perguntas são:

1) Existe uma maneira de criar um certificado autoassinado mais forte que o SHA-1?

2) Caso contrário, existe uma maneira de dizer ao navegador para parar de mostrar esses avisos?

ATUALIZAR

Acabei usando a resposta do @vcsjones, mas isso só me levou até certo ponto. Existem alguns problemas que tive que resolver antes de fazê-lo funcionar.

1) Por algum motivo não consegui importar o certificado com senha. Então acabei criando um sem.

2) Quando importei o certificado .pfx via IIS, continuei recebendo "Uma sessão de logon especificada não existe" quando tentei aplicar o novo certificado em Editar vinculações. Então pesquisei um pouco e descobri issoEntão respondepara ser útil, especificamente a resposta de Mike L.

Outra coisa que gostaria de acrescentar é que quando você estiver importando um certificado, lembre-se de selecionar o certificado .pfx. A seleção padrão do assistente de importação é *.cer, que você pode importar (erro que cometi), mas não consegui ver o certificado nos Certificados do servidor IIS. Quando olhei mais de perto, faltava uma pequena chave no ícone. Agora, eu pesquisei que consegui consertá-lo viaKB-889651artigo. Portanto, certifique-se de importar .pfx e ele funcionará sem reparo.

Outra observação: se você estiver tendo problemas de confiança com este certificado, importe-o também para a "Autoridade de certificação raiz confiável".

Responder1

Claro. Omakecertutilitário que faz parte do Windows SDK pode fazer isso:

makecert -len 2048 -r -a sha256 -sv private.pvk -n CN=localhost cert.cer

O -aparâmetro define o algoritmo hash. Isso gera um arquivo PVK e DER .cer. É claro que você também pode alterar o nome comum para qualquer coisa que desejar. Usei apenas localhost como exemplo. Você pode combiná-los em um PFX (o que o IIS prefere usar ao importar um certificado) usando pvk2pfx(também parte do SDK):

pvk2pfx -spc cert.cer -pvk private.pvk -pfx out.pfx

Isso apenas pega os dois arquivos makecertgerados e os combina em um arquivo .pfx PKCS12.

Com o arquivo PFX resultante, você abriria o IIS e o importaria em Certificados de Servidor e, em seguida, alteraria as ligações do seu site para usar o novo certificado.

Responder2

Estou usando um computador Windows 7 Enterprise bloqueado no trabalho e, como tal, não consigo instalar o SDK do Windows para obter acesso ao makecert. Veja como criei meu certificado autoassinado sha256 (retirado dehttps://core.telegram.org/bots/self-signed):

  1. Decida em qual diretório você deseja salvar seu certificado
  2. Crie um arquivo de texto nesse diretório chamado template.txtcom o seguinte conteúdo:

    [NewRequest]
    
    ; At least one value must be set in this section
    Subject = "CN={your.domain.com}"
    KeyLength = 2048
    KeyAlgorithm = RSA
    HashAlgorithm = sha256
    ;MachineKeySet = true
    RequestType = Cert
    UseExistingKeySet=false ;generates a new private key (for export)
    Exportable = true ;makes the private key exportable with the PFX
    
  3. Substitua {your.domain.com}pelo endereço que você usará para acessar seu site, por exemplo"CN=localhost"

  4. Abra um prompt de comando e mude para o diretório do seu certificado
  5. Corrercertreq -new template.txt RequestFileOut
  6. Você precisará saber o número de série, então corra certutil -store -user mypara obter um dump que inclua o número de série
  7. Substitua {SERIALNUMBER}pelo número de série no dump e {YOURDER}.crtpelo nome do arquivo de saída:certutil -user -store -split my {SERIALNUMBER} {YOURDER}.crt
  8. Substitua {YOURDER}.crtpelo nome do arquivo de entrada e {YOURPEM}.cerpelo nome do arquivo de saída:certutil -encode {YOURDER}.crt {YOURPEM}.cer
  9. Substitua {your.domain.com}pelo seu nome de domínio real (teste) e {YOURPKCS}.pfxpelo nome do arquivo de saída:certutil -exportpfx -user {your.domain.com} {YOURPKCS}.pfx NoChain

Depois disso fui para o Gerenciador do IIS, Sites -> {nome do site} -> Ligações... (em "Editar Site"). Cliquei então em https/443 porque já tinha configurado, Editar... e selecionei o novo certificado da lista.

O Firefox reclamou que meu site estava usando um certificado autoassinado, então adicionei-o como uma exceção e voilà! funcionou!

Responder3

Sim, também recebi a mensagem de erro/aviso "Uma sessão de logon especificada não existe".

Acabei de clicar em OK uma segunda vez e ele aceitou.

informação relacionada