이메일이 작동하지 않음 (SSL_connect returned=1)

@loic 감사합니다. 방금 업데이트했는데 제 환경에서는 여전히 이메일이 전송되지 않습니다.

TLS와 SSL 없이 SMTP 포트 25를 사용하고 있으며, 로그에는 오류가 없습니다. 내일 세부 내용을 공유할 예정입니다. Hopefully…

확인합니다. 2.9.0.beta4 002d62b847에서 항상 다음 오류가 발생합니다:
SSL_connect returned=1 errno=0 peeraddr=xxx.xxx.xxx.xxx:25 state=error: certificate verify failed (Hostname mismatch)

해당 패치는 체크를 비활성화하는 데에는 작동하지 않으며, starttls를 완전히 비활성화하는 경우에만 작동합니다. 설정은 어떻게 되어 있나요?

DISCOURSE_SMTP_ADDRESS: smtp.mydomain.info
DISCOURSE_SMTP_PORT: 25
DISCOURSE_SMTP_USER_NAME: info@mydomain.info
DISCOURSE_SMTP_PASSWORD: “mypassword”
DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
DISCOURSE_SMTP_ENABLE_START_TLS: false # (선택 사항, 기본값 true)
DISCOURSE_SMTP_DOMAIN: mydomain.info # (일부 제공업체에서 필수)

감사합니다

음, 실제로 그렇게 작동해야 할 것 같네요 (다만 패치는 제가 직접 테스트하지는 않았습니다).

두 번째 포럼도 2.9.0.beta5 버전으로 업데이트했습니다. (47034d9ca0) 그리고:

======================================== ERROR ========================================
                                    UNEXPECTED ERROR

SSL_connect returned=1 errno=0 peeraddr=xxx.xxx.xxx.xxx:25 state=error: certificate verify failed (Hostname mismatch)

====================================== SOLUTION =======================================
This is not a common error. No recommended solution exists!

좋습니다!

SSL/TLS 없이 이메일을 보내는 것이 더 이상 작동하지 않으므로, 재구성하는 방법에 대해 누군가 도와줄 수 있을까요?

여기에서:

  1. openssl을 사용하여 SMTP 서버에 연결을 시도해 보세요:

(telnet, nc 등은 컨테이너 안에 설치되어 있지 않습니다.)

연결에 성공할 때까지 다양한 설정을 시도해 보세요.

openssl s_client -connect your.smtp.server:465

그리고 이것이 응답입니다:

