Я здесь новичок, но хочу поделиться своей проблемой и найти решение для всех.
Может быть, это кому-то поможет и сэкономит время.
Я выбрал stackoverflow, потому что я часто находил здесь решение для мои проблемы
Проблема: fetchmail запрашивает некоторые предупреждения для сертификата imap.gmail.com и может больше не получать мои письма
Начальной точкой было некоторое предупреждение fetchmail, как показано ниже
fetchmail: Fehler bei Server-Zertifikat-Überprüfung: self signed certificate
fetchmail: Fehlendes Zertifikat als Vertrauensquelle: /OU=No SNI provided; please fix your client./CN=invalid2.invalid
fetchmail: Das kann bedeuten, dass das Wurzelzertifikat nicht unter den vertrauenswürdigen CA-Zertifikaten ist, oder dass c_rehash auf dem Verzeichnis ausgeführt werden muss. Details sind in der fetchmail-Handbuchseite im bei --sslcertpath beschrieben.
fetchmail: Warnung: Die Verbindung ist unsicher, mache trotzdem weiter. (Nehmen Sie lieber --sslcertck!)
После краткий тест и .fetchmailr c изменение конфигурации, например добавление sslproto tls1.2
я получил это предупреждение
fetchmail: Fehler bei Server-Zertifikat-Überprüfung: unable to get local issuer certificate
fetchmail: Unterbrochene Zertifizierungskette bei: /OU=GlobalSign Root CA - R2/O=GlobalSign/CN=GlobalSign
fetchmail: Dies kann bedeuten, dass der Server das/die Zertifikat(e) der Zwischenzertifizierungsstellen nicht mitlieferte. Daran kann fetchmail nichts ändern. Für weitere Information, siehe das mit Fetchmail ausgelieferte Dokument README.SSL-SERVER.
fetchmail: Das kann bedeuten, dass das Wurzelzertifikat nicht unter den vertrauenswürdigen CA-Zertifikaten ist, oder dass c_rehash auf dem Verzeichnis ausgeführt werden muss. Details sind in der fetchmail-Handbuchseite im bei --sslcertpath beschrieben.
fetchmail: Warnung: Die Verbindung ist unsicher, mache trotzdem weiter. (Nehmen Sie lieber --sslcertck!)
Теперь я увидел, что могут быть некоторые root CA и промежуточные CA и проблема с сертификатом сервера на мое локальное устройство.
Теперь вы должны теперь, когда я запускаю debian stretch.
Да, он старый стабильный и немного устарел, и это может быть проблемой,
, которую я больше не исследовал.
Так что я начал немного больше исследований, касающихся imap.gmail.com
и google ca certs. Когда я запускаю fetchmail -v
для подробной команды, я вижу, что Google говорит мне,
они хотят иметь TLS1.3
протокол связи.
Вы также можете увидеть это, выполнив проверку соединения openssl openssl s_client -showcerts -connect imap.gmail.com:993
Итак, я знаю, что TLS1.2 сейчас не устарел, и только все другие старые протоколы до TLS1.1 устарели.
Мой debian stretch fetchmail также не поддерживает TLS1.3, поэтому я позже настраиваю только TLS1.2.
Теперь я искал сертификаты gki pki в inte rnet. Все сертификаты Google pki можно найти здесь Google PKI
Теперь пришло мое решение.
создайте новую папку .certs в моем домашнем каталоге
mkdir ~/.certs
mkdir ~/.certs/google
cd ~/.certs/google
получите сертификат imap.gmail.com через openssl connect.
cd ~/.certs
openssl s_client -showcerts -connect imap2.gamil.com:993 -servername imap.gmail.com </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > imap.gmail.com.pem
загрузите google pki certs через wget
cd ~/.certs/google
wget https://pki.goog/gtsr1/GTSR1.crt
wget https://pki.goog/gtsr2/GTSR2.crt
wget https://pki.goog/gtsr3/GTSR3.crt
wget https://pki.goog/gtsr4/GTSR4.crt
wget https://pki.goog/gsr2/GSR2.crt
wget https://pki.goog/gsr4/GSR4.crt
wget https://pki.goog/gtsr1/gtsy1.crt
wget https://pki.goog/gtsr2/gtsy2.crt
wget https://pki.goog/gtsr3/gtsy3.crt
wget https://pki.goog/gtsr4/gtsy4.crt
wget https://pki.goog/gsr2/GTS1O1.crt
wget https://pki.goog/gsr2/GTS1D2.crt
wget https://pki.goog/gsr2/giag4.crt
wget https://pki.goog/gsr4/giag4ecc.crt
wget https://pki.goog/digicert/GoogleCA1.crt
wget https://pki.goog/digicert/GTSCA1D3.crt
Затем преобразуйте все * .crt в формат * .pem и скопируйте его в certs dir
for i in *.crt; do openssl x509 -inform DER -in $i -text </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > $i.pem ; done
for i in *.pem; do cp $i ~/.certs/. ; done
Afterwords запускает c_reha sh из openssl, чтобы использовать его для fetchmail
c_rehash .
nano .fetchmailrc
вставить следующие строки в конфигурацию ~ / .fetchmailr c, вот такие вот ssl
, sslcertpath
и sslproto
Строка важных изменений.
poll imap.gmail.com
protocol IMAP
user 'xxxx'
is username
pass 'xxxxx'
folder INBOX
ssl
sslcertpath /home/<username>/.certs/
sslproto tls1.2
mda '/usr/bin/procmail -f %F -d %T'
теперь перезапустите вашу fetchmail (возможно, в подробном режиме), чтобы проверить, нет ли предупреждений сейчас. fetchmail -v