Free SSL dengan ZeroSSL Link to this heading

  1. Register akun terlebih dahulu disini

  2. Klik New Certificate

Step 3 : Masukkan domain Link to this heading

zerossl

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

Step 4 : Verifikasi domain Link to this heading

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 5 : Install certificate Link to this heading

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↴

sh
 1SSH_USER=<your-user-host>
 2SSH_HOST=<your-host>
 3SSH_DIRECTORY=<your-directory>   # directory for certificate ssl. e.g >> /etc/ssl/testing
 4SSH_KEY=<your-ssh-key-path>      # e.g >> ~/.ssh/key.pem
 5FILE_ZIP=<your-file-zip>         # download on zero ssl
 6FOLDER=<destination-ekstrak>
 7
 8cd Downlo
 9# Unzip file testing.zip
10unzip $FILE_ZIP -d $FOLDER
11
12# Masuk ke folder hasil ekstrak
13cd $FOLDER
14
15# Menggabungkan file certificate.crt dan ca_bundle.crt
16cat certificate.crt ca_bundle.crt >> certificate.crt
17
18# Membuat folder testing di server
19ssh -i $SSH_KEY $SSH_USER@$SSH_HOST "sudo mkdir $SSH_DIRECTORY && sudo chmod o+w $SSH_DIRECTORY"
20
21# Mengupload file certificate.crt ke server
22sudo scp -i $SSH_KEY certificate.crt private.key $SSH_USER@$SSH_HOST:$SSH_DIRECTORY
23
24# Mengubah kembali akses folder
25ssh -i $SSH_KEY $SSH_USER@$SSH_HOST "sudo chmod o-w $SSH_DIRECTORY"
26
27# Memberikan notifikasi bahwa proses telah selesai
28echo "Proses upload file selesai."

Step 6 : Konfigurasi Nginx Link to this heading

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)

    nginx
     1server {
     2    listen 80;
     3    listen 443 ssl;
     4    server_name domain.com;  #ganti dengan nama domain anda
     5
     6    ssl_certificate    /etc/ssl/testing/certificate.crt;  # ganti dengan path certificate yang ada diserver
     7    ssl_certificate_key    /etc/ssl/testing/private.key;    
     8
     9    # folder root 
    10    root /var/www/html;
    11
    12    index index.html index.htm;
    13}
  • Buat tautan simbolik

    bash
    1sudo 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 :

    bash
    1sudo nginx -t

    jika outputnya seperti ini berarti sudah ok,

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

    bash
    1sudo 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 🚀