Monday, 16 January 2017

SSL Gratis, Let's encrypt Cara konfigurasi dan installasi dengan Nginx

Siang ini saya mau bagi-bagi cara dapetil SSL Free, hehe

kita kenalan dulu sama Let's Encrypt yg menyediakan SSL/TLS gratis, terotomatisasi, dan opensource yang diharapkan memberi manfaat bagi publik dari segi keamanan berinternet.
Sertifikat SSL ini disediakan oleh Internet Security Research Group (ISRG)





Sebelum kita gunakan ini ada beberapa hal dari Let's Encrypt yang perlu kita tahu bulat:


  • Gratis: Setiap mahluk orang yg memiliki domain bisa menggunakan Let's Encrypt untuk memperoleh sertifikat SSL yg bisa dipercaya secara gratis :v mantaf.
  • Otomatis: Buat dapetin sertifikat SSL dari Let's Encrypt caranya gampang banget, cepet lagi :3 dikarenakan proses otomatisasi.
  • Aman: Dengan menggunakan SSL di server kita jadi keamanan bisa lebih terjamin. Apalagi Let's Encrypt mendukung hampir semua browser yang ada :3.
  • Transparan: Data dari semua SSL tercatat secara publik di database mereka yang memungkinkan semua orang untuk menelitinya.
  • 90 hari: Masa berlaku dari sertifikat SSL gratisan ini hanya 90 hari tapi dikarenakan mendukung otomatisasi sehingga gak masalah karena bisa auto-renew.

Installasi dan konfigurasi : 

Langkah 1 - Install Let's Encrypt Client

Langkah pertama untuk menggunakan Let's Encrypt untuk memperoleh sertifikat SSL adalah dengan menginstal software certbot-auto pada server. Saat ini, cara terbaik untuk menginstal certbot-auto adalah untuk download dari situs download EFF's. klien akan secara otomatis dan mendapakan update yang tersedia dan yang diperlukan setelah instalasi.

kalian bisa download certbot-auto Let'S Encrypt ke /usr/local/sbin dengan mengetikkan:


$ cd /usr/local/sbin
$ sudo wget https://dl.eff.org/certbot-auto


Harusnya sekarang ada certbot-auto di directory /usr/local/sbin :3 klo gak ada ya nasib ulangi langkah tadi :v.

Buat file tadi bisa dieksekusi dengan cara

$ sudo chmod a+x /usr/local/sbin/certbot-auto

Langkah 2 - Mendapatkan Sertifikat
Edit file /etc/nginx/nginx.conf
Tambahkan di baris ini:

server {
       . . .
        location ~ /.well-known {
                allow all;
        }
        . . .
}

Sekarang eksekusi perintah ini
$ sudo certbot-auto certonly -a webroot --webroot-path=/usr/share/nginx/html -d contoh.com -d www.contoh.com
ganti contoh.com dengan website kalian

Oya jangan lupa mengizinkan port 443/SSL di firewall kalian masing2


Generate Strong Diffie-Hellman Group

Untuk lebih meningkatkan keamanan, kita juga harus menghasilkan Diffie-Hellman group yg kuat. Untuk menghasilkan grup 2.048-bit, gunakan perintah ini:

$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Untuk yg bingung Diffie-Hellman itu apa bisa klik cari di mbah gugel :3

Langkah 3 - Konfigurasi TLS / SSL di Web Server (Nginx)

Edit file /etc/nginx/nginx.conf
Cari yg kaya gini

listen 80 default_server;
listen [::]:80 default_server ipv6only=on;

trus kasih ; atau # atau dihapus aja gpp :3
trus tambahin di dalem server { }

listen 443 ssl;

server_name contoh.com www.contoh.com;

ssl_certificate /etc/letsencrypt/live/contoh.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/contoh.com/privkey.pem;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security max-age=15768000;

perintah tadi untuk mengaktifkan SSL di web server kalian

terakhir tambahin di luar server {}


server {
    listen 80;
    server_name example.com www.example.com;
    return 301 https://$host$request_uri;
}

jadi ada dua server{}
Save dan exit

lalu cek konfigurasi
$ sudo nginx -t

Lalu jika tidak ada masalah silahkan restart nginx nya
Jika sudah berhasil maka di atas url kalian akan bertuliskan secure hehe




sekian dari saya jika ada yg kurang jelas bisa ditanyakan di kolom komentar :3

Sumber:
https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-14-04
https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange

No comments:

Post a Comment