Dalam panduan ini, Anda akan mempelajari cara memasang sertifikat SSL ACME pada server email, khususnya Postfix, Dovecot, dan secara opsional Exim, menggunakan penyedia komersial yang mendukung ACME + EAB. Kita akan menggunakan acme.sh untuk mendaftarkan akun ACME Anda, menerbitkan sertifikat untuk nama host email Anda, dan kemudian menyambungkan sertifikat tersebut secara langsung ke dalam konfigurasi TLS server email Anda.

Panduan ini mengasumsikan server email berbasis Linux dan CA komersial yang menyediakan URL direktori ACME bersama dengan kredensial EAB (Key ID + HMAC). Karena lingkungan mail berbeda di seluruh distribusi dan pengaturan hosting, anggaplah ini sebagai cetak biru yang jelas dan dapat diandalkan, tetapi selalu periksa jalur server Anda sendiri, nama layanan, dan pengaturan TLS saat Anda melakukannya.
Sebelum Anda Mulai
Anda akan memiliki waktu yang lebih lancar jika dasar-dasar ini sudah siap:
- Nama host email, misalnya mail.example.com, dengan catatan A/AAAA yang mengarah ke server email Anda
- Catatan MX Anda menunjuk ke nama host tersebut (pengaturan umum)
- Akses Shell/SSH ke server email dengan sudo atau root
- Akun CA komersial yang menyediakan URL direktori ACME(mis. https://acme.yourca.com/v2/acme), EAB Key ID dan EAB HMAC key
- Tumpukan surat: Postfix/Exim untuk SMTP dan Dovecot untuk IMAP/POP3
Kami akan menggunakan validasi DNS-01 karena validasi ini berfungsi bahkan ketika server email Anda tidak menjalankan situs web publik dan sering kali lebih disukai dalam produksi.
Langkah 1: Instal acme.sh di Server Mail
Anda akan menginstal klien ACME secara langsung di server email sehingga dapat memperbarui sertifikat dan menulisnya ke disk di mana Postfix/Dovecot/Exim dapat membacanya.
Di server email:
curl https://get.acme.sh | sh
source ~/.bashrc
acme.sh --version
Jika Anda melihat nomor versi, klien sudah terinstal dan siap. Jika baris source ~/.bashrc tidak berfungsi, keluar dan masuk kembali, lalu jalankan acme.sh --version lagi.
Langkah 2: Daftarkan Akun ACME Anda (dengan EAB)
Selanjutnya, Anda perlu mendaftarkan akun ACME Anda dengan CA komersial Anda menggunakan kredensial EAB dari panel mereka. acme.sh mendukung EAB melalui --eab-kid dan --eab-hmac-key.
Jalankan ini di server email:
acme.sh --register-account \
--server https://acme.yourca.com/v2/acme \
--eab-kid YOUR_EAB_KID \
--eab-hmac-key YOUR_EAB_HMAC_KEY \
--accountemail [email protected]
Ganti:
https://acme.yourca.com/v2/acmedengan URL direktori ACME CA AndaYOUR_EAB_KIDdengan ID KunciYOUR_EAB_HMAC_KEYdengan kunci HMAC[email protected]dengan email admin Anda yang sebenarnya untuk pemberitahuan kedaluwarsa
Anda melakukan ini sekali per akun. Jika perintah gagal, hampir selalu terjadi kesalahan ketik pada URL atau nilai EAB.
Langkah 3: Menerbitkan Sertifikat melalui DNS-01
Sekarang Anda meminta sertifikat untuk nama host yang akan disambungkan oleh pengguna Anda, misalnya mail.example.com (atau imap.example.com, smtp.example.com. Pilih saja salah satu yang Anda gunakan dalam konfigurasi klien).
Menerbitkan sertifikat (DNS manual)
Lari:
acme.sh --issue \
-d mail.example.com \
--dns dns_manual \
--server https://acme.yourca.com/v2/acme
--dns dns_manual memberitahu acme.sh bahwa Anda akan menambahkan catatan TXT secara manual di panel DNS Anda.
Klien akan menghasilkan sesuatu seperti:
Please add a TXT record:
_acme-challenge.mail.example.com → some-long-token-value
Menambahkan catatan TXT
Pada panel penyedia DNS Anda, buat catatan TXT:
- Nama:
_acme-challenge.mail.example.com - Nilai: token yang ditunjukkan oleh
acme.sh
Tunggu beberapa menit hingga DNS menyebar, lalu verifikasi dengan:
dig TXT _acme-challenge.mail.example.com +short
Jika Anda melihat token di sana, jalankan perintah acme.sh --issue lagi untuk menyelesaikan validasi. Jika berhasil, acme.sh akan menyimpan berkas Anda di bawah ~/.acme.sh/mail.example.com/.
Di dalam direktori itu, setidaknya Anda akan memiliki:
- fullchain.cer – sertifikat plus rantai perantara
- mail.example.com.key – kunci pribadi
- ca.cer – Sertifikat CA (jika CA Anda menyediakannya secara terpisah)
Kita akan menggunakan ini dalam langkah berikutnya.
Langkah 4: Konfigurasikan Postfix untuk Menggunakan Sertifikat ACME (SMTP)
Postfix perlu mengetahui di mana sertifikat dan kunci baru Anda berada. TLS di Postfix dikendalikan oleh opsi-opsi seperti smtpd_tls_cert_file dan smtpd_tls_key_file.
Pertama, salin file ke lokasi yang stabil, misalnya:
sudo mkdir -p /etc/ssl/mail
sudo cp ~/.acme.sh/mail.example.com/fullchain.cer /etc/ssl/mail/mail-fullchain.cer
sudo cp ~/.acme.sh/mail.example.com/mail.example.com.key /etc/ssl/mail/mail.key
sudo chown root:root /etc/ssl/mail/*
sudo chmod 600 /etc/ssl/mail/mail.key
Kemudian beritahu Postfix untuk menggunakannya:
sudo postconf -e 'smtpd_use_tls = yes'
sudo postconf -e 'smtpd_tls_security_level = may'
sudo postconf -e 'smtpd_tls_cert_file = /etc/ssl/mail/mail-fullchain.cer'
sudo postconf -e 'smtpd_tls_key_file = /etc/ssl/mail/mail.key'
sudo postconf -e 'smtp_tls_security_level = may'
smtpd_*pengaturan mengontrol email masuk (klien yang mengirim email kepada Anda)smtp_*pengaturan mengontrol surat keluar (server Anda mengirim surat ke orang lain)
Terapkan perubahan:
sudo systemctl restart postfix
Jika distro Anda masih menggunakan service, sesuaikan perintahnya.
Langkah 5: Konfigurasikan Dovecot untuk Menggunakan Sertifikat ACME (IMAP/POP3)
Dovecot menangani IMAP dan POP3. Anda mengkonfigurasi TLS dengan mengarahkan ssl_cert dan ssl_key ke berkas yang sama yang baru saja kita siapkan.
Buka konfigurasi SSL Dovecot:
sudo nano /etc/dovecot/conf.d/10-ssl.conf
Perbarui (atau tambahkan) baris-baris ini:
ssl = yes
ssl_cert = </etc/ssl/mail/mail-fullchain.cer
ssl_key = </etc/ssl/mail/mail.key
Simpan file dan muat ulang Dovecot:
sudo systemctl restart dovecot
Sekarang IMAP/POP3 melalui TLS akan memberikan sertifikat ACME komersial yang sama.
Opsional: Gunakan Sertifikat yang Sama di Exim
Jika Anda menggunakan Exim sebagai server email Anda dan bukan Postfix, integrasinya serupa. Exim menggunakan opsi tls_certificate dan tls_privatekey untuk TLS.
Pada konfigurasi Exim Anda (jalur tergantung pada distro, biasanya /etc/exim4/exim4.conf.template atau split config di /etc/exim4/conf.d/), set:
tls_certificate = /etc/ssl/mail/mail-fullchain.cer
tls_privatekey = /etc/ssl/mail/mail.key
Kemudian isi ulang Exim:
sudo systemctl restart exim4
Periksa dokumen pacakge distribusi Anda jika nama layanan sedikit berbeda.
Langkah 6: Menguji TLS Mail Anda
Anda dapat menguji dari mesin lain yang telah menginstal OpenSSL .
Uji SMTP (Postfix atau Exim)
openssl s_client -starttls smtp -connect mail.example.com:587 -showcerts
Uji IMAP (Dovecot)
openssl s_client -starttls imap -connect mail.example.com:143 -showcerts
Jika output menunjukkan CA komersial Anda dan nama host cocok, Anda baik-baik saja.
Langkah 7: Jaga agar Pembaruan dan Muat Ulang Tetap Otomatis
acme.sh sudah menginstal pekerjaan cron yang memeriksa pembaruan setiap hari. Ketika sertifikat Anda hampir kedaluwarsa, sertifikat akan diperbarui secara otomatis dan memperbarui file di ~/.acme.sh/mail.example.com/.
Untuk membuat Postfix/Dovecot/Exim selalu menggunakan versi terbaru, Anda memiliki dua pilihan:
- Arahkan konfigurasi langsung ke berkas di ~/.acme.sh/mail.example.com/
(contoh: smtpd_tls_cert_file = /root/.acme.sh/mail.example.com/fullchain.cer) dan pastikan hanya root yang dapat membacanya. - Tuliskan skrip penyebaran kecil yang menyalin berkas-berkas yang diperbarui ke dalam
/etc/ssl/mail/dan memulai ulang atau memuat ulang server.
Contoh naskah:
#!/usr/bin/env bash
DOMAIN="mail.example.com"
SRC="$HOME/.acme.sh/$DOMAIN"
DEST="/etc/ssl/mail"
sudo cp "$SRC/fullchain.cer" "$DEST/mail-fullchain.cer"
sudo cp "$SRC/$DOMAIN.key" "$DEST/mail.key"
sudo chown root:root "$DEST/"*
sudo chmod 600 "$DEST/mail.key"
sudo systemctl restart postfix dovecot
Skrip ini menyalin sertifikat ACME dan kunci privat yang baru diterbitkan ke dalam direktori SSL email server Anda, menetapkan kepemilikan dan izin yang benar, dan kemudian memulai ulang Postfix dan Dovecot sehingga mereka segera mulai menggunakan sertifikat yang diperbarui. Gunakan kredensial Anda, bukan placeholder.
Kemudian kirimkan ke acme.sh:
acme.sh --install-cert -d mail.example.com \
--key-file ~/.acme.sh/mail.example.com/mail.example.com.key \
--fullchain-file ~/.acme.sh/mail.example.com/fullchain.cer \
--reloadcmd "/path/to/your/deploy-script.sh"
Mulai saat ini, pembaruan terjadi secara otomatis.
Pertanyaan Umum & Pemecahan Masalah
Beberapa masalah mungkin muncul saat Anda melakukan ini untuk pertama kalinya. Berikut ini cara mengatasinya dengan cepat.
Mengapa validasi ACME gagal dengan “tidak sah” atau “respons tidak valid”?
Ini terjadi ketika CA tidak dapat memverifikasi catatan TXT DNS Anda. Periksa itu:
- Rekaman TXT adalah persis
_acme-challenge.mail.example.com - Token tidak memiliki tanda kutip atau spasi tambahan
- DNS telah disebarkan (
dig TXT _acme-challenge.mail.example.com +short) - Anda tidak mencampur mail.example.com dengan example.com
Jika tidak yakin, hapus catatan TXT, jalankan kembali acme.sh --issue, dan tambahkan kembali nilai yang diberikan ACME kepada Anda.
Mengapa saya mendapatkan “accountDoesNotExist” atau kesalahan terkait EAB?
Ini muncul ketika pendaftaran akun ACME Anda tidak cocok dengan kredensial EAB dari CA Anda.
Perbaiki oleh:
- Memeriksa ulang URL direktori ACME (produksi vs pementasan)
- Memastikan ID Kunci dan HMAC disalin dengan tepat, tanpa spasi tersembunyi
- Menjalankan kembali perintah registrasi satu kali dengan nilai yang benar
CA Komersial menolak pendaftaran EAB yang tidak sesuai dengan profil yang mereka terbitkan.
Mengapa SMTP/IMAP masih menampilkan sertifikat lama?
Ini berarti layanan tidak memuat ulang sertifikat baru atau membaca dari jalur yang berbeda. Periksa:
- Jalur TLS di Postfix/Dovecot/Exim cocok dengan file yang sebenarnya
- Anda telah memulai ulang layanan yang benar (
systemctl restart postfix dovecot exim4) - Tidak ada instance, kontainer, atau proxy kedua yang melayani sertifikat lama
Anda dapat memverifikasi sertifikat langsung menggunakan:
openssl s_client -connect mail.example.com:465 -servername mail.example.com
Kata Penutup
Dengan pengaturan ini, server email Anda menyajikan sertifikat ACME komersial yang tepat kepada klien SMTP dan IMAP/POP3, sementara acme.sh secara diam-diam menangani pembaruan di latar belakang. Anda tetap memegang kendali penuh atas rantai sertifikat dan nama file, pengguna Anda tidak lagi melihat peringatan keamanan, dan Anda tidak perlu masuk setiap beberapa bulan untuk mengunggah file baru secara manual.
Setelah Anda melakukannya sekali, Anda bisa mengulangi pola yang sama untuk nama host lain, server MX sekunder, atau tumpukan email tambahan menggunakan akun dan proses ACME yang sama.
Hemat 10% untuk Sertifikat SSL saat memesan hari ini!
Penerbitan cepat, enkripsi kuat, kepercayaan peramban 99,99%, dukungan khusus, dan jaminan uang kembali 25 hari. Kode kupon: SAVE10
