Minggu, 17 April 2016

Membuat sertifikat openvpn menggunakan EasyRSA


EasyRSA merupakan salah satu tool yang sangat berguna ketika kita harus membuat sertifikat/keys untuk aplikasi openvpn baik itu untuk CA sertifikat, Server sertifikat maupun Client sertifikat.
Banyak perubahan perintah-perintah dari versi sebelumnya yaitu versi 2 dengan versi 3 yang sekarang saya pakai.
Untuk itu saya mencoba membuat bash script yang simple saja untuk memudahkan dalam proses pembuatan sertifikat/key ini.
Sebelum mulai download terlebih dahulu utility easyrsa :
https://github.com/OpenVPN/easy-rsa/releases/download/3.0.1/EasyRSA-3.0.1.tgz
Setelah itu ekstrak file tersebut menjadi directory EasyRSA-3.0.1 kemudian masuk kedalamnya.
Buat file bash skrip dengan nama build-cert dan masukan baris-baris dibawah ini :

#!/bin/bash 
#### Description: Script to build & manage RSA key easily  
#### Written by: Aghe Milano - edwa94@gmail.com on 04-2016 
WKDIR="`pwd`" 
KEYS="$WKDIR/keys" 
CACERT="$WKDIR/pki/ca.crt" 
mkdir -p $KEYS 
if [ ! -d "pki" ]; then 
    $WKDIR/easyrsa init-pki 
     cp vars.example vars 
fi 
if [ ! -f "$CACERT" ] 
then 
    echo "Building CA cert & Key... " 
    $WKDIR/easyrsa build-ca 
    cp $CACERT $KEYS 
    cp $WKDIR/pki/private/ca.key $KEYS 
fi 
echo -e "\e[1m\e[32mPlease Choose your certificate type" 
PS3="Please enter your choice: 1)Server 2)Client 3)Quit " 
options=("Server" "Client" "Quit") 
select opt in "${options[@]}" 
do 
    case $opt in 
        "Server") 
        echo -e "\e[39mType your server unique name: " 
        read svrname 
        echo -e "\e[33mBuilding Server Certificate.." 
        $WKDIR/easyrsa gen-req $svrname nopass 
        $WKDIR/easyrsa sign server $svrname 
        $WKDIR/easyrsa gen-dh 
        openvpn --genkey --secret ta.key 
        cp $WKDIR/ta.key $KEYS        
        cp $WKDIR/pki/dh.pem $KEYS 
        cp $WKDIR/pki/issued/$svrname.crt $KEYS 
        cp $WKDIR/pki/private/$svrname.key $KEYS 
        ;; 
        "Client") 
                echo -e "\e[39mType your client unique name: " 
        read clientname 
        echo -e "\e[33mBuilding Client Certificate.." 
        $WKDIR/easyrsa gen-req $clientname nopass 
        $WKDIR/easyrsa sign server $clientname 
        cp $WKDIR/pki/issued/$clientname.crt $KEYS 
        cp $WKDIR/pki/private/$clientname.key $KEYS 
        ;; 
        "Quit") 
            break 
            ;; 
        *) echo invalid option;; 
    esac 
done 


Save file build-cert dan berikan flag chmod +x agar dapat di eksekusi diterminal.
Jalankan skrip build-cert dan perhatikan hal pertama yang skrip ini lakukan adalah membuat CA (certificate Authority) anda akan diminta memasukan password harap diingat password ini jangan sampai lupa karena akan diminta saat pembuatan server dan client sertifikat.
Setelah itu skrip akan meminta kita untuk memilih akan membuat server sertifikat atau client sertificate pastikan kita memilih server sertifikat terlebih dahulu.
Setelah itu baru kita bisa memilih client sertifikat sebanyak client yang kita miliki.
Semua sertifikat dan private keys akan dicopy ke directory keys didalam directory EasyRSA-3.0.1 silahkan dipindahkan sesuai konfigurasi dari openvpn yang kita gunakan baik server maupun client.