Thursday, June 20, 2019

Konfigurasi SSL pada Apache dengan mod_ssl

Konfigurasi SSL pada Apache dengan mod_ssl


Berikut adalah panduan konfigurasi pembuatan sertifikat SSL(Secure Socket Layer) pada apache webserver menggunakan mod_ssl.
Langkah pertama adalah membuat RSA Privat Key. Privat Key ini  adalah 1024 bit RSA key yang dienkripsi menggunakan Triple DES-dan disimpan dalam format PEM sehingga dibaca sebagai teks ASCII. Saya menggunakan beberapa file sebagai cikal-bakal acak yang akan membantu untuk membuat kunci yang lebih aman. File teks yang telah dikompresi dengan utilitas seperti gzip adalah pilihan yang baik. Kuncinya dihasilkan dengan menggunakan perintah berikut, di mana file1: file2: etc merupakan file yang dikompresi acak.

openssl genrsa -des3 -rand file1:file2:file3:file4:file5 -out serverssl.key 1024
Perintah diatas akan meminta Anda untuk mengisikan pass-phrase(password) dan kemudian disimpan di file  serverssl.key. Pass-phrase diharapkan menggunakan standart security agar lebih aman dan tidak jangan sampai lupa. Jika salah satu tombol hilang, atau lupa pass-frase, sertifikat akan sia-sia! Hal ini cukup menekankan betapa pentingnya pass-phrase tsb karena jika anda menggunakan layanan SSL berbayar misalkan dari provider THAWTE maka anda harus konfigure ulang proses pembuat key tsb sehingga akan membuang waktu dan juga biaya karena mungkin akan dikenakan denda pada saat request pendaftaran key baru.
Selain itu permasalahan yang muncul jika anda lupa password adalah Apache akan meminta pass-phrase setiap kali web server di Start/Restart. Penghapusan password dapat dilakukan jika memang benar-benar lupa, gunakan perintah berikut untuk menghapus pass-phrase:
openssl rsa -in serverssl.key -out serverssl.pem
Setelah Private Key dibuat,maka dapat dilakukan validasi Certificate. CSR ini kemudian digunakan dalam salah satu dari dua cara. Idealnya, CSR akan dikirim ke Otoritas Sertifikat, seperti Thawte atau Verisign yang akan memverifikasi identitas pemohon dan mengeluarkan sertifikat yang sudah tervalidasi oleh mereka (Paid). Pilihan kedua adalah validasi sendiri file CSR tersebut(Free), yang akan saya bahas kali ini.
Selama generate CSR, Anda akan diminta beberapa informasi. Ini adalah X.509 atribut sertifikat. Salah satunya adalah “Common Name (misalnya, nama ANDA)”. Lebih baik diisi dengan nama domain yang akan digunakan untuk akses SSL dimaksud. Jika situs web yang akan digunakan https://www.namaserversaya.com, maka masukkan http://www.serversaya.com pada prompt ini. Perintah untuk menghasilkan CSR adalah sebagai berikut:
openssl req -new -key serverssl.key -out serverssl.csr
Berikut adalah contoh proses generate CSR.
Using configuration from /usr/local/ssl/openssl.cnf
Enter PEM pass phrase: Masukkan Password
You are about to be asked to enter information that will be incorporated into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank.
For some fields there will be a default value, If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [AU]: ID
State or Province Name (full name) [Some-State]: DKI Jakarta
Locality Name (eg, city) []: Jakarta Selatan
Organization Name (eg, company) [Internet Widgits Pty Ltd]: PT Bokap Ane
Organizational Unit Name (eg, section) []: IT Division
Common Name (eg, YOUR name) []: http://www.namadomainsaya.com
Email Address []: webmaster@namadomainsaya.com
Please enter the following ‘extra’ attributes to be sent with your certificate request
A challenge password []: [diisi untuk pengingat password/hint]
An optional company name []: [nama lain perusahaan]
Selanjutnya adalah generate certificate untuk kurun waktu 1 tahun misalkan, dengan perintah berikut :
openssl x509 -req -days 360 -in serverssl.csr -signkey serverssl.key -out serverssl.crt
Proses pembuatan SSL sudah selesai dan kemudian dapat dilakukan configure pada webserver (Apache) dengan proses berikut:
  1. Enable modul SSL pada webserver dengan cara hapus tanda pagar (#) pada baris berikut di file httpd.conf.       “Include /usr/local/apache/etc/ssl.conf
  2. Lalu edit file httpd-ssl.conf sebagai berikut :
# SSL Virtual Hosts
<IfDefine SSL>
<VirtualHost _default_:443>
ServerAdmin webmaster@domainsaya.com
DocumentRoot /usr/local/apache/share/htdocs
ServerName http://www.domainsaya.com
ScriptAlias /cgi-bin/ /usr/local/apache/share/htdocs/cgi-bin/
SSLEngine on
SSLCertificateFile /usr/local/apache/etc/ssl.crt/serverssl.crt
SSLCertificateKeyFile /usr/local/apache/etc/ssl.key/serverssl.pem
SetEnvIf User-Agent “.*MSIE.*” nokeepalive ssl-unclean-shutdown
CustomLog /usr/local/apache/var/log/ssl_request_log \”%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \”%r\” %b” </VirtualHost>
</IfDefine>
Setelah selesai maka,restart webserver dan coba akses domain anda tsb. Langkah tersebut sudah pernah saya coba dan berhasil.
Thanks’ for reading.. 🙂

No comments:

Post a Comment