Sebelumnya saya telah menulis panduan untuk mendapatkan hasil nilai A+ pada Qualys SSL dengan menggunakan engine Apache2, bisa dilihat disini panduannya >>> Tips Mendapatkan Nilai A+ pada Hasil Qualys SSL Labs dengan Apache
Nahh untuk kali ini kita akan coba menggunakan Nginx sebagai web server nya, dan akan disetup sedemikian rupa agar ketika di cek pada Qualys SSL, akan mendapatkan nilai A+
Langsung saja berikut tahapannya, disini saya menggunakan Ubuntu 20.04 sebagai OS nya
1. Siapkan file SSL Certificate
Yang pertama dibutuhkan yaitu SSL Certificate, bagi yang belum memilikinya, Excellent provide untuk layanan SSL Certificate tersebut, monggo yang mau baca-baca dahulu kelebihannya, bisa klik disini https://www.excellent.co.id/ssl/
2. Install SSL Certificate pada Virtual Host
Jika sudah memiliki file SSL, siapkan file SSL berformat .pem, kemudian Install SSL tersebut pada salah 1 file virtual host yang akan di setup, biasanya letaknya ada di directory /etc/nginx/sites-available. Di bagian section server untuk listen 443 ssl http2, tambahkan script berikut tepat dibawah server_name
ssl_certificate /etc/nginx/ssl/commercial.pem; ssl_certificate_key /etc/nginx/ssl/commercial.pem; ssl_protocols TLSv1.2;
3. Konfigurasi SSL Cipher
Untuk meningkatkan nilai SSL, diwajibkan untuk konfigurasi SSL Cipher ini, misal mendisable cipher yang sudah weak dll. Silakan tambahkan script berikut dibawah ssl_protocol
ssl_prefer_server_ciphers on; ssl_ciphers TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:TLS-AES-128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4;
4. Aktivasi HSTS
HSTS merupakan mekanisme keamanan website yang memaksa web browser untuk mengakses website hanya via HTTPS. HSTS juga dapat mencegah dari protocol downgrade attacks dan cookie hijacking. Untuk aktivasinya, silakan tambahkan script berikut ini tepat dibawah ssl_ciphers
add_header Strict-Transport-Security "max-age=63072000; preload";
Berikut ini salah satu contoh file virtualhost yang saya set :
server { access_log /var/log/nginx/nextcloud.rizkypratama.id-access.log; log_not_found off; error_log /var/log/nginx/nextcloud.rizkypratama.id-error_log; listen 443 ssl http2; server_name nextcloud.rizkypratama.id; ssl_certificate /etc/nginx/ssl/commercial.pem; ssl_certificate_key /etc/nginx/ssl/commercial.pem; ssl_protocols TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:TLS-AES-128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4; add_header Strict-Transport-Security "max-age=63072000; preload"; add_header Referrer-Policy no-referrer always; add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; add_header X-Robots-Tag none; add_header X-Download-Options noopen; add_header X-Permitted-Cross-Domain-Policies none; add_header X-Frame-Options "SAMEORIGIN"; location ~* .(gif|jpg|jpeg|png|ico|wmv|3gp|avi|mpg|mpeg|mp4|flv|mp3|mid|js|css|wml|swf)$ { root /var/www/nextcloud; expires max; add_header Pragma public; add_header Cache-Control "public, must-revalidate, proxy-revalidate"; } location / { root /var/www/nextcloud; index index.php index.html index.htm; # WordPress permalinks configuration try_files $uri $uri/ /index.php?$args; } # php-parsing location ~ .php$ { root /var/www/nextcloud; try_files $uri =404; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_buffer_size 128k; fastcgi_read_timeout 150; fastcgi_buffers 256 4k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; } }
Jika sudah, silakan save dan restart nginx nya
service nginx restart
Sekarang silakan di cek di Qualys SSL Labs Test untuk mengecek hasilnya dan mendapatkan nilai berapa
https://www.ssllabs.com/ssltest/
Berikut hasil dari salah 1 web saya yang sudah mendapat nilai A+
Mungkin cukup sekian, semoga bermanfaat
Rizky Pratama. Tinggal di Bekasi, Jawa Barat. Seorang IT di salah satu perusahaan IT. Pengguna Mac, Linux dan Windows
Selain sebagai penulis di blog ini, saya juga penulis di blog saya yang lain, yaitu https://pratama.biz.id
Pada bulan April 2024 lalu, Ubuntu telah release versi terbaru yaitu Ubuntu 24.04 LTS, sehingga…
Ngga nyangka akhirnya saya bisa login kembali ke blog saya yang sudah berdebu ini, kali…
Beberapa waktu lalu, Excellent mendapatkan project migrasi Zimbra dari versi Open Source Ke Zimbra Network…
Bulan Oktober 2022 lalu, Apple resmi release MacOS terbaru mereka, yaitu MacOS Ventura. Beberapa fitur…
Tidak terasa sudah cukup lama saya tidak update tulisan pada blog ini lagi, akhirnya kali…
Tahun baru 2022 telah tiba, tidak terasa waktu berjalan begitu cepat, banyak cerita dan kenangan…