Jobs de email falhando após última atualização, falha na verificação do certificado (impossível obter certificado do emissor local)

Desculpe por outra pergunta redundante, pois vejo que há muitas solicitações de suporte semelhantes a esta, por exemplo: Email Notifications Failing after Update, mas nossa mensagem de erro é ligeiramente diferente:

“certificate verify failed (unable to get local issuer certificate)”

Isso ocorreu após a atualização em 11 de maio para a versão 2.9.0
from_version: a76256756fc8442eab960cc1c7d37a737efb5a69,
repository: /var/www/discourse, /var/www/discourse/plugins/styleguide

que vejo no GitHub afeta o sidekiq - ele está se tornando mais rigoroso de repente? Também estou abordando isso com nosso mailrelay, mas se eu puder dar a eles informações mais específicas sobre como corrigir isso, ou se estiver do lado do meu fórum (https://forum.solarfarmer.dnv.com/), isso nos ajudará a solucionar problemas mais rapidamente.

Obrigado por qualquer ajuda.

1 curtida

Este é o mesmo problema de Email Hostname Certificate Mismatch Causing sidekiq Queue Overload, Severe Site Instability

3 curtidas

@RGJ Tentei executar

openssl s_client -connect  smtp.mydomain.info:25 -starttls smtp -showcerts 2>&1|grep "depth=0"

mas ele não mostra nenhum outro domínio, apenas diz o mesmo erro do sidekiq: “unable to get local issuer certificate” e um monte de outras coisas. Tentei alterar as configurações de e-mail do app.yml para e de volta para o nosso relay de e-mail, e executar ./launcher rebuild app a cada vez, mas até agora nada funciona.

1 curtida

Existem três causas possíveis para isso:

  • certificado expirado
  • o nome do host no certificado é diferente do nome do host ao qual você está se conectando
  • nenhum certificado

Parece que você está enfrentando a última opção. A única resolução é garantir que você tenha um servidor SMTP configurado corretamente, que suporte STARTTLS e com um certificado correto.

3 curtidas

Obrigado @RGJ - mas por que esse problema só começou após a atualização para a versão 2.9.0? É porque o STARTTLS está sendo mais rigoroso na aplicação desse requisito. Nada mudou em nosso servidor de retransmissão de e-mail ou na configuração de e-mail do app.yml. O IP do site está na lista de permissões do servidor de retransmissão de e-mail, que é mantido pelo departamento de TI. Eu não tenho nenhum controle sobre isso. O CNAME do site também é controlado por nosso departamento de TI. Eles têm domínios diferentes, o CNAME é “dnv.com” e o servidor de retransmissão de e-mail é “dnvgl.com”, isso faz parte do problema? Estou buscando isso em paralelo com nosso departamento de TI, mas tentando dar a eles o máximo de informações possível. Peço desculpas pela minha ignorância, muito disso está além do meu conhecimento, então posso estar usando termos incorretos. Desculpe :frowning:

1 curtida

Como houve uma alteração onde o Discourse foi atualizado para o Rails 7 entre as versões 2.9.0.beta3 e beta4, isso causou o problema.

Veja Email Hostname Certificate Mismatch Causing sidekiq Queue Overload, Severe Site Instability - #47 by RGJ

3 curtidas

Nosso departamento de TI diz: "não há nada de errado com os certificados [para o retransmissor de e-mail], todos estão ativos e devidamente configurados para serem usados com o serviço smtp. Segundo - não ouvi falar de nenhum problema de outros serviços/clientes que estejam usando este retransmissor de e-mail." :cry:

1 curtida

TI criou uma nova conta de e-mail usando o office365 na microsoft, mas ainda estou tendo problemas. Agora recebo ReadTimeout ou SMTPAuthenticationError: Unrecognized authentication type

minha configuração atual:

DISCOURSE_SMTP_ADDRESS: smtp.office365.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: meu_nome_de_usuario
DISCOURSE_SMTP_PASSWORD: "minha_senha"  # as aspas são necessárias?
DISCOURSE_SMTP_ENABLE_START_TLS: true  # está correto?
DISCOURSE_SMTP_DOMAIN: outlook.com  
DISCOURSE_NOTIFICATION_EMAIL: meu_nome_de_usuario@minha_empresa.onmicrosoft.com

onde meu* são específicos para a nova conta de e-mail.

1 curtida

@RGJ Quero agradecer a todos pela ajuda. Finalmente, finalmente resolvi isso. O ajuste para office365 é usar DISCOURSE_SMTP_AUTHENTICATION: login.

O servidor smtp e configuração de porta do office365 são smtp.office365.com:587 com STARTTLS ativado, que é o padrão de qualquer forma.

E o nome de usuário é o endereço de e-mail completo na organização que usa o office365, geralmente minhaconta@minhaempresa.onmicrosoft.com. Isso pode ou não ser o mesmo que seu e-mail de notificação.

Aqui está minha configuração final:


  DISCOURSE_SMTP_ADDRESS: smtp.office365.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: minha_conta@minhaempresa.onmicrosoft.com
  DISCOURSE_SMTP_PASSWORD: minha_senha
  DISCOURSE_SMTP_ENABLE_START_TLS: true
  DISCOURSE_SMTP_DOMAIN: outlook.com
  DISCOURSE_NOTIFICATION_EMAIL: minha_conta@minhaempresa.com
  DISCOURSE_SMTP_AUTHENTICATION: login

De acordo com o Mail Tester, são 10 de 10!

2 curtidas

Estamos enfrentando o mesmo problema aqui com um servidor SMTP CONFIGURADO CORRETAMENTE usado por dezenas de outros serviços. O servidor SMTP utiliza um certificado curinga emitido pela Let’s Encrypt.

O erro diz: " (unable to get local issuer certificate)"

Eu acho que é um bug como descrito em Disabling starttls or certificate verification does not work any more

Exceto que você diz que tem um certificado válido. Então eu posso estar errado.

tente verificar o nome do domínio usando os comandos recomendados por @RGJ

openssl s_client -connect smtp.mydomain.info:25 -starttls smtp -showcerts 2>&1|grep "depth=0"

certifique-se de que seu domínio corresponda ao certificado retornado de openssl, se houver. Verifique também este tópico “Email Hostname Cert Mismatch Causing sidekiq…” vinculado acima

Além disso, o guia de solução de problemas de e-mail me ajudou muito. Tive que lê-lo atentamente várias vezes para obter o que precisava. Talvez você encontre algo lá?

1 curtida

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.