Primeiro alguns pontos que são provavelmente os mesmos 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 da minha resposta.
- Eu já havia tentado atualizar o certificado, mas ele não estava mostrando a nova data.
- Você provavelmente está em pânico agora mesmo se o seu certificado antigo já tiver expirado. Respire fundo ...
Primeiro, recomendo strongmente ir a https://www.digicert.com/help/
e fazer o download da ferramenta DigiCert. Você também pode usá-lo online.
Digite no seu site https://example.com
e ele mostrará a data de vencimento e a impressão digital (o que o 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á ou não fazendo cache de algo.
Se você estiver usando o armazenamento de certificados centralizado, será necessário ter 100% de certeza de que o arquivo .pfx é a versão mais recente. Vá para o diretório da loja e execute este comando:
C:\WEBSITES\SSL> certutil -dump www.example.com.pfx
Isso mostrará a data de vencimento e o hash / impressão digital. Obviamente, se esta data de validade estiver errada, você provavelmente exportou o certifcate errado para o sistema de arquivos, então vá e corrija-o primeiro.
Se você estiver usando o CCS, assumindo que esse comando certutil forneça a data de validade esperada (do certificado atualizado), você poderá continuar.
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á pesquisar este arquivo com o hash WRONG obtido de digicert.com
(ou a impressão digital obtida do Google Chrome).
Para mim, isso rendeu o seguinte. Você verá que 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ção no IIS que acabei de atualizar para 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 - nem tenho ligações SSL no meu site padrão, mas esse servidor tem alguns anos e acho que algo ficou corrompido e ficou preso.
Então você vai querer excluí-lo.
Para estar no lado seguro, você deverá executar o seguinte comando primeiro para ter certeza de que está 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 o registro único esperado é possível excluí-la com este comando:
C:\Windows\system32>netsh http delete sslcert ipport=10.0.0.1:443
SSL Certificate successfully deleted
Espero que, se você voltar agora ao Digicert e executar novamente o comando, ele receberá a impressão digital do certificado. Você deve verificar todos os nomes de SAN, se tiver algum, apenas para ter certeza.
Provavelmente, queira IISRESET aqui para garantir que não haverá surpresas mais tarde.
Nota final: Se você estiver usando o armazenamento de certificados centralizado e estiver vendo um comportamento irregular tentando determinar se ele está pegando seu certificado de lá ou não, não se preocupe - não é sua culpa. Parece que às vezes pega novos arquivos imediatamente, mas armazena os antigos. Abrir e salvar novamente a ligação SSL depois de fazer qualquer tipo de alteração parece redefini-la, mas não em 100% do tempo.
Boa sorte: -)