내 고객 중 한 명이 방금 Thunderbird를 버전 78로 업그레이드했는데 이제 IMAP 연결이 TLS 1.2가 아닌 것으로 생각하기 때문에 이메일을 받을 수 없습니다... 인터넷에서 도구를 확인하면 v1이라고 나옵니다. 2.
다시 작동하게 하려면 어떻게 해야 합니까?
imapd-ssl 설정 중 일부는 다음과 같습니다.
IMAP_TLS_REQUIRED=1
TLS_PROTOCOL="TLS1_1:TLS1"
TLS_PRIORITY="SECURE128:+SECURE192:-VERS-ALL:+VERS-TLS1.2"
TLS_STARTTLS_PROTOCOL=TLS1
TLS_CIPHER_LIST=HIGH:MEDIUM:!ADH:!MD5:!aNULL:!eNULL:!LOW:!EXP:!RC4
이 설정에 노골적으로 잘못된 것이 있습니까?
제가 본 게시물은 다음과 같습니다.Thunderbird 78은 Exchange 지원 IMAP 계정에 연결되지 않습니다.하지만 난 해킹에는 관심이 없어요. 서버가 최소한 TLS 1.2를 사용하길 원합니다.
이제 openssl로 테스트했는데 결과는 다음과 같습니다.
openssl s_client -connect mail.example.com:143 -tls1_2
CONNECTED(00000003)
140310946449048:error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number:s3_pkt.c:362:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 5 bytes and written 7 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1.2
Cipher : 0000
Session-ID:
Session-ID-ctx:
Master-Key:
Key-Arg : None
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1604626110
Timeout : 7200 (sec)
Verify return code: 0 (ok)
---
버전 1.2가 지원된다는 것이 명확하게 표시됩니다. 피어/클라이언트 인증서 메시지가 무엇을 의미하는지 잘 모르겠습니다. 그게 범인이 아닐까?
openssl
올바른 명령 으로 출력 업데이트
@가 지적한 것처럼 위의 테스트는 올바르지 않습니다. openssl이 메시지를 보내도록 해야 합니다. STARTTLS
그렇지 않으면 암호화가 시작되지 않습니다. 그런데 왜 위에서 TLS 1.2라고 되어 있는지 알고 싶습니다.
$ openssl s_client -connect mail.example.com:143 -starttls imap
CONNECTED(00000003)
depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
verify return:1
depth=0 CN = *.example.com
verify return:1
---
Certificate chain
0 s:/CN=*.example.com
i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
1 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
i:/O=Digital Signature Trust Co./CN=DST Root CA X3
---
Server certificate
-----BEGIN CERTIFICATE-----
...snip...
-----END CERTIFICATE-----
subject=/CN=*.example.com
issuer=/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
---
No client certificate CA names sent
---
SSL handshake has read 3307 bytes and written 617 bytes
---
New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1
Cipher : AES256-SHA
Session-ID: B2...FA
Session-ID-ctx:
Master-Key: FB...AB
Key-Arg : None
PSK identity: None
PSK identity hint: None
SRP username: None
TLS session ticket lifetime hint: 7200 (seconds)
TLS session ticket:
0000 - a9 ... 6f ...}.,.........o
0010 - 17 ... 2f .....&..YX.M.8n/
0020 - a9 ... 7f ......Q....Y..*.
0030 - c9 ... a9 .!'f>06Q...z../.
0040 - ff ... 1f .SZ...Z...;X....
0050 - 94 ... f0 .Se[[email protected]...
0060 - c9 ... 44 [email protected]
0070 - b3 ... 3d .......`.'.....=
0080 - a2 ... bf ..=2.Z....^.):..
0090 - 64 ... 42 d.>B....&.+.!..B
Start Time: 1604637492
Timeout : 300 (sec)
Verify return code: 0 (ok)
---
. OK CAPABILITY completed
이제는 훨씬 좋아 보입니다... TLSv1이라는 사실을 제외하면 말이죠. 대신 TLSv1.2라고 말하고 싶기 때문에 설정이 올바르지 않습니다.
해결
여러 번 시도한 끝에 TLS v1.2를 Courier와 함께 사용할 수 없었습니다. 이래저래 이상하다단지OpenSSL을 설정했는데 왜 해당 버전을 방지하는지 잘 모르겠습니다. 그러나 설정이 무엇이든 TLS v1을 넘지 않았습니다.
그래서 의견에서 제안한대로 방금 전환했습니다.택배 관련 마이그레이션 스크립트도 있는 비둘기장. 효과가 있었어요. Thunderbird는 모든 이메일을 한 번 다시 로드하지만 지금은 예상대로 작동하고 있으며 폴더가 하나도 손실되지 않았습니다.