Post Pic

Membuat Self-Signed Certificate untuk Ejabberd

Instalasi ejabberd dari sources sudah menyertakan default ssl certificate. Sayangnya certificate ini tidak mencerminkan domain yang melayani jabber. Tulisan ini akan membahas bagaimana membuat self-signed certificate untuk Ejabberd.


Tulisan ini melengkapi tutorial sebelumnya, Membuat Jabber Server menggunakan Ejabberd. Jadi pastikan Anda mengikuti tulisan tersebut sebelum melanjutkan membaca tulisan di bawah ini.

Membuat Self-Signed Certificate

Buat self-signed certificate, dalam contoh di bawah ini di set valid kurang lebih untuk 10 tahun (3650 hari)

openssl req -new -x509 -newkey rsa:1024 -days 3650 -keyout privkey.pem -out server.pem

Jika saat membuat certificate Anda set password, maka setiap menjalankan ejabberd, Anda akan diminta memasukkan password untuk certificate tadi, dan tentu saja itu menjadi masalah ketika ejabberd dijalankan otomastis saat boot.

Untuk itu kita perlu buat versi privkey.pem yang tidak mengunakan password. Lalu hasilnya kita masukkan ke berkas server.pem. Lalu mengapa harus digabung? Karena konfigurasi di ejabberd mensyaratkannya begitu. Direktif certifle harus diarahkan ke berkas yang berisikan private key dan certificate.

openssl rsa -in privkey.pem -out privkey.pem.tanpa-password
cat privkey.pem.tanpa-password >> server.pem
rm privkey.pem

Kemudian salin berkas certificate server.pem ke lokasi instalasi ejabberd.

sudo mv /opt/ejabberd/conf/server.pem /opt/ejabberd/conf/server.pem.orig
sudo mv server.pem /opt/ejabberd/conf/server.pem

Dan untuk menerapkan konfigurasi, Anda harus merestart service ejabberd.

sudo /opt/ejabberd/bin/stop
sudo /opt/ejabberd/bin/start

Mengaktifkan koneksi SSL di port 5223

Sunting berkas konfigurasi /opt/ejabberd/conf/ejabberd.cfg, cari baris seperti dibawah ini dan sesuaikan seperti contoh di bawah ini.

  {5222, ejabberd_c2s, [
                        {certfile, "/opt/ejabberd/conf/server.pem"}, starttls,
                        {access, c2s},
                        {shaper, c2s_shaper},
                        {max_stanza_size, 65536}
                       ]},
 
  %%
  %% To enable the old SSL connection method in port 5223:
  %%
  {5223, ejabberd_c2s, [
                      {certfile, "/opt/ejabberd/conf/server.pem"}, tls,
                      {access, c2s},
                      {shaper, c2s_shaper},
                      {max_stanza_size, 65536}
                     ]},

Sama seperti di atas, untuk menerapkan konfigurasi yang baru, Anda harus merestart service ejabberd.

sudo /opt/ejabberd/bin/stop
sudo /opt/ejabberd/bin/start

Sekarang Anda bisa mengakses jabber server menggunakan TLS di port 5222 atau SSL di port 5223.