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 :
EasyRSA-unix-v3.0.6.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: Agus Prasetia - [email protected] 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 "Please Choose your certificate type"
PS3="Please Pick your choice: 1)Server 2)Client 3)Quit "
options=("Server" "Client" "Quit")
select opt in "${options[@]}"
do
case $opt in
"Server")
echo -e "Type your SERVER unique name: "
read svrname
echo -e "Building 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 "Type your CLIENT(S) unique name: "
read clientname
echo -e "Building Client Certificate.."
$WKDIR/easyrsa gen-req $clientname nopass
$WKDIR/easyrsa sign client $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.6 silahkan dipindahkan sesuai konfigurasi dari openvpn yang kita gunakan baik server maupun client.

7 thoughts on “Membuat sertifikat openvpn menggunakan EasyRSA”
  1. eror :
    bash: ./build-cert: /bin/bash^M: bad interpreter: No such file or directory

    masalah dimana nya ya sdahh sesuai petunjuk di atas

    1. Selamat datang Mas Diyan,
      Text editor yang di pakai menggunakan apa karena sepertinya line break di editor nya menggunakan Dos/Windows style CR LF, sedangkan linux hanya mengenali LF sebagai Line Break.
      Solusinya Buat file build-cert nya menggunakan text editor vi .
      Atau bisa juga dengan convert file build-cert menggunakan program dos2unix.
      $ sudo apt install dos2unix
      $ dos2unix Build-cert
      dos2unix: converting file Build-certs to Unix format…

      Lalu coba jalankan lagi ./build-cert

  2. #!/bin/bash

    #### Description: Script to build & manage RSA key easily  

    #### Written by: Agus Prasetia – [email protected] 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 “Please Choose your certificate type”

    PS3=”Please Pick your choice: 1)Server 2)Client 3)Quit ”

    options=(“Server” “Client” “Quit”)

    select opt in “${options[@]}”

    do

    case $opt in

    “Server”)

    echo -e “Type your SERVER unique name: ”

    read svrname

    echo -e “Building 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 “Type your CLIENT(S) unique name: “

Leave a Reply

Your email address will not be published. Required fields are marked *