메일 수신기와 자체 서명된 인증서 관련 문제?

리버스 프록시(http(s), SMTP) 뒤에 있는 셀프호스팅 Discourse 인스턴스에 대한 수신 이메일 설정을 시도하고 있습니다. 공개 도메인: public.example.com, 리버스 프록시 뒤의 호스트: internal.example.com. 해당 매뉴얼을 따랐으나 인증서 오류로 인해 막혀 있을 가능성이 있습니다. 리버스 프록시와 Discourse 컨테이너 사이의 내부 암호화에는 자체 서명 인증서를 사용하고 있습니다. 메일 컨테이너는 Discourse 컨테이너가 제시하는 자체 서명 인증서에 문제가 있는 것 같습니다. 해당 인증서는 체인된 인증서임에도 불구하고요. 무엇을 잘못했거나, 이 문제를 어떻게 더 디버깅할 수 있을까요?
메일 수신 컨테이너의 (관련) 로그 출력(./launcher logs mail-receiver)은 다음과 같습니다:

May 21 15:34:06 internal-mail-receiver postfix/qmgr[101]: BA3E16FDE7: from=<foo@example.com>, size=3836, nrcpt=1 (queue active)
<23>May 21 15:34:06 receive-mail[113]: Recipient: nobody@public.example.com<19>May 21 15:34:06 receive-mail[113]: Failed to POST the e-mail to https://internal.example.com/admin/email/handle_mail: SSL_connect returned=1 errno=0 state=error: certificate verify failed (unable to get local issuer certificate) (OpenSSL::SSL::SSLError)<19>May 21 15:34:06 receive-mail[113]:   /usr/lib/ruby/2.7.0/net/protocol.rb:44:in `connect_nonblock'
  /usr/lib/ruby/2.7.0/net/protocol.rb:44:in `ssl_socket_connect'
  /usr/lib/ruby/2.7.0/net/http.rb:1009:in `connect'
  /usr/lib/ruby/2.7.0/net/http.rb:943:in `do_start'
  /usr/lib/ruby/2.7.0/net/http.rb:932:in `start'
  /usr/lib/ruby/2.7.0/net/http.rb:1483:in `request'
  /usr/local/lib/site_ruby/mail_receiver/internal_mail_receiver.rb:43:in `process'
  /usr/local/bin/receive-mail:13:in `<main>'May 21 15:34:06 internal-mail-receiver postfix/pipe[112]: BA3E16FDE7: to=<nobody@public.example.com>, relay=discourse, delay=0.39, delays=0.19/0.01/0/0.2, dsn=4.3.0, status=deferred (temporary failure)

메일 컨테이너의 (관련 부분의) 설정 파일 mail-receiver.yml은 다음과 같습니다:

env:
  POSTCONF_smtpd_tls_key_file:  /ssl/ssl.key
  POSTCONF_smtpd_tls_cert_file:  /ssl/ssl.crt
  POSTCONF_smtpd_tls_security_level: may

  DISCOURSE_MAIL_ENDPOINT: 'https://internal.example.com/admin/email/handle_mail'

volumes:
  - volume:
      host: /var/discourse/shared/standalone/ssl
      guest: /ssl

비밀 키 ssl.key에는 (내부) 서버의 비밀 키가 포함되어 있습니다. 체인된 인증서 ssl.crt에는 서버 인증서 + CA 인증서가 포함되어 있습니다. (신규 사용자인 관계로 파일 업로드 권한이 없어 현재 ssl.crt를 제공할 수 없습니다)

smtpd_tls 환경 변수는 smtpd 서버, 즉 다른 메일 서버가 이메일을 전달할 때 상호작용하는 부분과 관련이 있습니다. 이 서버가 internal.example.com의 handle_mail 엔드포인트로 이메일을 전달하려고 할 때, Ruby가 사용하는 라이브러리가 사용자의 인증 기관(CA)을 신뢰하지 않아 자체 서명된 인증서를 신뢰할 수 없습니다.

이를 해결하려면 두 가지 옵션이 있습니다. 첫 번째 옵션은 mail-receiver.yml 파일을 수정하여 루트 CA 인증서를 컨테이너에 포함시키는 것입니다. 이렇게 하면 Ruby가 해당 인증서를 신뢰하게 됩니다. 구체적으로 어떻게 해야 하는지는 바로 떠오르지 않지만, 기본적으로 컨테이너 yml 파일을 통해 Linux 시스템에서 Ruby가 새로운 CA를 신뢰하도록 설정하는 것과 동일한 방식입니다.

두 번째 옵션은 DISCOURSE_MAIL_ENDPOINT의 internal.을 public.으로 변경하는 것입니다. 이렇게 하면 프록시를 통해 연결되며, 프록시는 기본적으로 신뢰할 수 있는 인증서를 가지고 있을 것으로 예상됩니다.

도와주셔서 감사합니다. 그렇게 해서 작동했습니다!
(처음에는 제 무지한 생각으로는, 컨테이너 간의 모든 통신이 어쨌든 두 컨테이너 사이에 직접 이루어질 것이라고 가정했습니다)

통신은 실제로 두 컨테이너 사이에 직접 이루어지며, 단지 Discourse 컨테이너를 자체 서명된 인증서와 함께 HTTPS로 구성했기 때문에 필요한 통신 방식이 달라진 것입니다.