این مقاله برای قضیه Root certificate های جدید let's encrypt بروزرسانی شده است، از اکتبر 2021 باید از روش بروزرسانی استفاده نمایید.
اطلاع دادند که کاربران فلان دامنه که روی زیمبرا هستند از روی سیستم های مک برای تنظیم mail client بدلیل گواهینامه غیرمعتبر مشکل دارند و برای mail.folan.tld از Let's Encrypt گواهینامه معتبر بگیرید و نصب کنید و ...
کمی بدقلقی کرد اما در نهایت راه حل ساده اش را روی CentOS8 و زیمبرا 8.8.15 اینجا مرحله به مرحله شرح می دهم که خودم هم دفعه بعد به همین راهنما ارجاع کنم/دهم.
زیمبرا یک Collaborative Suite یا Groupware است که امکانات کامل mail server و tasks و calendar و chat و Briefcase و File Share و web interface و ... دارد و به خیلی چیزهای دیگه مثل BigBlueButton هم وصل می شه و ... ، الان در دنیا خیلی مورد استقبال واقع شده و محبوب است.
برای انجام این کار باید certbot را نصب کنیم، راحت ترین راه نصب certbot روی centos8 استفاده از snapd است، بنابراین اول باید اون را نصب کنیم. مراحل کار بشرح ذیل است :
1- نصب snapd
2- نصب certbot
3- گرفتن و ویرایش گواهینامه برای دامنه مدنظر
4- نصب و verify و deploy گواهینامه روی زیمبرا و تست Automatic Renewal
فرض بر این است که شما یک زیمبرا 8.8 استاندارد و معمولی نصب شده روی centos8 دارید.
مرحله 1 : نصب snapd
#yum -y install epel-release #yum install snapd #systemctl enable --now snapd #ln -s /var/lib/snapd/snap /snap #snap install core; sudo snap refresh core
مرحله 2 : نصب certbot
#snap install --classic certbot #ln -s /snap/bin/certbot /usr/bin/certbot
مرحله 3 : گرفتن و ویرایش گواهینامه برای دامنه مدنظر
#certbot certonly
#certbot certonly --key-type rsa --force-renewal
در اجرای این اسکریپت، ابتدا گزینه 1 را انتخاب کنید، بعد ایمیل بدهید ، سپس y بزنید سپس n بزنید و در نهایت لیست دامنه ها را بصورت جدا شده با , وارد نمایید.
الان اگر به پوشه etc/letsencrypt/live/mail.folan.tld/ بروید 4 فایل cert.pem و chain.pem و fullchain.pem و privkey.pem که از پوشه etc/letsencrypt/archive/ لینک شده اند را می بینید.
/************* قدیمی است، بروزرسانی شده - روش جدید چند خط پایین تر *****************/
* نکته کار اینجاست که در فایل chain.pem صادر شده توسط Let's Encrypt بخش root CA وجود ندارد و موقع verify خطا می دهد!
بصورت دستی فایل etc/letsencrypt/archive/mail.folan.tld/chain1.pem/ را با vi یا nano باز کنید و محتوی این آدرس را ته آن کپی کنید : https://letsencrypt.org/certs/trustid-x3-root.pem.txt
یعنی محتوی chain1.pem اینجوری می شه، تکه آخر سوم از آدرس بالا copt/paste شده است :
/******************** بروزرسانی ********************/
بجای trustid-x3-root.pem.txt از روش ذیل استفاده نمایید :
#wget -O /tmp/ISRG-X1.pem https://letsencrypt.org/certs/isrgrootx1.pem #wget -O /tmp/R3.pem https://letsencrypt.org/certs/lets-encrypt-r3.pem #cat /tmp/R3.pem > /etc/letsencrypt/archive/mail.folan.tld/chain.pem #cat /tmp/ISRG-X1.pem >> /etc/letsencrypt/archive/mail.folan.tld/chain.pem
/******************************************************************/
مرحله 4 : نصب و verify و deploy گواهینامه روی زیمبرا
#mkdir /opt/zimbra/ssl/letsencrypt #cp /etc/letsencrypt/live/mail.folan.tld/* /opt/zimbra/ssl/letsencrypt/ #chown zimbra:zimbra /opt/zimbra/ssl/letsencrypt/* #su zimbra $cd /opt/zimbra/ssl/letsencrypt/ $/opt/zimbra/bin/zmcertmgr verifycrt comm privkey.pem cert.pem chain.pem
باید آخرش OK بدهد.
حالا :
$cp /opt/zimbra/ssl/letsencrypt/privkey.pem /opt/zimbra/ssl/zimbra/commercial/commercial.key $/opt/zimbra/bin/zmcertmgr deploycrt comm cert.pem chain.pem $zmcontrol restart
الان هم درصورت دسترسی از طریق اینترفیس وب و هم mail clientها، باید certificate معتبر let's encrypt داشته باشید و خطایی درمورد اعتبار گواهینامه نگیرید.
برای Automatic Renewal، خود certbot وقتی نصب می شود این قضیه را تنظیم می کند، گواهینامه های Let's Encrypt سه ماهه هستند و بعد باید مجدداً بروزرسانی شوند.
برای تست اینکه آیا گواهینامه خودکار بروزرسانی می شود یا خیر از دستور ذیل استفاده بفرمایید :
#certbot renew --dry-run
درصورت عدم خطا پیامی مشابه تصویر ذیل می گیرد و در صورت وجود خطا توضیحات آن نمایش داده می شود.