Friday 28 April 2017

Setup HTTPS On CentOS 7

Hai kawan kawan,
Kali ini saya akan berbagi tentang bagaimana membuat HTTPS protokol di CentOS 7



A. Pengertian
Protokol transfer hiperteks adalah versi aman dari HTTP, protokol komunikasi dari World Wide Web. Ditemukan oleh Netscape Communications Corporation untuk menyediakan autentikasi dan komunikasi tersandi dan penggunaan dalam komersi elektris.

Selain menggunakan komunikasi plain text, HTTPS menyandikan data sesi menggunakan protokol SSL (Secure Socket layer) atau protokol TLS (Transport Layer Security). Pada umumnya port HTTPS adalah 443.

Tingkat keamanan tergantung pada ketepatan dalam mengimplementasikan pada browser web dan perangkat lunak server dan didukung oleh algorithma penyandian yang aktual.

B. Latar Belakang
Latar belakang kegiatan berikut adalah kurangnya keamanan dari protokol HTTP

C. Maksud Dan Tujuan
Maksud dan tujuan kegiatan berikut adalah mampu meningkatkan keamanan dengan menggunakan protokol HTTPS

D. Alat Dan Bahan
1. PC / Server
2. Koneksi internet
3. Web server untuk ujicoba

E. Alokasi Waktu
15 - 30 menit

F. Langkah Kerja
1. Kita enable web server dengan perintah # systemctl enabled httpd.service

2. Lalu install mod ssl dengan perintah # yum install mod_ssl

3. Kita tunggu hingga instalasi selesai, biasanya tidak memakan waktu lama

4. Buat direktori untuk menyimpan private key, gunakan perintah # mkdir /etc/ssl/private

5. Lalu kita gunakan perintah # chmod 700 /etc/ssl/private sehingga hanya user root yang dapat mengakses file tersebut

6. Sekarang kita buat ssl key dan certificate dengan perintah # openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt

7. Kemudian kita isi form nya

8. Sementara kita menggunakan OpenSSL, kita juga harus menciptakan kelompok Diffie-Hellman yang kuat, yang digunakan dalam menegosiasikan Perfect Forward Secrecy dengan klien. Kita dapat melakukannya dengan perintah # openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

9. Karena versi Apache yang dikirimkan bersama CentOS 7 tidak menyertakan perintah SSLOpenSSLConfCmd, kami harus menambahkan file yang dihasilkan secara manual ke akhir sertifikat yang ditandatangani sendiri. Kita gunakan perintah # cat /etc/ssl/certs/dhparam.pem | tee -a /etc/ssl/certs/apache-selfsigned.crt

10. Edit file konfigurasi ssl apache dengan perintah # vi /etc/httpd/conf.d/ssl.conf

11. Kita cari bagian yang dimulai dengan <VirtualHost _default_:443> maka beberapa baris di bawahnya kita temukan baris  DocumentRoot "/var/www/html/" dan ServerName www.example.com:443,

12. Hapus tanda pagar di depannya, ubah juga www.example.com dengan ip server kita.

13. Masih di file yang sama kita cari lagi baris SSLProtocol all -SSLv2 dan SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA lokasi kedua baris ini berdekatan

14. Matikan kedua baris tadi, bisa dengan menghapus nya maupun memberinya tanda #, disini saya memilih untuk memberi tanda #

15. Masih juga di file yang sama kita cari lagi baris SSLCertificateFile dan SSLCertificateKeyFile

16. Ubah sesuai directori penyimpanan file ssl kita sehingga seperti ini

17. Kemudian kita turun ke bagian paling bawah, maka akan kita temukan block VirtualHost, kita tambahkan beberapa baris berikut di bawahnya

# from https://cipherli.st/
# and https://raymii.org/s/tutorials/Strong_SSL_Security_On_Apache2.html

SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
# Disable preloading HSTS for now.  You can use the commented out header line that includes
# the "preload" directive if you understand the implications.
#Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
# Requires Apache >= 2.4
SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
# Requires Apache >= 2.4.11
# SSLSessionTickets Off


18. Lalu kita buat file untuk me redirect semua trafic sehingga menjadi ssl yang ter enkripsi, gunakan perintah # vi /etc/httpd/conf.d/non-ssl.conf dan tambahkan beberapa baris berikut sehingga seperti yang ada pada gambar

<VirtualHost *:80>
        ServerName www.example.com
        Redirect "/" "https://www.example.com/"
</VirtualHost>


19.Kita cek konfigurasinya dengan perintah #  apachectl configtest

20. Jika outputnya sudah menunjukan syntax ok, maka konfigurasi tidak mengalami kesalahan

21. Kemudian restart apache dengan perintah # systemctl restart httpd.service

22. Kita coba buka browser di client dan masukan ip server, maka akan muncul tampilan seperti ini.

23. Kita pilih advanced >> add exception

24. Dan bisa kita lihat di kiri atas bahwa web server telah aman dan HTTPS berwarna hijau


G. Kesimpulan
CentOS mampu menyediakan perlindungan yang baik seperti sistem operasi jaringan lainnya dengan menggunakan protokol HTTPS

Referensi
https://id.wikipedia.org/wiki/HTTP_Secure
https://www.digitalocean.com/community/tutorials/how-to-create-an-ssl-certificate-on-apache-for-centos-7
Load disqus comments

0 comments