Minggu, 06 September 2015

Install SSL di Web Server (Apache)


Install SSL di Web Server (Apache) Pada CentOS

Setiap harinya dunia internet memiliki banyak transaksi ataupun data-data sensitif yang penting. Untuk keamanan dan kenyamanan pada setiap transaksi dalam Web Server (Apache), penggunaan SSL (Secure Sockets Layer) tentunya dibutuhkan. Namun, untuk web server  yang dienkripsi SSL, ada beberapa hal yang diperlukan sesuai dengan instalasi yang Anda gunakan. Hal ini bertujuan agar fungsinya maksimal dan dapat berjalan dengan lancar.

SSL adalah protokol keamanan yang digunakan pada hampir semua transaksi aman pada internet. SSL mengubah suatu protokol transport seperti TCP menjadi sebuah saluran komunikasi aman yang cocok untuk transaksi yang sensitif seperti Paypal, Internet Banking, dan lain-lain. Keamanan dijamin dengan menggunakan kombinasi dari kiptografi kunci publik dan kriptografi kunci simetri bersamaan dengan sebuah infrastruktur sertifikat. Sebuah sertifikat adalah sebuah kumpulan data identifikasi dalam format yang telah distandardisasi. Data tersebut digunakan dalam proses verifikasi identitas dari sebuah entitas (contohnya sebuah web server) pada internet.

SSL menyediakan otentikasi (pada sisi client, dan opsional pada sisi server) terhadap pihak-pihak yang berkomunikasi. SSL dapat mengamankan koneksi antara dua titik, dan tidak ada pihak yang dapat melakukan hal-hal yang bersifat destruktif atau mengakses informasi yang bersifat sensitif. SSL menyediakan sebuah saluran komunikasi yang aman tanpa perlu adanya pertemuan kedua pihak yang berkomunikasi untuk melakukan proses pertukaran kunci.

Jika Anda akan menggunakan SSL, maka Anda perlu instalasi openssl dan mod_ssl. Openssl dapat di download di link https://www.openssl.org/source dan Modssl dapat di download di link www.modssl.org. Berikut ini adalah langkah-langkah instalasi maupun konfigurasi yang perlu dilakukan :

BERLANGGANAN SERTIFIKAT SSL
Sertiffikat SSL bisa didapatkan dengan berlangganan melalui http://www.warungssl.com atau situs2 lainnya. Setelah melakukan pembayaran maka akan dikirimkan Web Server Certificate dan Certificate Authority (CA).

INSTALLASI SSL
yum -y install mod_ssl openssl
atau download source Modssl di link www.modssl.org dan Openssl di link https://www.openssl.org/source.



GENERATE SERTIFIKAT

# Generate private key
openssl genrsa -out www.yollyrinaldi.key 2048



# Generate CSR (Certificate Signing Request) untuk memberikan SSL authority
openssl req -new -key www.domain.key -out www.yollyrinaldi.csr


Catatan : Anda akan mengisi keterangan tentang SSL authority.

# Generate Self Signed Key
openssl x509 -req -days 365 –in yollyrinaldi.csr –signkey yollyrinaldi.key -out yollyrinaldi.crt


Keterangan :
·      Openssl : ini adalah alat baris perintah dasar yang disediakan oleh OpenSSL untuk membuat dan mengelola sertifikat, kunci, permintaan penandatanganan, dll.
·      -x509 : Opsi ini menentukan bahwa kita ingin membuat file sertifikat yang ditandatangani sendiri bukan menghasilkan permintaan sertifikat.
·      -req : ini menentukan subcommand untuk permintaan penandatanganan sertifikat X.509 (CSR) manajemen. X.509 adalah standar infrastruktur kunci publik SSL yang menganut untuk kunci dan sertifikat manajemen. Karena kita ingin membuat sertifikat X.509 baru, ini adalah apa yang kita inginkan.
·      -nodes : Opsi ini memberitahu OpenSSL bahwa kita tidak ingin untuk mengamankan file kunci kami dengan passphrase. Memiliki dilindungi password file kunci akan mendapatkan di jalan dari Apache mulai secara otomatis saat kita harus memasukkan password setiap kali restart layanan.
·      -days 365: ini menentukan bahwa sertifikat kita menciptakan akan berlaku selama satu tahun.
·      -newkey rsa: 2048 : Opsi ini akan menciptakan permintaan sertifikat dan kunci pribadi baru pada waktu yang sama. Hal ini diperlukan karena kita tidak menciptakan sebuah kunci pribadi di muka. The rsa: 2048 mengatakan OpenSSL untuk menghasilkan kunci RSA yang 2048 bit panjang.
·      -keyout : Ini nama parameter file output untuk file kunci pribadi yang sedang dibuat.
·      -out : Ini nama pilihan file output untuk sertifikat yang kita menghasilkan.


Catatan : Konfigurasi ini digunakan kalau kita gak memakai sertifikat dari CA (Certificate Authority) (ex. http://www.warungssl.com).

Kirim file CRT ke pihak belangganan Sertificate SLL (ex. http://www.warungssl.com).



Selanjutnya copy file ssl yang dibuat tadi ke /home/ssl :
cp yollyrinaldi.crt /home/ssl/yollyrinaldi.crt
cp yollyrinaldi.key /home/ssl/yollyrinaldi.key
cp yollyrinaldi.csr /home/ssl/yollyrinaldi.csr


KONFIGURASI SSL
Masuk ke directory /etc/httpd/conf.d/ssl.conf
Edit :
SSLCertificateFile /home/ssl/yollyrinaldi.crt 
SSLCertificateKeyFile /home/ssl/yollyrinaldi.key

Save dan keluar dari ssl.conf (:wq!)

Restart Apache :
service httpd restart

KONFIGURASI DI VIRTUALHOST
Masih di directory /etc/httpd/conf.d/ssl.conf
Tambahkan :
SSLEngine on
ServerName     yollyrinaldi.web.id
DocumentRoot     /var/www/html/yollyrinaldi.web.id

SSLCertificateFile /home/ssl/yollyrinaldi.crt
SSLCertificateKeyFile /home/ssl/yollyrinaldi.key

Save dan exit (:wq!)

Restart Apache :
service httpd restart


KONFIGURASI  .htaccess

Masuk ke directory /etc/httpd/conf/httpd.conf
Menujulah ke folder utama dari project web kalian lalu buat file .htaccess dengan isi berikut:

RewriteEngine On
ServerName yollyrinaldi.web.id
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

Save dan exit (:wq!)

Restart Apache :
service httpd restart

Cobalah buka web browser kalian lalu akses aplikasi web dan secara otomatis akan membawa ke https.

Jika tidak ke redirect bisa jadi file .htaccess tidak berjalan. Periksa konfigurasi httpd.conf yang berada di /etc/httpd/conf/
Lalu cari baris AllowOverride dan pastikan kondisinya sudah ALL seperti baris berikut:
AllowOverride ALL

Selanjutnya restart Apache, service httpd restart
Dan buka kembali web kalian. Nanti akan terjadi redirect ke https


KONFIGURASI FIREWALL
Anda seharusnya sudah memiliki situs yang bekerja di https menggunakan sertifikat yang ditandatangani sendiri. Jika anda tidak bisa menghubungkan, mungkin anda perlu membuka port pada firewall anda.
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
/sbin/service iptables save
iptables -L -v