Perlu diketahui sertifikat self-signed SSL ini hanya untuk pembelajaran penggunaan SSL saja, jangan Anda gunakan sebagai sertifikat utama jika Anda memiliki situs yang berdomain. Mengapa? Karena sertifikat self-signed SSL ini tidak di baca oleh peramban (browser) secara otomatis. Jika Anda ingin otomatis, gunakan sertifikat yang diakui seperti Let's Encrypt.
Tahap Instalasi
Pertama-tama pastikan Anda sudah memasang Nginx pada Ubuntu Anda. Bisa lihat pada tulisan lama di linuxku.com yakni:- http://www.linuxku.com/2016/06/install-lamp-linux-apache-mysql-dan-php.html
- Opsional saja jika Anda menggunakan virtual host di Nginx:
http://www.linuxku.com/2016/05/menerapkan-virtualhost-untuk-keperluan.html
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crtBerikut ini keterangan dari perintah di atas:
- req: Adalah perintah untuk me-request.
- -x509: Tipe atau nama tampilan sertifikat yang digunakan.
- -nodes: Opsi ini memberitahu kepada OpenSSL untuk melewatkan pengamanan sertifikat dengan frasa sandi. Kita perlu Nginx untuk dapat membaca berkas tanpa campur tangan pengguna, ketika server dijalankan, dengan adanya opsi ini mencegah kita memasukan kata sandi setiap restart.
- -days 365: Opsi ini adalah durasi lamanya sertifkat, contoh di sini 365 hari atau setara dengan satu tahun.
- -newkey rsa:2048: Opisi ini adalah opsi untuk meng-generate sertifikat RSA key sebanyak 2048 bit.
- -keyout: Opsi ini adalah tempat untuk menaru private key.
- -out: Opsi ini adalah hasil sertifikat yang kita buat.
Country Name (2 letter code) [AU]:ID State or Province Name (full name) [Some-State]:Jakarta Locality Name (eg, city) []:South Jakarta Organization Name (eg, company) [Internet Widgits Pty Ltd]:Cilsy Fiolution Organizational Unit Name (eg, section) []:Linux Support Common Name (e.g. server FQDN or YOUR name) []:192.168.2.8 Email Address []:admin@linuxku.com
Di samping kita menggunakan OpenSSL, kita juga perlu membuat grup Diffie-Hellman yang kuat, yang digunakan dalam negosiasi Perfect Forward Secrecy dengan klien.
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Pembuat Diffie-Hellman membutuhkan waktu yang cukup lama tergantung seberapa cepat komputer Anda menciptakan generated code sebanyak 2048 bit.
Tahap konfigurasi
Pertama-tama kita buat dahulu direktori snippts:$ sudo mkdir /etc/nginx/snippetsLalu buat berkas dengan nama self-signed.conf:
$ sudo nano /etc/nginx/snippets/self-signed.confDan isikan seperti skrip di bawah ini:
ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt; ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;Lalu buat berkas ssl-param.conf:
$ sudo nano /etc/nginx/snippets/ssl-params.confDan isinya seperti skrip di bawah ini:
# from https://cipherli.st/ # and https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH"; ssl_ecdh_curve secp384r1; ssl_session_cache shared:SSL:10m; #ssl_session_tickets off; ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 5s; # Disable preloading HSTS for now. You can use the commented out header line that includes # the "preload" directive if you understand the implications. #add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"; add_header Strict-Transport-Security "max-age=63072000; includeSubdomains"; add_header X-Frame-Options DENY; add_header X-Content-Type-Options nosniff; ssl_dhparam /etc/ssl/certs/dhparam.pem;Kemudian tahap pengaturan di Nginx, kita gunakan virtualhost pada vhost default, yakni:
$ sudo nano /etc/nginx/sites-available/defaultIsi dengan skrip berikut:
server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; server_name coba.com; return 302 https://$server_name$request_uri; } server{ ssl on; listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; include snippets/self-signed.conf; include snippets/ssl-params.conf; }
Tahap Testing
Setelah sudah semua sekarang kita coba tes, ketik https di peramban Anda:Anda akan dimintai sertifikat, seperti uraian sebelumnya bahwa sertifikat self-signed SSL tidak otomatis dideteksi oleh peramban, jadi Anda perlu menambahkan pengecualian (Add Exception).
Jika sudah berhasil maka tampilan server Anda akan seperti gambar di bawah ini:
Semoga bermanfaat. :)
Sumber:
- https://www.digitalocean.com/community/tutorials/how-to-create-a-self-signed-ssl-certificate-for-nginx-in-ubuntu-16-04
Website ini menganut paham demokrasi wkwk
Jangan lupa gunakan emot biar akrab gan (/ ^.^)/
EmoticonEmoticon