Ошибка получения самозаверяющего сертификата с помощью ProtonBridge и mbsync

Я пытаюсь настроить isync с помощью ProtonBridge и получаю следующую ошибку:

SSL error connecting 127.0.0.1 (127.0.0.1:1143): self signed certificate

Я знаю, что это локальный хост, поэтому сертификат, который мы предоставляем, является самоподписанным. В любом другом почтовом клиенте, например в Thunderbird, необходимо подтвердить исключение безопасности для порта.1143 на 127.0.0.1.как описано в шаге 5 здесь. Я совершенно не понял, как это сделать в mbsync. Вот мой.msyncrc:

IMAPStore someuser-remote
Host 127.0.0.1
Port 1143
User info@someuser.net
Pass protonbridgepassword
SSLType STARTTLS
CertificateFile /etc/ssl/certs/ca-certificates.crt

MaildirStore user-local
Path ~/Mail/
Inbox ~/Mail/INBOX
Subfolders Verbatim
Flatten .

Channel user
Master :user-remote:
Slave :user-local:
Create Both
Expunge Both
Patterns *
SyncState *

Пробовал с опцией SystemCertificates noбезрезультатно. Вот полный журнал:

Reading configuration file /home/user/.mbsyncrc
C: 0/1  B: 0/0  M: +0/0 *0/0 #0/0  S: +0/0 *0/0 #0/0
Channel user
Opening master store user-remote...
Resolving 127.0.0.1... ok
Connecting to 127.0.0.1 (127.0.0.1:1143)... 
Opening slave store user-local...
SSL error connecting 127.0.0.1 (127.0.0.1:1143): self signed certificate
C: 1/1  B: 0/0  M: +0/0 *0/0 #0/0  S: +0/0 *0/0 #0/0

3 ответа

Решение

Вам необходимо скопировать сертификат ProtonBridge, как описано здесь вStep #1: Get the certificates. Вopenssl команда немного отличается, так как вам нужно указать протокол STARTTLS при подключении к локальному серверу:

openssl s_client -starttls imap -connect 127.0.0.1:1143 -showcerts

Это должно дать вам что-то вроде этого:

CONNECTED(00000003)
depth=0 C = CH, O = Proton Technologies AG, OU = ProtonMail, CN = 127.0.0.1
verify error:num=18:self signed certificate
verify return:1
depth=0 C = CH, O = Proton Technologies AG, OU = ProtonMail, CN = 127.0.0.1
verify return:1
---
Certificate chain
 0 s:/C=CH/O=Proton Technologies AG/OU=ProtonMail/CN=127.0.0.1
   i:/C=CH/O=Proton Technologies AG/OU=ProtonMail/CN=127.0.0.1
-----BEGIN CERTIFICATE-----
MIIDizCCAnOgAwIBAgIQBW7/mrcQcB5Iu1POkJ3YNzANBgkqhkiG9w0BAQsFADBX
MQswCQYDVQQGEwJDSDEfMB0GA1UEChMWUHJvdG9uIFRlY2hub2xvZ2llcyBBRzET

(...)

kNvCZidKp31PdIO9IzQn2cI86f2mo1a+ad5dsd1HU4ZB+B3nMiWbQizaFmD3MrgO
cR/KRJtxKTcXQCBLqIi+t2sDFQ8uozs0xYbGHDrCPgCayZLfAVxGCwP2LANnQKw=
-----END CERTIFICATE-----
---
Server certificate
subject=/C=CH/O=Proton Technologies AG/OU=ProtonMail/CN=127.0.0.1
issuer=/C=CH/O=Proton Technologies AG/OU=ProtonMail/CN=127.0.0.1
---
Acceptable client certificate CA names
/C=CH/O=Proton Technologies AG/OU=ProtonMail/CN=127.0.0.1
Client Certificate Types: RSA sign, ECDSA sign
Requested Signature Algorithms:

(...)

Скопируйте самый первый блок, который начинается с -----BEGIN CERTIFICATE----- и заканчивается -----END CERTIFICATE-----, вставьте его в файл и сохраните с расширением.pem. Скажем, вы называете этоprotonbridge.pem впоследствии сохраняя его в /etc/ssl/certs/, вам нужно будет добавить это в свой ~/mbsyncrc файл:

CertificateFile /etc/ssl/certs/protonbridge.pem

Это должно быть так, теперь у вас должна быть возможность синхронизировать. Похоже, мне не нужно было копировать сертификат корневого эмитента, как описано в конце шага №1 по ссылке. Если вы это сделаетеmbsync -l channel-nameвы увидите список всех почтовых ящиков для синхронизации. Вы можете добавитьPatterns INBOX Sent если вы не хотите, чтобы все папки в вашей учетной записи Protonmail синхронизировались, включая папку под названием "Вся почта"!

Как упоминалось выше в комментарии @pusillaanimous, я подтверждаю, что указание непосредственно на сертификат на мосту протопочты работает.

Поэтому вам просто нужно добавить следующее в свой .mbsyncrc

      CertificateFile ~/.config/protonmail/bridge/cert.pem

Я подтверждаю, что с Thunderbird версии 91.8.1 (64-разрядная версия) и Proton Mail Bridge v2.1.1 вы можете изменить настройки безопасности SMTP на SSL/TLS в обеих программах, и исходящая почта работает.

Другие вопросы по тегам