Free SSL dengan ZeroSSL
-
Register akun terlebih dahulu disini
-
Klik
New Certificate
Step 3 : Masukkan domain
- Set
Validity
90 Day (free plan) - Klik
on button
auto generate CSR - Pilih free plan
Step 4 : Verifikasi domain
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.
Step 5 : Install certificate
Download terlebih dahulu certificatenya. Pilih Nginx
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
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)
nginx1server { 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
bash1sudo 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 :
bash1sudo nginx -t
jika outputnya seperti ini berarti sudah ok,
bash1nginx: the configuration file /etc/nginx/nginx.conf syntax is ok 2nginx: configuration file /etc/nginx/nginx.conf test is successful
-
Reload Nginx
bash1sudo 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 🚀