Routinator tidak memiliki mekanisme bawaan untuk memperbarui sertifikat CA secara otomatis. Namun, Anda dapat mengimplementasikan solusi untuk memperbarui sertifikat CA dan melakukan langkah-langkah pemeliharaan secara otomatis dengan menggunakan skrip dan alat penjadwalan seperti cron di Linux. Berikut adalah langkah-langkah yang dapat Anda ambil untuk melakukan ini:
1. Membuat Skrip Pembaruan Sertifikat
Anda dapat membuat skrip shell yang akan melakukan pembaruan sertifikat CA. Skrip ini dapat mencakup langkah-langkah untuk memeriksa tanggal kedaluwarsa sertifikat dan memperbarui sertifikat jika sudah mendekati tanggal tersebut.
Contoh skrip sederhana (update_ca_cert.sh
):
bash#!/bin/bash
# Path ke file sertifikat CA dan kunci privat
CA_CERT="/path/to/ca-cert.pem"
CA_KEY="/path/to/ca-key.pem"
NEW_CA_CERT="/path/to/new-ca-cert.pem"
NEW_CA_KEY="/path/to/new-ca-key.pem"
# Mengecek tanggal kedaluwarsa sertifikat CA
EXPIRATION_DATE=$(openssl x509 -in "$CA_CERT" -noout -enddate | cut -d= -f2)
CURRENT_DATE=$(date -u +%Y%m%d%H%M%S)
# Mengonversi ke format yang dapat dibandingkan
EXP_DATE_COMPARABLE=$(date -d "$EXPIRATION_DATE" +%Y%m%d%H%M%S)
# Jika tanggal kedaluwarsa kurang dari 30 hari, buat sertifikat baru
if [ "$EXP_DATE_COMPARABLE" -lt "$(date -d "$CURRENT_DATE + 30 days" +%Y%m%d%H%M%S)" ]; then
# Buat kunci privat baru (jika diperlukan)
openssl genrsa -out "$NEW_CA_KEY" 2048
# Buat sertifikat CA baru
openssl req -x509 -new -nodes -key "$NEW_CA_KEY" -sha256 -days 3650 -out "$NEW_CA_CERT"
# Gantikan sertifikat CA lama dengan yang baru
mv "$NEW_CA_CERT" "$CA_CERT"
mv "$NEW_CA_KEY" "$CA_KEY"
# Restart layanan Routinator
systemctl restart routinator
echo "Sertifikat CA telah diperbarui dan Routinator telah direstart."
else
echo "Sertifikat CA tidak perlu diperbarui."
fi
2. Mengatur Hak Akses pada Skrip
Pastikan skrip memiliki izin eksekusi:
bashchmod +x /path/to/update_ca_cert.sh
3. Menjadwalkan Pembaruan Menggunakan Cron
Anda dapat menggunakan cron
untuk menjalankan skrip secara berkala. Misalnya, untuk menjalankan skrip ini setiap minggu, Anda dapat menambahkan entri berikut ke crontab:
bashcrontab -e
Tambahkan baris berikut:
bash0 0 * * 0 /path/to/update_ca_cert.sh >> /var/log/update_ca_cert.log 2>&1
Baris ini akan menjalankan skrip pada jam 12:00 setiap hari Minggu dan mencatat output ke file log.
4. Verifikasi
Setelah mengatur skrip dan cron, pastikan untuk memverifikasi bahwa skrip berfungsi dengan memeriksa log yang telah Anda tentukan dalam crontab dan memastikan bahwa sertifikat dan kunci baru telah dibuat sesuai kebutuhan.
5. Pemberitahuan (Opsional)
Untuk meningkatkan keamanan dan pemantauan, Anda mungkin ingin menambahkan notifikasi atau sistem pemantauan untuk memberi tahu Anda jika skrip berhasil atau jika terjadi kesalahan.
Dengan mengikuti langkah-langkah ini, Anda dapat mengimplementasikan solusi otomatis untuk memperbarui sertifikat CA yang digunakan oleh Routinator, meskipun Routinator tidak mendukung pembaruan otomatis secara langsung. Fastplay365