openssl s_client -connect smtps.aruba.it:465
CONNECTED(00000003)
depth=2 C = IT, L = Milan, O = Actalis S.p.A./03358520967, CN = Actalis Authentication Root CA
verify return:1
depth=1 C = IT, ST = Bergamo, L = Ponte San Pietro, O = Actalis S.p.A., CN = Actalis Organization Validated Server CA G3
verify return:1
depth=0 C = IT, ST = Bergamo, L = Ponte San Pietro, O = Aruba S.p.A., CN = *.aruba.it
verify return:1
---
Certificate chain
 0 s:C = IT, ST = Bergamo, L = Ponte San Pietro, O = Aruba S.p.A., CN = *.aruba.it
   i:C = IT, ST = Bergamo, L = Ponte San Pietro, O = Actalis S.p.A., CN = Actalis Organization Validated Server CA G3
 1 s:C = IT, ST = Bergamo, L = Ponte San Pietro, O = Actalis S.p.A., CN = Actalis Organization Validated Server CA G3
   i:C = IT, L = Milan, O = Actalis S.p.A./03358520967, CN = Actalis Authentication Root CA
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIHvjCCBaagAwIBAgIQQsyIUeEmwDx+2lgTpgT70jANBgkqhkiG9w0BAQsFADCB
iTELMAkGA1UEBhMCSVQxEDAOBgNVBAgMB0JlcmdhbW8xGTAXBgNVBAcMEFBvbnRl
IFNhbiBQaWV0cm8xFzAVBgNVBAoMDkFjdGFsaXMgUy5wLkEuMTQwMgYDVQQDDCtB
Y3RhbGlzIE9yZ2FuaXphdGlvbiBWYWxpZGF0ZWQgU2VydmVyIENBIEczMB4XDTIy
MDQwNTEyMjI0M1oXDTIzMDQwNTEyMjI0M1owZjELMAkGA1UEBhMCSVQxEDAOBgNV
BAgMB0JlcmdhbW8xGTAXBgNVBAcMEFBvbnRlIFNhbiBQaWV0cm8xFTATBgNVBAoM
DEFydWJhIFMucC5BLjETMBEGA1UEAwwKKi5hcnViYS5pdDCCASIwDQYJKoZIhvcN
AQEBBQADggEPADCCAQoCggEBAMTsWOBfptIEva0cH2jJ177n5TuMqC85jYsc8IC7
zeCQzI7yqWZl2uwbkXQ8SKnb8MDzGaYGMzBW7/Zow2qIoG9XlRMet5J6MKpLn7Us
LMB1rMSMa0UeG1+VWH1pbIrpXw2nKdAEktaUwqtNVWIBGe/f4hnuM0ESVBfblt+4
7IeHiOsiSu1t54L57kgo+yRknLmSZi5N1JhgFIjCQG/iaqj2Y/jDpd/iX21iN7+P
Iir1Zop0cdEAqyi+Sp5/PK9Pz6RdQKLfnJmKroB/NJEKrSXLAI1vWYyL5wQN/LEz
AykZqlf6iPnQ0VhonKly05A6mIJP16X8FAmB7eq0jTHv2TcCAwEAAaOCA0IwggM+
MAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUn4qxtfGx3oL0J3y+iM3eqUOBo0sw
fgYIKwYBBQUHAQEEcjBwMDsGCCsGAQUFBzAChi9odHRwOi8vY2FjZXJ0LmFjdGFs
aXMuaXQvY2VydHMvYWN0YWxpcy1hdXRob3ZnMzAxBggrBgEFBQcwAYYlaHR0cDov
L29jc3AwOS5hY3RhbGlzLml0L1ZBL0FVVEhPVi1HMzAfBgNVHREEGDAWggoqLmFy
dWJhLml0gghhcnViYS5pdDBRBgNVHSAESjBIMDwGBiuBHwETATAyMDAGCCsGAQUF
BwIBFiRodHRwczovL3d3dy5hY3RhbGlzLml0L2FyZWEtZG93bmxvYWQwCAYGZ4EM
AQICMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATBIBgNVHR8EQTA/MD2g
O6A5hjdodHRwOi8vY3JsMDkuYWN0YWxpcy5pdC9SZXBvc2l0b3J5L0FVVEhPVi1H
My9nZXRMYXN0Q1JMMB0GA1UdDgQWBBT5JV1WzJxD4wKVKCWHmNcn8d7D1TAOBgNV
HQ8BAf8EBAMCBaAwggF/BgorBgEEAdZ5AgQCBIIBbwSCAWsBaQB2AK33vvp8/xDI
i509nB4+GGq0Zyldz7EMJMqFhjTr3IKKAAABf/m2kgoAAAQDAEcwRQIgI+uZPC+F
CY9H7NSyarAPzAXGfUrbEyn1Eq/5kautM64CIQC6zAXsxVHVvRF86izV+qKxWCpK
nmmUC7Fz0xfFhablzwB3AFWB1MIWkDYBSuoLm1c8U/DA5Dh4cCUIFy+jqh0HE9MM
AAABf/m2kjcAAAQDAEgwRgIhAJ1dk0jwHeP7pCOlhptfu2t9ZLkSyJRGkdCbnT1D
ANYxAiEA0WTOchSXhiXA3PtLW5D+4P8l9yTAJRoaW/ilb5n/1MAAdgBvU3asMfAx
GdiZAKRRFf93FRwR2QLBACkGjbIImjfZEwAAAX/5tpIUAAAEAwBHMEUCIFiEZiPG
Ymr6DKYDfO0lidp9JafTSjT/ZHuZn7LOLdyoAiEAx3lSUK6he9ZeIBykatBimWWN
ipirn4oSEiKjT7DflTowDQYJKoZIhvcNAQELBQADggIBAIwK3YVxzM5BsKXIMpy7
Crpbzo2OLCkkDooNPM1lxeBGjCWOlSPTryiqNR5s7+ADtAGz0v6kllSLSAxm5Bah
PEWbg6zYoob6X8daEEzYVGrtXu1p2iGUuMNREjJRoiMZRY2i97FBkxYJSax/3d7n
xmcTEMnDUYZ+4sb7umre3sVKvnBK77IgHNatRLkeC6mnwHM+icW1/0m7IkrZ6loM
wwBApqErrsln4wXCMbIjBEqQAtH0PNO7TxnoIn+51Y3ejVNO8yifeyYprsC6gLEN
dfD+VrfU9ls1BKdXY4tMFrQXyGqylOUB5Z1hBM2D9uVpKAHYGrSFj8la7CaTkPLH
zIbjdINU1lX3AiXZPemirap6i4Tr25511hig5zbifBvUZtRnzxCv8taxb3tM+9Vp
7n0e0jibrl3YOQykjgxgBILfOFjpsfSV0NyZ+fwfdHqkxeZelt3OCzoE5LUBSLzv
ck9GJSPdGsuBH0y/mRBaghjEF4F3WkdINFLCJTrMh3gIAVdraVlganr5QdoMiV+M
28gf+cf6Bo1I+vuEsdBaRkpIFaBve5PjYADS2A3R9upk68j00EGH+50YnWVafBII
aY5JeMOSIXG9taUq3QszPi/H827Ky4BGG3sN0fBQsR7kniKkfnNDnN6frw/2FSas
gp5el2uwKHDl5M/w10cCL5hp
-----END CERTIFICATE-----
subject=C = IT, ST = Bergamo, L = Ponte San Pietro, O = Aruba S.p.A., CN = *.aruba.it

