In een eerdere blog heb ik uitgelegd hoe je gebruik kunt maken van een veilige (SSL) verbinding met je mail-server door Fetchmail. Dit doe je eenvoudig m.b.v. de SSL fingerprint van de betreffende mail servers in de ‘.fetchmailrc’ configuratie-file.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
poll pop.gmail.com proto POP3 user "gebruiker" password "mijn password" fetchall options ssl sslfingerprint 'XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX'
mda "/usr/bin/procmail -d %T"
poll pop.gmail.com proto POP3 user "gebruiker" password "mijn password" fetchall options ssl sslfingerprint 'XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX' mda "/usr/bin/procmail -d %T"
poll pop.gmail.com proto POP3 user "gebruiker" password "mijn password" fetchall options ssl sslfingerprint 'XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX'
mda "/usr/bin/procmail -d %T"

Nu verandert Google echter om de zoveel tijd van certificaten en zul je dus ook de fingerprint moeten aanpassen. De eenvoudigste manier om de SSL fingerprint te checken is m.b.v. onderstaande commando:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
openssl s_client -connect $SERVER:$PORT -showcerts | openssl x509 -fingerprint -noout -md5
openssl s_client -connect $SERVER:$PORT -showcerts | openssl x509 -fingerprint -noout -md5
openssl s_client -connect $SERVER:$PORT -showcerts | openssl x509 -fingerprint -noout -md5

Vervang hierbij $SERVER en $PORT door je mail-server settings (b.v. pop.gmail.com:995). De output ziet er dan ongeveer als volgt uit:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
root@webserver:/home/henri# openssl s_client -connect pop.gmail.com:995 -showcerts | openssl x509 -fingerprint -noout -md5
depth=2 OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign
verify return:1
depth=1 C = US, O = Google Trust Services, CN = GTS CA 1O1
verify return:1
depth=0 C = US, ST = California, L = Mountain View, O = Google LLC, CN = pop.gmail.com
verify return:1
MD5 Fingerprint=08:C1:32:F3:F7:21:18:CF:46:EE:47:0A:A0:A1:E5:F3
root@webserver:/home/henri#
root@webserver:/home/henri# openssl s_client -connect pop.gmail.com:995 -showcerts | openssl x509 -fingerprint -noout -md5 depth=2 OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign verify return:1 depth=1 C = US, O = Google Trust Services, CN = GTS CA 1O1 verify return:1 depth=0 C = US, ST = California, L = Mountain View, O = Google LLC, CN = pop.gmail.com verify return:1 MD5 Fingerprint=08:C1:32:F3:F7:21:18:CF:46:EE:47:0A:A0:A1:E5:F3 root@webserver:/home/henri#
root@webserver:/home/henri# openssl s_client -connect pop.gmail.com:995 -showcerts | openssl x509 -fingerprint -noout -md5
depth=2 OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign
verify return:1
depth=1 C = US, O = Google Trust Services, CN = GTS CA 1O1
verify return:1
depth=0 C = US, ST = California, L = Mountain View, O = Google LLC, CN = pop.gmail.com
verify return:1
MD5 Fingerprint=08:C1:32:F3:F7:21:18:CF:46:EE:47:0A:A0:A1:E5:F3
root@webserver:/home/henri#

Eventueel kun je ook nog een slim script schrijven die er automatisch voor zorgt dat je ‘.fetchmailrc’ file altijd de meeste actuele fingerprints bevat.

Update 10 september 2020
Een simpelere oplossing is om de volgende regel te gebruiken in je ‘.fetchmailrc’ file als je SSL wilt gebruiken voor Fetchmail:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
poll pop.gmail.com proto POP3 user "gebruiker" password "mijn password" fetchall options ssl sslcertck
mda "/usr/bin/procmail -d %T"
poll pop.gmail.com proto POP3 user "gebruiker" password "mijn password" fetchall options ssl sslcertck mda "/usr/bin/procmail -d %T"
poll pop.gmail.com proto POP3 user "gebruiker" password "mijn password" fetchall options ssl sslcertck
mda "/usr/bin/procmail -d %T"