Setting SSL Google Cloud (Ubuntu, Nginx)

No Comments

Sudah hampir setahun saya tidak menulis blog lagi, hari ini ketika membuka website saya di https://gisari.com muncul warning (sertifikat ssl bermasalah) sehingga oleh browser google chrome, dianggap website yang berbahaya. Oke, untuk itu saya akan membagikan langkah apa saja untuk memperbaiki kendala tersebut.

1. Install Certbot

Tambahkan repository certbot dan install versi terakhir dengan apt

$ sudo add-apt-repository ppa:certbot/certbot

$ sudo apt update

Install package certbot untuk Nginx

$ sudo apt install python-certbot-nginx

2. Izinkan HTTPS di konfigurasi firewall

untuk mengaktifkan firewall

$ sudo ufw enable

untuk mengizinkan trafik HTTPS di firewall 

$ sudo ufw allow "Nginx HTTPS"

3. Generate Sertifikat SSL dari Certbot

$ sudo certbot --nginx certonly

isikan email dan setujui "terms and conditions", jika muncul daftar domain, enter saja 

certbot client akan mengenerate sertifikat domain Anda, setelah generate, certbot akan memberitahukan dimana letak path ssl key yang dihasilkan

4. Install / Konfigurasi Sertifikat SSL

Buka konfigurasi Nginx dengan menambah dan mengedit beberapa baris

$ sudo nano /etc/nginx/sites-available/yourdomain.com

pada script di dalam server { .....}

ganti 

listen 80;

dengan

listen 443 ssl http2;

kemudian tambahkan path sertifikat ssl di bawah script server_name

ssl_certificate harus diisi dengan path file fullchain.pem

ssl_certificate_key harus diisi dengan path file privkey.pem

ssl_certificate /etc/letsencrypt/live/gisari.com/fullchain.pem;

ssl_certificate_key /etc/letsencrypt/live/gisari.com/privkey.pem;

5. Redirect Nginx untuk meneruskan trafik HTTP ke HTTPS

taruhlah blok script di bawah ini di atas server block nginx conf Anda untuk meredirect request http dan request tanpa www ke https dengan www

server {

    listen [::]:80;

    listen 80;     

    server_name yourdomainname.com www.yourdomainname.com;     


    # redirect http to https www     

    return 301 https://www.yourdomainname.com$request_uri; 


server {     

    listen [::]:443 ssl http2;     

    listen 443 ssl http2;

    

    server_name yourdomainname.com;


    ssl_certificate /etc/letsencrypt/live/yourdomainname.com/fullchain.pem;     

    ssl_certificate_key /etc/letsencrypt/live/yourdomainname.com/privkey.pem;     


    root /home/username/yourdomainname.com/public/; 

    index index.html index.php; 


    # redirect https non-www to https www 

    return 301 https://www.yourdomainname.com$request_uri; 

}

http2 adalah meng-enable protocol HTTP/2

bismillah, dan simpan konfigurasi serta restart Nginx agar bekerja sesuai harapan

6. Memperbaharui Sertifikat SSL 

sayangnya, sertifikat yang dibuat let's encrypt ini hanya valid untuk 90 hari saja (sudah capai-capai konfigurasi), tapi tenang, kita akan membuat scheduler / cronjob untuk mengecek dan memperbarui lisensinya

$ sudo crontab -e

pilih "nano" saja yang gampang

tambahkan baris ini 

$ 0 0,12 * * * certbot renew >/dev/null 2>&1

maksudnya script di atas adalah untuk mengecek dan memperbarui 2 kali sehari

7. Verifikasi Sertifikat SSL

Semua proses telah selesai, saatnya memastikan ssl kita sudah berhasil atau belum, dengan cara buka website Anda

Previous PostOlder Post Home

0 comments

Post a Comment