issuer=C = IT, ST = Bergamo, L = Ponte San Pietro, O = Actalis S.p.A., CN = Actalis Organization Validated Server CA G3

---
No client certificate CA names sent
Peer signing digest: SHA512
Peer signature type: RSA
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 4572 bytes and written 432 bytes
Verification: OK
---
New, TLSv1.2, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES256-GCM-SHA384
    Session-ID: E79BF76633C1FF1930AB44B11DD45E5CE0CE4D3ECAA3B035C4239E3D576BADC0
    Session-ID-ctx:
    Master-Key: B2DFD5C791C36245D8B51F876F720F627F60F5AA1C085D4F16643D206406737059C6DD4CB51A508FFD872FE718822394
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 300 (seconds)
    TLS session ticket:
    0000 - d5 97 a0 c2 6a b1 51 3e-7c 9d fa b3 d2 99 0f 13   ....j.Q>|.......
    0010 - fc 39 61 86 c1 88 91 51-11 7b 55 42 e5 7c 1f 27   .9a....Q.{UB.|.'
    0020 - 39 3b 22 67 45 6c 22 53-7a 1a 4f f8 76 e9 ef 89   9;"gEl"Sz.O.v...
    0030 - 3c 11 df 3b 98 f3 0c 1e-44 f0 f9 af 27 71 f5 6f   <..;....D...'q.o
    0040 - ab 3e 78 b4 9d b3 e5 49-fb 20 80 2e a2 5b f8 4a   .>x....I. ...[.J
    0050 - 4f 4b fe 60 5a c2 cf ea-d0 81 6b bc 42 a3 ac 2a   OK.`Z.....k.B..*
    0060 - 4a 14 e5 61 a8 5e 94 c6-5c 27 09 81 e5 4d 93 b7   J..a.^..\'...M..
    0070 - 13 b2 e0 6d f2 db 08 c2-16 f5 b9 e3 52 6b 70 d0   ...m........Rkp.
    0080 - 25 44 b4 37 07 c6 83 c3-0b 41 c4 d6 99 45 03 f2   %D.7.....A...E..
    0090 - 5a 79 27 ea e2 52 96 62-bc bc 34 53 13 32 02 2b   Zy'..R.b..4S.2.+
    00a0 - 5a 46 1f 51 f4 82 12 36-2c 6d 4f 5b e6 07 94 7c   ZF.Q...6,mO[...|

    Start Time: 1655216339
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: no
---
220 smtpdh01.ad.aruba.it Aruba Outgoing Smtp  ESMTP server ready
HELO mydomain.info
250 smtpdh01.ad.aruba.it hello [5.xxx.xxx.xxx], pleased to meet you

제 app.yml

 DISCOURSE_SMTP_ADDRESS: smtps.aruba.it
  DISCOURSE_SMTP_PORT: 465
  DISCOURSE_SMTP_USER_NAME: myemail@domain.info
  DISCOURSE_SMTP_PASSWORD: "password"
  DISCOURSE_SMTP_ENABLE_START_TLS: false            # (선택 사항, 기본값 true)
  DISCOURSE_SMTP_DOMAIN: domain.info              # (일부 제공업체에서 필수)

전송이 작동하지 않습니다…

./discourse-doctor

==================== MAIL TEST ====================
견고한 테스트를 위해 http://www.mail-tester.com/에서 주소를 가져오세요.
또는 자신에게 테스트 메시지를 보내면 됩니다.
메일 테스트용 이메일 주소? ('n' 입력 시 건너뜀) [myemail@domain.info]:
myemail@domain.info(으)로 메일 전송 중 . . .
smtps.aruba.it:465, 사용자 이름:myemail@domain.info, plain 인증을 사용하여 myemail@domain.info(으)로 전송 테스트 중.
======================================== ERROR ========================================
                                    UNEXPECTED ERROR

Net::ReadTimeout

====================================== SOLUTION =======================================
이것은 흔하지 않은 오류입니다. 권장되는 해결책이 없습니다!

DISCOURSE_SMTP_ENABLE_START_TLS: 값이 동일하며, 아무것도 변하지 않습니다.

1개월 넘게 시도해 보았는데 어떻게 해결할 수 있을까요?
나만 이메일을 보낼 수 없는 것일까요?

감사합니다

메일 서버를 포트 587(TLS 또는 없음, 어떤 것이 작동하는지 확인)을 사용하도록 설정한 다음, 이 설정을 적용하고 discourse를 다시 빌드해 보실 수 있나요?

DISCOURSE_SMTP_ADDRESS: smtps.aruba.it
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: myemail@domain.info
DISCOURSE_SMTP_PASSWORD: “password”

도움이 된다면, 새로운 Discourse 설치에서 이메일 문제 해결 가이드에 다음 내용이 있습니다:

작동하지 않습니다. 지난 1년간 사용해 온 초기 설정인데, 한 달째 작동하지 않고 있습니다.

======================================== ERROR ========================================
                                    UNEXPECTED ERROR

SSL_connect returned=1 errno=0 peeraddr=xxx.xxx.xxx.xxx:587 state=error: certificate verify failed (Hostname mismatch)

====================================== SOLUTION =======================================
This is not a common error. No recommended solution exists!

openssl로 연결을 시도하면:

openssl s_client -connect smtps.aruba.it:587
CONNECTED(00000003)
548286781936:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:../ssl/record/ssl3_record.c:331:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 5 bytes and written 306 bytes
Verification: OK
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---
root@vps:/var/www/discourse#

아쉽게도 아닙니다, 모든 것을 시도해 보았지만 …

app.yml 파일에 아래 한 줄만 추가해 보세요.

DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none

START_TLS 줄은 추가하지 마세요.

이 문제를 Support 전용 토픽으로 옮겼습니다. :+1: (토픽 제목 짓는 실력이 좀 부족해서, 더 적절한 설명을 제안해 주시면 감사하겠습니다 :slight_smile:)

SMTP 서버를 TLS 또는 STARTTLS를 사용하여 포트 587로 사용하도록 구체적으로 구성해야 합니다(모든 서버에서 이 포트가 활성화되어 있지는 않습니다).

이제 discourse-doctor에서는 작동합니다. 웹 테스트는 타임아웃 오류가 발생하지만 이메일은 정상적으로 전송됩니다.

도와주셔서 감사합니다!

제 VPS는 aarch64 CPU를 사용하는데, 이것이 문제일 수 있을까요?

@loic 님께 태그를 달아봅니다. 제 제안이 BETA 5에서 효과가 있었던 것으로 보입니다. 이는 TLS 패치가 의도대로 작동하지 않을 수 있음을 시사합니다.

DISCOURSE_SMTP_ENABLE_START_TLS: false

을 추가하면 SSL 연결이 실패하는 것으로 보입니다.

감사합니다!

그리고 네, 정말 이상하긴 하죠 :thinking:
의도한 대로 작동하지 않는 이유를 파악하기 위해 다시 한번 확인해 보겠지만, mail gem이 수정되면 다시 잘 작동할 것 같네요 :crossed_fingers: