Bagaimana cara Routinator memperbarui sertifikat CA secara otomatis

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