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

8

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

"Este site faz uso de um certificado SHA-1; é recomendado que você use certificados com algoritmos de assinatura que usem funções hash mais strongs que o SHA-1."

Então, minhas perguntas são:

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

2) Se não, existe uma maneira de dizer ao navegador para parar de mostrar esses avisos?

UPDATE

Acabei usando a resposta @vcsjones, mas isso só me levou até agora. Lá nós tivemos alguns problemas que tivemos que resolver antes de fazer o trabalho.

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

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 Ligações. Então eu fiz pouca pesquisa e encontrei este SO resposta para 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 eu não consegui ver o certificado nos Certificados do Servidor IIS. Quando olhei mais de perto, faltava uma pequena chave no ícone. Agora, pesquisei que consegui repará-lo por meio do artigo KB-889651 . Portanto, certifique-se de importar o .pfx e ele funcionará sem reparos.

Outra observação é que, se você tiver problemas de confiança com este certificado, importe-o para "Autoridade de Certificação Raiz Confiável" também.

    
por CrnaStena 19.05.2015 / 15:44

3 respostas

8

Claro. O utilitário makecert que faz parte do o Windows SDK pode fazer isso:

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

O parâmetro -a define o algoritmo hash. Isso mostra um arquivo PVK e DER .cer. Você pode também mudar o nome comum para qualquer coisa que você gostaria, eu usei apenas localhost como um 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 makecert gerados e os combina em um arquivo PKCS12 .pfx.

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

    
por 19.05.2015 / 17:46
6

Estou usando um computador com Windows 7 Enterprise bloqueado no trabalho e, como tal, não consigo instalar o Windows SDK para obter acesso a makecert . Aqui está como eu criei meu certificado auto-assinado sha256 (retirado de link ):

  1. Decida qual diretório você deseja salvar seu certificado em
  2. Crie um arquivo de texto nesse diretório chamado template.txt com 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 de certificados
  5. Executar certreq -new template.txt RequestFileOut
  6. Você precisará saber o número de série, por isso execute certutil -store -user my para obter um dump que inclua o número de série
  7. Substitua {SERIALNUMBER} pelo número de série no dump e {YOURDER}.crt pelo nome do arquivo de saída: certutil -user -store -split my {SERIALNUMBER} {YOURDER}.crt
  8. Substitua {YOURDER}.crt pelo nome do arquivo de entrada e {YOURPEM}.cer pelo 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}.pfx pelo 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"). Então cliquei em https / 443 porque eu já tinha configurado, Edit ... e selecionei o novo certificado da lista.

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

    
por 24.06.2016 / 02:01
0

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

Eu cliquei em OK uma segunda vez e aceitei.

    
por 19.04.2017 / 00:23