Setup SSL Dengan ZeroSSL

Pertama - tama lakukan register disini, Jika sudah klik tombol New Certificate. Lanjut ke step selanjutnya.

Step 1 : Masukkan domain

zerossl

  • Set Validity 90 Day (free plan)
  • Klik on button auto generate CSR
  • Pilih free plan

Step 2 : Verifikasi domain

WhatsApp Image 2024-02-20 at 9 53 20 PM

Ada 3 metode verifikasi, bisa menggunakan email, DNS (CNAME), atau HTTP file upload. Tapi pada tulisan ini verifikasi menggunakan DNS (CNAME).

Hanya perlu membuat record dns baru pada menu konfigurasi DNS di layanan domain. Set TTL ke 1 jam (1hr). Setelah itu lanjut ke next step dan tunggu proses verifikasi selesai.

zero

Step 3 : Install certificate

Download terlebih dahulu certificatenya. Pilih Nginx

  zero

ekstrak file zip dari hasil download certificate, didalamnya terdapat 3 file ca_bundle.crt, certificate.crt, private.key. Yang akan digunakan untuk SSL yaitu certificate.crt dan private.key, namun sebelumnya lakukan penggabungan file .crt dengan bundle ca.

merge .crt files↴

cat certificate.crt ca_bundle.crt >> certificate.crt

2 file tersebut (certificate.crt & private.key) harus disimpan didalam server. Maka keduanya harus di salin terlebih dahulu, atau melakukan unzip dan merge .crt didalam server.

Anda bisa gunakan kode script ini untuk melakukan otomatis unzip dan copy ke server dari local.


upload.sh↴


SSH_HOST=<your-host>
SSH_DIRECTORY=<your-directory>   # directory for certificate ssl. e.g >> /etc/ssl/testing
SSH_KEY=<your-ssh-key-path>      # e.g >> ~/.ssh/key.pem
FILE_ZIP=<your-file-zip>         # download on zero ssl
FOLDER=<destination-ekstrak>

cd Downlo
# Unzip file testing.zip
unzip $FILE_ZIP -d $FOLDER

# Masuk ke folder hasil ekstrak
cd $FOLDER

# Menggabungkan file certificate.crt dan ca_bundle.crt
cat certificate.crt ca_bundle.crt >> certificate.crt

# Membuat folder testing di server
ssh -i $SSH_KEY $SSH_USER@$SSH_HOST "sudo mkdir $SSH_DIRECTORY && sudo chmod o+w $SSH_DIRECTORY"

# Mengupload file certificate.crt ke server
sudo scp -i $SSH_KEY certificate.crt private.key $SSH_USER@$SSH_HOST:$SSH_DIRECTORY

# Mengubah kembali akses folder
ssh -i $SSH_KEY $SSH_USER@$SSH_HOST "sudo chmod o-w $SSH_DIRECTORY"

# Memberikan notifikasi bahwa proses telah selesai
echo "Proses upload file selesai."

Step 4 : Konfigurasi Nginx

Setelah melakukan unzip serta mengupload certificate ssl di folder server. Lalu melakukan settingan Nginx sederhana, yang nantinya lokasi path file certificate akan di setting di konfigurasi nginx.

  • Pergi ke /etc/nginx/site-available/ dan buat konfigurasi baru dengan nama apapun.

  • Masukkan kode dibawah ini untuk konfigurasi (ganti bagian yang diperlukan)

    server {
        listen 80;
        listen 443 ssl;
        server_name domain.com;  #ganti dengan nama domain anda
        
        ssl_certificate    /etc/ssl/testing/certificate.crt;  # ganti dengan path certificate yang ada diserver
        ssl_certificate_key    /etc/ssl/testing/private.key;    
    
        # folder root 
        root /var/www/html;
    
        index index.html index.htm;
    }
    
  • Buat tautan simbolik

    sudo ln -s /etc/nginx/sites-available/namafile /etc/nginx/sites-enabled/namafile
    

    ganti namafile dengan nama file konfigurasi anda

  • Cek Nginx Konfigurasi

    Lakukan pengecekkan apakah konfigurasi sudah benar dengan command ini :

    sudo nginx -t
    

    jika outputnya seperti ini berarti sudah ok,

    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    
  • Reload Nginx

    sudo systemctl reload nginx
    

Terakhir cek domain anda di browser, web akan menampilkan default html Nginx sederhana dan ada lambang kunci di urlnya artinya sudah berhasil menerapkan SSL 🚀

Posting Komentar untuk "Setup SSL Dengan ZeroSSL"