AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 1022772
Accepted
Caynadian
Caynadian
Asked: 2020-06-25 08:42:18 +0800 CST2020-06-25 08:42:18 +0800 CST 2020-06-25 08:42:18 +0800 CST

Exchange 2016 Server rejeitando certificado como expirado

  • 772

Temos emails enviados usando TLS de um servidor Web Windows 2012R2 (não associado ao domínio) em nossa DMZ para nosso servidor Exchange 2016 interno (também em execução no Windows 2012R2). Isso estava funcionando bem até cerca de um mês atrás, quando eles pararam de chegar (só percebemos agora porque os e-mails são muito raros). Forcei um email de teste e, quando olho os logs do protocolo de função de transporte, vejo o seguinte:

2020-06-24 11:02:33.524,
  MAILSERVER\Client Frontend MAILSERVER,
  0102030405060708,
  6,
  192.168.1.44:587,
  192.168.2.3:64961,
  *,
  " CN=*.example.com CN=Sectigo RSA Domain Validation Secure Server CA, O=Sectigo Limited, L=Salford, S=Greater Manchester, C=GB     
    0102030405060708090A0B0C0D0E0F10
    0102030405060708090A0B0C0D0E0F1011121314
    2020-03-17T19:00:00.000Z 
    2021-03-18T18:59:59.000Z 
    *.example.com;example.com",
  Sending certificate Subject Issuer name Serial number Thumbprint Not before Not after Subject alternate names

2020-06-24 11:02:33.540,
  MAILSERVER\Client Frontend MAILSERVER,
  0102030405060708,
  7,
  192.168.1.44:587,
  192.168.2.3:64961,
  *,
  ,
  TLS negotiation failed with error CertExpired

Você pode ver que as datas de validade do certificado são de 17 de março de 2020 a 18 de março de 2021.

O lado do cliente mostra o seguinte log de erros:

SERVER -> CLIENT: 220 mailserver.example.com Microsoft ESMTP MAIL Service ready at Wed, 24 Jun 2020 11:02:32 -0500
CLIENT -> SERVER: EHLO www.example.com
250-SIZE 36700160
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-STARTTLS
250-AUTH GSSAPI NTLM
250-8BITMIME
250-BINARYMIME
250 CHUNKING
CLIENT -> SERVER: STARTTLS
SERVER -> CLIENT: 220 2.0.0 SMTP server ready
Connection failed. Error #2: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:
error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed [E:\...\class-smtp.php line 374]SMTP Error: Could not connect to SMTP host.
CLIENT -> SERVER: QUIT
SERVER -> CLIENT: SMTP ERROR: QUIT command failed: Connection: closedSMTP Error: Could not connect to SMTP host.

O log de eventos no servidor de correio mostra o seguinte evento:

A fatal alert was received from the remote endpoint. The TLS protocol defined fatal alert code is 45.
- System 
 - Provider 
     [ Name]  Schannel 
     [ Guid]  {1F678132-5938-4686-9FDC-C8FF68F15C85} 
   EventID 36887 
   Version 0 
   Level 2 
   Task 0 
   Opcode 0 
   Keywords 0x8000000000000000 
 - TimeCreated 
     [ SystemTime]  2020-06-24 11:02:33.540386500
   EventRecordID 417754 
   Correlation 
 - Execution 
     [ ProcessID]  484 
     [ ThreadID]  1552 
   Channel System 
   Computer mailserver.example.com 
 - Security 
     [ UserID]  S-1-5-18 
- EventData 
    AlertDesc 45 

Mas, novamente, este evento indica apenas um certificado expirado.

Alguma ideia de por que o Exchange acha que o certificado expirou? Verifiquei a data/hora em ambas as máquinas e elas estão corretas ao segundo. Obrigado!

exchange ssl-certificate exchange-2016
  • 3 3 respostas
  • 634 Views

3 respostas

  • Voted
  1. dave_thompson_085
    2020-06-25T23:13:28+08:002020-06-25T23:13:28+08:00

    Suas informações não mostram os certificados de cadeia usados ​​- tente openssl s_client -connect $host:$port -servername $host -showcertsexecutar cada um dos blocos PEM resultantes openssl x509 -textou, se preferir, coloque-os em arquivos (separados) e clique duas vezes. (Se o OpenSSL 1.1.1 você não precisar mais do -servername $host.)

    Muitas CAs Comodo^WSectigo usaram uma ponte USERTrust-to-AddTrust que expirou em 30 de maio ; consulte https://security.stackexchange.com/questions/232978/how-to-fully-view-cross-signed-certificate-signatures e https://stackoverflow.com/questions/62107431/curl-error-60-ssl -certificate-problem-certificate-has-expired e como vinculado de ambos https://support.sectigo.com/articles/Knowledge/Sectigo-AddTrust-External-CA-Root-Expiring-May-30-2020 . Em particular, o único certificado com registro de transparência para o servidor Sectigo RSA DV é https://crt.sh/?id=924467861 sob USERTrust RSA, que possui quatro certificados conhecidos listados em https://crt.sh/?caid=1167portanto, se você estiver usando o AddTrust # 4860286, poderá ver que notAfter foi 30/05/2020 - apenas cerca de um mês atrás.

    • 2
  2. Joy Zhang
    2020-06-25T22:28:29+08:002020-06-25T22:28:29+08:00

    É exatamente o que joeqwerty disse acima, você verificou o serviço SMTP atribuído ao certificado ou vinculado ao conector?

    Você pode executar o comando abaixo para verificar:

    Get-ReceiveConnector | FL Identity,RemoteIPRanges,PermissionGroups,Auth*,TlsCertificateName
    

    Para obter mais detalhes: Configurando o nome do certificado TLS para conectores de recebimento do Exchange Server

    • 1
  3. Best Answer
    Caynadian
    2020-06-27T06:28:14+08:002020-06-27T06:28:14+08:00

    Então @dave_thompson_085 teve a ideia certa de que o problema era que o certificado AddTrust que estava na raiz da minha cadeia de certificados havia expirado. Depois de corrigir o problema no servidor Exchange (recriando o arquivo de certificado PFX sem a raiz AddTrust e importando-o novamente), ainda estava recebendo o mesmo erro. Eu configurei um segundo cliente e tentei enviar um e-mail e descobri que funcionou corretamente, então eu sabia que o problema tinha que ser com a máquina do cliente. Usando o WireShark no servidor Exchange, observei o tráfego TLS entre as duas máquinas e pude ver que o servidor Exchange enviaria o certificado e seu certificado pai imediato (Certigo CA cert) e, em seguida, o cliente o rejeitaria como expirado (mesmo que ambos certificados eram válidos). Eu assumi que o cliente deve estar verificando os certificados recebidos e, de alguma forma, descobrindo que eles estão encadeados na raiz AddTrust expirada. Os e-mails estavam sendo enviados pelo PHPMailer, então eu olhei nas configurações do PHP e descobri que ele tinha um pacote CA que ele usa (pois o PHP não pode usar o Windows Certificate Store aparentemente). Olhando nesse pacote de CA, encontrei e removi o certificado AddTrust e isso corrigiu o problema.

    • 0

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve