Update Sertifikat SSL

Sudah 3 tahun ini server di Universitas Brawijaya (UB) menggunakan sertifikat SSL untuk web servernya. Dan setiap tahun harus diperbaharui karena pembeliannya untuk periode satu tahun. Otomatis sertifikat yang lama perlu diganti dengan sertifikat yang baru.

Harga sertifikat SSL untuk perdomain ini bisa dikatakan tidak murah (harga dari salah satu penyedia SSL bisa dilihat disini https://www.digicert.com/order/order-1.php). Di halaman tersebut terdapat beberapa pilihan, jika Anda memiliki banyak subdomain maka pilihan yang pas adalah yang wildcard (*). Pilihan tersebut sama dengan yang dibeli oleh UB. Tetapi pilihan ini pun masih ada kendala khususnya bagi yang memiliki lembaga tingkat 2 (misalnya lembaga di bawah fakultas) karena wildcard hanya aktif di subdomain bukan di “subsubdomain”. Untuk bisa aktif di lembaga tingkat 2 tentunya fakultas juga harus membeli sertifikat SSL wildcard atau UB bisa menjadi CA sekunder, kedua pilihan tersebut tentunya bukan solusi yang murah, apalagi sertifikat hanya berlaku setahun atau dua tahun saja dan harus diperpanjang.

Kembali lagi ke masalah update sertifikat SSL, untuk memudahkan melakukan update (penggantian) perlu dibuatkan code supaya tidak melakukan penggantian secara manual karena server yang perlu diganti cukup banyak. Alur codenya sederhana saja karena keperluannya juga sederhana, yakni :

  1. copy sertifikat yang baru dari server sumber ke server tujuan dan diletakkan ke directory sementara (/tmp)
  2. ssh ke server tujuan kemudian lalukan pemindahan sertifikat dari directory sementara ke directory sertifikat sesungguhnya, ganti kepemilikan file sertifikat sebagai root dan ganti permission file sertifikat private menjadi 600. Dan terakhir segarkan layanan web servernya

Ketika 2 langkah tersebut dijadikan code jadinya seperti ini :

#!/bin/bash
pass="<password>"
remote_path="<directory_tujuan>"
temp_dir="/tmp"
local_target_dir="<directory_asal>"
hosts=(host1 host2 host3 hostN)
for host in "${hosts[@]}"; do
     sshpass -p "$pass" sudo scp -o 'StrictHostKeyChecking no' "$local_target_dir"/* cimud@"$host":"$temp_dir"
     sshpass -p "$pass" ssh -t -o 'StrictHostKeyChecking no' <user>@"$host" 'echo <password> | sudo -S mv /tmp/<file_sertifikat> <directory_tujuan> && sudo chown root.root -R <directory_tujuan> && sudo chmod 600 <directory_tujuan>/private.key && sudo service nginx reload && systemctl reload nginx'
done

Simpan file tersebut berakhiran .sh kemudian ubah permisionnya menjadi execute dan jalankan!

Sebelum di update :

sertifikat SSL UB

Setelah di update

sertifikat SSL UB

Tambahkan Komentar

Post Navigation