Android Gmail tanúsítvány hiba javítása mailcow és Webmin környezetben

Sokan belefutnak abba a kellemetlen hibába, hogy az Androidos Gmail alkalmazás – vagy más modern levelezőkliens – hirtelen megtagadja a kapcsolódást a saját levelezőszerverhez. A telefon kijelzőjén általában egy ehhez hasonló figyelmeztetés jelenik meg: „A tanúsítványt módosították”, a részleteknél pedig látszik, hogy a tanúsítvány tulajdonosa és kibocsátója megegyezik (pl. mail.ynm.hu).
Ebben a cikkben bemutatjuk, miért alakul ki ez a probléma mailcow és Webmin együttes használatakor, és hogyan lehet véglegesen, automatizáltan javítani.

Miért akad el az Android Gmail kliense?

A háttérben a probléma gyökere az, hogy a mailcow konfigurációs fájljában (mailcow.conf) le van tiltva a saját Let’s Encrypt kliens:
env
SKIP_LETS_ENCRYPT=y
Körültekintően használja a kódot.
Emiatt a mailcow a saját, gyári önaláírt (self-signed) tanúsítványát használja. Bár a Webmin a szerveren sikeresen legenerálja a valós, érvényes Let’s Encrypt tanúsítványt a /etc/letsencrypt/live/mail.ynm.hu/ mappába, a Docker konténerekben futó mailcow szolgáltatások (Postfix, Dovecot, Nginx) erről mit sem tudnak. Amikor a telefon csatlakozni próbál, a régi önaláírt tanúsítványt kapja meg, amit a Google biztonsági rendszere azonnal blokkol.
A Docker szigorú belső jogosultsági rendszere miatt a szimbolikus linkelés (ln -s) gyakran az Nginx konténer összeomlásához (Restarting állapot) vezet. A biztos megoldást a fájlok fizikai másolása és annak automatizálása jelenti.

A javítás lépései: Manuális szinkronizálás

Első lépésként root felhasználóként lépjünk be a szerverre terminálon keresztül, és másoljuk át a Webmin által kezelt érvényes tanúsítványokat a mailcow megfelelő könyvtárába:
bash
# Lépjünk be a mailcow SSL mappájába
cd /opt/mailserver/data/assets/ssl
rm -f cert.pem key.pem

# Másoljuk át a valós Let’s Encrypt fájlokat
cp /etc/letsencrypt/live/mail.ynm.hu/fullchain.pem cert.pem
cp /etc/letsencrypt/live/mail.ynm.hu/privkey.pem key.pem

# Adjunk megfelelő olvasási jogot a fájlokra a konténereknek
chmod 644 cert.pem key.pem

# Indítsuk el a rendszert a mailcow főmappájából
cd /opt/mailserver
docker compose up -d
Körültekintően használja a kódot.
Ezzel a manuális lépéssel a Gmail alkalmazás azonnal el fogja fogadni a kapcsolatot.

Végleges megoldás: A frissítés automatizálása

A Let’s Encrypt tanúsítványok 3 havonta lejárnak. Ahhoz, hogy ne kelljen negyedévente kézzel másolgatni a fájlokat, használhatjuk a Certbot beépített renewal-hooks rendszerét.
Hozzunk létre egy automatikus scriptet a Certbot deploy mappájában:
bash
nano /etc/letsencrypt/renewal-hooks/deploy/copy-to-mailcow.sh
Körültekintően használja a kódot.
Másoljuk bele a következő szkriptet, ami figyelni fogja a megújulást:
bash
#!/bin/bash
# Ellenőrizzük, hogy a levelező domain frissült-e
if [ „$RENEWED_DOMAINS” ] && [[ „$RENEWED_DOMAINS” =~ „mail.ynm.hu” ]]; then
echo „Új tanúsítvány észlelve, másolás a mailcow-ba…”

# Fájlok fizikai átmásolása a mailcow alá
cp /etc/letsencrypt/live/mail.ynm.hu/fullchain.pem /opt/mailserver/data/assets/ssl/cert.pem
cp /etc/letsencrypt/live/mail.ynm.hu/privkey.pem /opt/mailserver/data/assets/ssl/key.pem

# Jogosultságok helyreállítása
chmod 644 /opt/mailserver/data/assets/ssl/cert.pem
chmod 644 /opt/mailserver/data/assets/ssl/key.pem

# A szükséges mailcow konténerek újraindítása
cd /opt/mailserver
/usr/bin/docker compose restart nginx-mailcow postfix-mailcow dovecot-mailcow
fi
Körültekintően használja a kódot.
Mentsük el a fájlt, majd adjunk rá futtatási jogot:
bash
chmod +x /etc/letsencrypt/renewal-hooks/deploy/copy-to-mailcow.sh
Körültekintően használja a kódot.

Összegzés

A beállítás után semmilyen további teendőnk nincs. Amikor a Webmin (vagy a háttérben futó cron feladat) automatikusan megújítja a Let’s Encrypt tanúsítványt, ez a script a háttérben csendben lefut: átmásolja a legfrissebb kulcsokat a mailcow alá, beállítja a jogosultságokat, és újraindítja az érintett szolgáltatásokat. A levelezésünk így folyamatosan és biztonságosan fog működni az Androidos eszközökön is.
Ha szeretnéd még formázni a WordPress-ben, megírhatod:
• Szükséged van-e egy kifejezett SEO meta leírásra (meta description) a cikkhez?
• Szeretnél-e kiemelt képet (thumbnail) generáltatni a bejegyzéshez?
Szívesen segítek a cikk finomhangolásában!