Algum tempo atrás eu configurei um servidor SMTP em uma máquina Windows Server 2019. O FQDN para este servidor é smtp.mydomain.com e o host inteligente está definido como smtp-relay.gmail.com, embora eu não ache que isso seja importante.
Instalei um certificado curinga (*.mydomain.com) gerado pelo Let's Encrypt CA para o armazenamento pessoal e consegui configurar o TLS para o servidor SMTP:
Agora, quero atualizar o certificado. Para isso, instalei um certificado atualizado com o mesmo assunto (CA=*.mydomain.com) gerado pela mesma CA para o repositório Pessoal. Então eu parei o servidor SMTP e deletei o certificado antigo. Depois disso, iniciei o servidor e fui verificar se o novo certificado havia sido capturado, mas não foi!
A mensagem informa que "TLS não está disponível sem um certificado". isso significa que o servidor SMTP não pode encontrar o certificado correto. Li uma dúzia de blogs e QAs, mas não consegui resolver isso.
Alguém sabe como atualizar corretamente um certificado para um servidor SMTP em uma máquina Windows Server 2019?
Update -- O novo certificado contém uma chave privada e funciona bem para um servidor web rodando na mesma máquina.
Eu tenho o mesmo problema com algumas diferenças.
Estou no meio da investigação, minhas descobertas até agora:
Não uso certificado curinga, tenho certificado Let's Encrypt com SANs. Funcionou por vários meses, três renovações foram feitas sem nenhum problema. Agora, após a quarta renovação, o SMTP parou de funcionar. O último certificado de trabalho foi emitido em 28-07-2020, a renovação foi feita em 22-09-2020. Se o certificado é a raiz do problema, então houve alguma mudança no lado da Let's Encrypt neste período de tempo.
O comportamento é estranho. Quando o serviço smtpsvc é iniciado, ele encontra o certificado, registra
Um certificado de servidor TLS foi encontrado para a instância de servidor virtual SMTP '1' com impressão digital <certificate_thumbprint_removed>. O TLS estará disponível para este servidor virtual.
no Log de Eventos, mas no Gerenciador de Serviços de Informações da Internet (IIS) 6.0 nas propriedades do Servidor Virtual SMTP na guia Acesso na seção Comunicação segura posso ver
O TLS não está disponível sem um certificado.
Tinha que haver algumas mudanças no próprio certificado, ou havia algumas atualizações do Windows alterando a funcionalidade smtpsvc ou havia algumas mudanças em relação ao SSL/TLS.
A propósito, descobri que a Microsoft tem um bug no código do serviço smtpsvc. Se você usar um certificado com nomes alternativos de assunto (SAN), quando ele procurar por um certificado adequado, ele não verificará o nome comum (CN), ele verificará apenas a primeira entrada na lista SAN! Se a primeira SAN corresponder ao FQDN digitado na aba Delivery, botão Advanced..., no campo Fully-qualified domain name, o smtpsvc utilizará o certificado. Se o nome correspondente estiver no CN ou no segundo, terceiro, etc. lugar na lista SAN, ele não usará o certificado e o log
Nenhum certificado de servidor TLS utilizável para a instância de servidor virtual SMTP '1' foi encontrado. O TLS será desabilitado para este servidor virtual.
Encontramos o mesmo problema - curinga substituído por curinga, mas acabou que tivemos que usar o curinga herdado em vez do normal e, em seguida, desligar o tls de saída, reiniciar o smtp, ativar o tls, reiniciar novamente e depois disso estava funcionando conforme o esperado .