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. Omakecert
utilitá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 -a
parâ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 makecert
gerados 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):
- Decida em qual diretório você deseja salvar seu certificado
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
Substitua
{your.domain.com}
pelo endereço que você usará para acessar seu site, por exemplo"CN=localhost"
- Abra um prompt de comando e mude para o diretório do seu certificado
- Correr
certreq -new template.txt RequestFileOut
- Você precisará saber o número de série, então corra
certutil -store -user my
para obter um dump que inclua o número de série - 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
- 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
- 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"). 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.