Let's Encrypt X3 악몽

오늘부터 mail-receiver 앱을 사용할 때 다음과 같은 오류가 발생합니다. 이전에는 정상적으로 작동했습니다.

이메일을 Discourse로 API를 통해 전송하려고 하고 있습니다. DST Root CA X3 인증서 만료로 인한 문제일 수 있을까요?

만약 그렇다면 해결 방법에 대해 아는 분이 있을까요? 앱과 mail-receiver를 다시 빌드하고, Let’s Encrypt 인증서를 다시 생성하는 등 여러 방법을 시도해 보았습니다.

<19>Sep 30 22:07:26 receive-mail[96]: Failed to POST the e-mail to https://forum.validadortiss.com.br/admin/email/handle_mail: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError)

@wlandgraf님, 보고해 주셔서 감사합니다. 새 메일 수신기 이미지를 최대한 빨리 Dockerhub에 배포하겠습니다.

Dockerhub의 release 태그가 이제 업데이트되었습니다. 공식 설정 지침을 따랐다면 다음 명령을 실행하여 새로운 이미지를 가져올 수 있습니다.

cd /var/discourse
./launcher rebuild mail-receiver

안녕하세요 @david, 빠른 답변 정말 감사합니다. 하지만 제 문제는 아직 해결되지 않았습니다. 여전히 동일하게 발생하고 있습니다.

/var/discourse/containers/mail-receiver.yml 파일에서 base_image: 줄에 어떤 값이 설정되어 있나요? 아래와 같아야 합니다:

base_image: discourse/mail-receiver:release

(상세한 정보는 여기에서 확인하실 수 있습니다.)

네, 제게 있는 게 바로 그거예요.

이것은 내 파일의 시작 부분입니다:

## this is the incoming mail receiver container template
##
## After making changes to this file, you MUST rebuild
## /var/discourse/launcher rebuild mail-receiver
##
## BE *VERY* CAREFUL WHEN EDITING!
## YAML FILES ARE SUPER SUPER SENSITIVE TO MISTAKES IN WHITESPACE OR ALIGNMENT!
## visit http://www.yamllint.com/ to validate this file as needed

base_image: discourse/mail-receiver:release
update_pups: false

expose:
  - "25:25"   # SMTP

그리고 여기 재빌드 작업의 (부분) 출력 결과가 있습니다. (API 키가 포함된 부분은 생략했습니다):

Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 60 mail-receiver
mail-receiver
cd /pups && /pups/bin/pups --stdin
sha256:5f123a8eb11784828d5195ee0f328a0ea5a5d2ce36eeae1760e3d47b0dbeb15c
165ebaa91836a07696924f95d3746cbd1cc14412f478ba715ee40f502780ab7a
Removing old container
+ /usr/bin/docker rm mail-receiver
mail-receiver
``

다음 명령어를 시도해 볼 수 있나요?

docker pull discourse/mail-receiver:release
cd /var/discourse
./launcher rebuild mail-receiver

그렇게 하니까 해결됐네요! 정말 감사합니다! 괜찮으시다면 몇 가지 질문이 있습니다:

  1. 왜 그렇게 해야 했나요? 빌드하기 전에 항상 수동으로 최신 이미지를 받아와야 하나요?
  2. 앱을 다시 빌드할 때도 같은 절차(docker pull)를 따라야 하나요?
  3. 재빌드 후 발송된 이메일은 도착했지만, 이전에 발송된 이메일은 도착하지 않았습니다. 그 이메일들이 유실된 건가요?

Docker 설치 과정에서 :release 태그가 캐시된 것으로 보입니다. 향후 Docker pull이 필요 없도록, launcher 스크립트에 일부 로직을 추가할 수 있습니다.

app 이미지는 다르게 처리되므로, 캐싱 문제는 발생하지 않습니다.

장애 발생 중에 발송된 이메일은 “일시적 실패” 상태로 발신 서버로 반환되었을 것입니다. 해당 서버는 주기적으로 메일 전송을 재시도하므로, 앞으로 몇 시간 안에 누락된 이메일이 도착할 것으로 예상됩니다.

훌륭합니다. 빠른 응답에 다시 한번 감사드립니다. 전 세계가 이 루트 CA X3 문제로 고통받고 있는데, 이제 당신이 세상을 조금 더 나은 곳으로 만드는 데 기여하게 되었습니다. :smiley:

메일 수신기가 업데이트가 필요한지, 그리고 docker pull이 필요한지 어떻게 감지할 수 있는지 단서가 있을까요?

오늘 이전에 설치된 모든 메일 수신기는 업데이트가 필요합니다. (기술적으로, 67222bded865보다 이전의 베이스 이미지를 사용한 설치입니다)

launcher가 업데이트될 때까지 docker pull이 필요합니다. (오늘/내일 업데이트될 가능성은 낮습니다). 많은 사이트에서 불편을 겪을 것으로 알고 있어, 여기 공지 주제를 게시했습니다. docker pull을 포함한 업데이트 지침이 포함되어 있습니다: