Bash Script - Populate CRT-list dari Letsencrypt untuk Haproxy

 cat generate_pem_letencrypt/generate_pem.sh

 

#!/bin/bash

folder="/etc/letsencrypt/live"
crt_list="/software/script/generate_pem_letencrypt/crt_list.txt"
crt_folder="/software/script/generate_pem_letencrypt/certs"
rm -f $crt_list
restart=0
for fpath in "$folder"/*/; do
    fname=$(basename "$fpath")
    #renew ssl
    sudo certbot renew --http-01-port=8080 --cert-name $fname

    echo "/etc/haproxy/certs/${fname}" >> $crt_list
    cat "${folder}/${fname}/fullchain.pem" > $crt_folder/$fname
    cat "${folder}/${fname}/privkey.pem" >> $crt_folder/$fname

    crt1=`md5sum $crt_folder/$fname | cut -d" " -f1`
    crt2=`md5sum /etc/haproxy/certs/$fname | cut -d" " -f1`
    if [[ "$crt1" != "$crt2" ]]; then
        rsync -avz $crt_folder/$fname /etc/haproxy/certs/$fname
        restart=1;
    fi
done

if [[ "$restart" == "1" ]]; then
    rsync -avz  $crt_list /etc/haproxy/
    service haproxy restart
fi
 

Komentar