Panduan konfigurasi SSL untuk mendapatkan skor sempurna dari SSL Labs

Menjalankan server web itu menyenangkan sekaligus menyusahkan. Menciptakan dunia (dalam jaringan, DARING) dengan ekosistem yang sepenuhnya dapat di atur sekaligus bertarung dengan batas-batas kemampuan fisik. Ketika kita tidur (yang mana itu pasti terjadi) ~ orang lain mungkin malah terjaga, bagaimana dengan penjagaan keamanan server ?.

Sebagai sesuatu yang kompleks, Server web memiki banyak aspek dan wilayah ~ sebagaimana inginnya setiap pengelola dan pemilik untuk dapat menyediakan fitur dengan pelayanan yang baik bagi pengguna dan pengunjungnya. Di antara aspek dan wilayah tersebut, adalah SSL.

Anda telah tiba di artikel ini, tentunya telah mengetahui bahwa; bagi situs web yang menyediakan atau menerima data pribadi, SSL bukan lagi pilihan, melainkan persyaratan (wajib).

Mengenal SSL Labs

Konfigurasi SSL sendiri memiliki banyak variabel yang memungkinkan pengaturan kualitas keamanan dan kompatibilitas (kemudahan akses) terhadap pengelolaan server web. Penjelasan pada artikel kali ini akan condong pada salah satu Testing Tools and Documentation yang mengaku paling the best untuk urusan SSL/TLS and PKI, Qualy SSL Labs.

Information security & compliance | Qualys, Inc

Dalam posisinya sebagai salah satu perusahaan penyedia layanan keamanan sistem online terkemuka, Qualy mendirikan SSL Labs (lembaga riset non-komersil yang menyediakan sumber kepustakaan untuk membantu pengimplementasian SSL/TLS dengan benar dan fasilitas uji keamanan SSL/TLS web-server secara online dan cuma-cuma a.k.a GRATISAN). Cukup dengan memasukkan url web-server, dalam beberapa saat SSL Labs akan memberikan laporan tingkat keamanan, permasalahan yang ada, dan saran-saran peningkatan keamanan SSL/TLS web-server terkait.

Rangkuman penilaian SSL Labs dibagi menjadi 4; CertificateProtocol SupportKey ExchangeCipher Strength. Mengenai nilai/skoring hasil test SSL Labs menggunakan keterangan A+ sebagai yang tertinggi, kemudian ABCDEF dan seterusnya.

Laporan hasil tes disajikan cukup komprehensif dan mungkin agak sulit dimengerti bagi yang tidak familiar dengan terminologi keamanan sistem server web.

Panduan konfigurasi SSL untuk mendapatkan skor A+ dari SSL Labs

Note: Tutorial konfigurasi SSL ini mencontohkan dan menjelaskan tahap konfigurasi pada/menggunakan Nginx.

Sertifikat SSL

Bagian ini mudah untuk mendapatkan 100%

  • Pastikan sertifikat dan chain berada dalam urutan yang benar.
  • Jangan gunakan SHA1 (gunakan SHA256) untuk algoritma signature.
  • Gunakan CA yang tepercaya

Penjelasan hasil tes SSL Labs cukup baik pada permasalahan ini.

Dukungan Protokol

Langkah terbaik untuk memulai konfigurasi pengamanan situs web adalah dengan Dukungan Protokol. Salah satu variabel pengaturan SSL ini secara default tidak mengaktifkan SSLv2, dan menganjurkan untuk tidak lagi mengandalkan SSLv3. Keduanya akhir-akhir ini meningkatkan kerentanan POODLE.

Itu artinya secara default Protocol Support merekomendasikan untuk hanya mendukung TLS

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

Secara default konfigurasi ini cukup aman dan berkontribusi memberikan skor 95 di SSL Labs. Belum cukup untuk mendapatkan skor “sempurna”. Untuk mendapatkan skor sempurna pada variabel ini anda perlu menonaktifkan TLSv1.0 dan TLSv1.1, dengan begitu akhirnya baris perintah diatas akan menjadi:

ssl_protocols TLSv1.2;

Pertukaran Kunci

Secara default, Nginx akan menggunakan paramater DHE (Ephemeral Diffie-Hellman) default yang disediakan oleh openssl. Ini menggunakan kunci lemah yang mendapat skor lebih rendah. Hal terbaik untuk dilakukan adalah membangun milik Anda sendiri. Anda dapat membuat kunci 2048 bit, tapi mari kita lanjutkan dan melemparkan 4096.

Pertama, Anda perlu membangun file. Saya akan menganggap Anda menyimpan file SSL di / etc / nginx / ssl.

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

Kemudian dalam konfigurasi Nginx Anda, Anda akan membutuhkan ini.

ssl_dhparam ssl/dhparam.pem;

Kekuatan Sandi

Konfigurasi yang satu ini selalu mengalami pembaharuan (berubah-ubah). Pengaturan terbaik hari ini, belum tentu bernilasi sama besok. Di sini, anda akan dibingungkan antara keamanan tinggi dan kompatibilitas. Sesuai dengan topik postingan ini, kami hanya peduli dengan keamanan (demi skor A+ SSL Labs).

ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;
ssl_prefer_server_ciphers on;

Stapel SSL

Stapel SSL tidak benar-benar membuat server web lebih aman, tapi dapat membantu klien secara signifikan. Gunanya adalah untuk memberi tahu bahwa pengunjung dapat menggunakan server sebagai informasi OCSP untuk domain. Alih-alih membiarkan browser membuat permintaan ke resource (seringkali tidak dapat diandalkan).

ssl_stapling on;
ssl_stapling_verify on;

Sesi SSL

Mempertahankan Sesi SSL jelas merupakan hal yang baik, jika mengharapkan pengguna berada di situs web selama lebih dari satu tampilan halaman. Ini adalah pengaturan yang cenderung mudah dan umum

ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;

Ekstra: ssl_ecdh_curve

Beberapa implementasi openssl tidak memberikan default yang baik kepada nginx, karenanya kita akan menentukan secara manual.

ssl_ecdh_curve secp384r1;

Opsi x25519 adalah yang lebih aman tetapi akan mempengaruhi kompatibilitas server, demi mendapatkan skor A+ SSL Labs kompatibilitas akan dikesampingkan.

Tajuk/Header HTTP

Tambahkan baris tajuk dibawah ini

add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;

Konfigurasi Gzip

Beberapa serangan dimungkinkan karena gzip diaktifkan pada permintaan SSL. Dalam kebanyakan kasus, tindakan terbaik adalah cukup menonaktifkan gzip untuk permintaan SSL.

Blok SSL:

gzip off;

Kombinasikan

Jalankan perintah:

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

Konfigurasi Nginx:

ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam ssl/dhparam.pem;
ssl_ecdh_curve secp384r1;

add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;

Pastikan pada setiap blok server terdapat baris perintah untuk SSL:

server {
    listen 443 ssl;
    # gzip should not be used with ssl
    gzip off;
}

Ingatlah bahwa Anda mengorbankan kompatibilitas demi keamanan!

Mau punya Tema WordPress unik ?, atau punya desain kesukaan yang ingin dibuat menjadi Tema WordPress ?

Pesan Jasa Desain Tema Wordpress Sekarang

Berikan tanggapan

This site uses Akismet to reduce spam. Learn how your comment data is processed.