Mendapatkan A+ pada ssl test di SSLABS

3
1011

Halo sobat sekolahlinux belakangan ini saya mencoba melakukan test pada web server saya yang saya pasang ssl, Mendapatkan A+ pada ssl test di SSLABS.com, saya test di https://www.ssllabs.com/ssltest/ dan pada awalnya saya hanya mendapat rating B 😀 hahaha tidak buruk tapi banyak yang harus disempurnakan, berikut ini capture dari hasil testnya, oh iya saya menggunakan NGINX V 1.9.xx

s1

dari hasil test pertama diatas ada 2 masalah yang harus diperbaiki yaitu

  1. This server supports weak Diffie-Hellman (DH) key exchange parameters
  2. The server does not support Forward Secrecy with the reference browsers

untuk mengatasi permasalahan pertama jalankan command dibawah ini untuk generate DH-parameter file “dhparam.pem” nya

cd /etc/nginx
openssl dhparam -out dhparam.pem 4096

lalu setelahnya tambahkan rule dibawah ini pada rule https di “server” kalian

ssl_dhparam /etc/nginx/dhparam.pem;

sedangkan untuk mengatasi permasalah kedua tambahkan rule dibawah ini pada rule https “server” kalian

ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;

nah berikut ini tambahan untuk webserver kalian agar lebih secure dan mendapat A+

untuk mencegah drown dan poodle attack kalian bisa disable SSLv2 dan SSLv3 dengan menambahkan rule dibawah ini pada rule https “server” kalian.

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

jika sudah tambahkan rule dibawah ini pada rule https “server” untuk menerapkan HTTS (HTTP Strict Transport Security)

add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";

secara keseluruhan rule tadi jika dimasukkan kedalam file “/etc/nginx/conf.d/default.conf” akan menjadi seperti dibawah,

server {
client_max_body_size 40M;
listen 80;
listen 443 ssl http2;
server_name sekolahlinux.com;

ssl on;
ssl_certificate /dev/sekolahlinux.com.crt;
ssl_certificate_key /dev/sekolahlinux.com.key;

#RULE SAYA LETAKKAN DISINI
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_dhparam /etc/nginx/dhparams.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";

location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass      https://sekolahlinux.com:1708;
proxy_redirect off;
}

if ($scheme = http) {
        return 301 https://$server_name$request_uri;
}

}

setelah itu restart nginx kalian

service nginx restart

dan coba jalankan testnya lagi, maka hasilnya akan seperti dibawah

s2

hehehe sekian tutorial kali ini, semoga berhasil mencoba ya, untuk beberapa engine web server lainnya seperti apache lighttpd kalian bisa lihat disini, karena lumayan panjang hehe.

sumber:

3 COMMENTS