Primeiro, alguns pontos que provavelmente são iguais para você
- Eu estava tentando atualizar um certificado porque ele expirou.
- Eu tenho vários domínios vinculados ao mesmo IP. Eles são um certificado de SAN, mas isso provavelmente é irrelevante.
- Eu estava tentando usar o armazenamento de certificados centralizado. Mais uma vez, acho que isso é irrelevante para a maioria das minhas respostas.
- Eu já havia tentado atualizar o certificado, mas ele não estava mostrando a nova data.
- Você provavelmente está em pânico agora se seu certificado antigo já tiver expirado. Respire fundo...
Primeiro, recomendo ir https://www.digicert.com/help/
e fazer o download da ferramenta DigiCert. Você também pode usá-lo online.
Entre no seu site https://example.com
e ele mostrará a data de validade e a impressão digital (o que a MS chama de hash do certificado). Ele faz uma pesquisa em tempo real para que você não precise se preocupar se o seu navegador (ou servidor intermediário) está armazenando em cache algo.
Se você estiver usando o armazenamento de certificados centralizado, convém ter 100% de certeza de que o arquivo .pfx é a versão mais recente. Acesse o diretório de armazenamento e execute este comando:
C:\WEBSITES\SSL> certutil -dump www.example.com.pfx
Isso mostrará a data de vencimento e a hash / impressão digital. Obviamente, se essa data de vencimento estiver incorreta, você provavelmente apenas exportou o certificado errado para o sistema de arquivos; portanto, corrija-o primeiro.
Se você estiver usando o CCS, assumindo que este comando certutil fornece a data de vencimento esperada (do seu certificado atualizado), você pode prosseguir.
Execute o comando:
netsh http show sslcert > c:\temp\certlog.txt
notepad c:\temp\certlog.txt
Você provavelmente tem um monte de coisas aqui, então é mais fácil abri-lo em um editor de texto.
Você desejará procurar neste arquivo o hash ERRADO que você obteve digicert.com
(ou a impressão digital que você obteve no Chrome).
Para mim, isso rendeu o seguinte. Você verá que ele está vinculado a um IP e não ao meu nome de domínio esperado. Este é o problema. Parece que isso (por qualquer motivo, não tenho certeza) tem precedência sobre o conjunto de ligações no IIS que eu acabei de atualizar example.com
.
IP:port : 10.0.0.1:443
Certificate Hash : d4a17e3b57e48c1166f18394a819edf770459ac8
Application ID : {4dc3e181-e14b-4a21-b022-59fc669b0914}
Certificate Store Name : My
Verify Client Certificate Revocation : Enabled
Verify Revocation Using Cached Client Certificate Only : Disabled
Usage Check : Enabled
Revocation Freshness Time : 0
URL Retrieval Timeout : 0
Ctl Identifier : (null)
Ctl Store Name : (null)
DS Mapper Usage : Disabled
Negotiate Client Certificate : Disabled
Eu nem sei de onde veio essa ligação - eu não tenho nenhuma ligação SSL no meu site padrão, mas esse servidor tem alguns anos e acho que algo ficou corrompido e preso.
Então você vai querer excluí-lo.
Para garantir a segurança, execute o seguinte comando primeiro para garantir que você esteja excluindo apenas este item:
C:\Windows\system32>netsh http show sslcert ipport=10.0.0.1:443
SSL Certificate bindings:
-------------------------
IP:port : 10.0.0.1:443
Certificate Hash : d4a17e3b57e48c1166f18394a819edf770459ac8
Application ID : {4dc3e181-e14b-4a21-b022-59fc669b0914}
Certificate Store Name : My
Verify Client Certificate Revocation : Enabled
Verify Revocation Using Cached Client Certificate Only : Disabled
Usage Check : Enabled
Revocation Freshness Time : 0
URL Retrieval Timeout : 0
Ctl Identifier : (null)
Ctl Store Name : (null)
DS Mapper Usage : Disabled
Negotiate Client Certificate : Disabled
Agora, verificamos que esta é a impressão digital 'ruim' e, como único registro esperado, podemos excluí-la com este comando:
C:\Windows\system32>netsh http delete sslcert ipport=10.0.0.1:443
SSL Certificate successfully deleted
Felizmente, se você agora voltar ao Digicert e executar novamente o comando, ele fornecerá a impressão digital do certificado esperado. Você deve verificar todos os nomes de SAN, se tiver algum, apenas para ter certeza.
Provavelmente, quero IISRESET aqui para garantir que não haja surpresas mais tarde.
Nota final: se você estiver usando o armazenamento centralizado de certificados e estiver vendo um comportamento irregular, tentando determinar se está pegando seu certificado a partir daí ou não, não se preocupe - a culpa não é sua. Às vezes, parece que os arquivos são novos imediatamente, mas os antigos são armazenados em cache. Abrir e salvar novamente a ligação SSL após fazer qualquer tipo de alteração parece redefini-la, mas não 100% do tempo.
Boa sorte :-)
[::1]:443
enquanto a atualização do certificado no IIS atualizava apenas o registro0.0.0.0:443
. Obrigado!