Artikel ini menguraikan langkah demi langkah instalasi dan konfigurasi yang dibutuhkan untuk menggunakan SSL pada Apache HTTP Server anda. Contoh kasus menggunakan SSL yang digunakan adalah self-signed-certificate.
Fasilitas komentar untuk artikel ini dimatikan, feedback dan error yang anda dapatkan saat menjalankan langkah-langkah yang diuraikan disini silahkan diutarakan melalui Forum Magnet http://forum.magnet-id.com/.
Mod SSL dan openSSL
Mod SSL adalah module Apache yang dibutuhkan untuk melayani request SSL pada default port 443. Kita juga membutuhkan openssl (sudah terinstall sebelumnya) untuk mengenerate key dan certificate yang dibutuhkan. Install mod_ssl melalui yum, dan reload apache.
yum install mod_ssl service httpd reload
Jalankan apachectl -M untuk memastikan mod_ssl sudah diload oleh Apache anda;
apachectl -M
Loaded Modules: ... ssl_module (shared) Syntax OK
Generate Keys, CSR dan Certificate
Generate keys dan certificate yang dibutuhkan pada temporary folder untuk kemudian dipindahkan ke folder Apache. Dalam contoh ini kita akan membuat certificate untuk vhost1.magnet-id.com;
mkdir /root/temp && cd /root/temp openssl genrsa -des3 -rand file1:file1 -out vhost1.key 1024
Kemudian dianjurkan untuk menhapus password key, karena kalau tidak kita harus terlebih dahulu memasukkan password ketika apache atau mesin di restart.
cp vhost1.key vhost1.key.org openssl rsa -in vhost1.key.org -out vhost1.key
Setelah pasangan key dibuat, kita dapat mengenerate CSR atau Certificate Signing Request. Masukkan informasi yang dibutuhkan, dianjurkan untuk memasukkan commonname sesuai dengan domain yang akan dilayani melalui SSL.
openssl req -new -key vhost1.key -out vhost1.csr
Country Name (2 letter code) [GB]:ID State or Province Name (full name) [Berkshire]:DKI Jakarta Locality Name (eg, city) [Newbury]:Jakarta Timur Organization Name (eg, company) [My Company Ltd]:Magnet Organizational Unit Name (eg, section) []:Technical Common Name (eg, your name or your server's hostname) []:vhost1.magnet-id.com Email Address []:[email protected]
Setelah itu certificate dapat digenerate, untuk self signed certificate dapat dilakukan dengan openssl, sementara untuk memiliki certificate berbayar melalui Certificate Authority (CA) anda dapat menggunakan fasilitas yang disediakan oleh CA Terkait.
Dalam contoh kasus ini kita menggunakan self signed digital certificate melalui perintah;
openssl x509 -req -days 3650 -in vhost1.csr -signkey vhost1.key -out vhost1.crt
Install Certificate
Letakkan key dan crt pada sebuah direktori untuk kemudian dipanggil oleh konfigurasi apache, dalam hal ini direktori yang digunakan adalah /etc/httpd/cert/
mkdir /etc/httpd/cert/ mv /root/temp/vhost1.crt /root/temp/vhost1.key /etc/httpd/cert/
Tambahkan direktif berikut di /etc/httpd/conf/httpd.conf dan reload Apache.
NameVirtualHost 117.103.57.23:443 <VirtualHost 117.103.57.23:443> ServerAdmin [email protected] DocumentRoot /var/www/vhost1.magnet-id.com/public_html ServerName vhost1.magnet-id.com ErrorLog /var/log/httpd/ssl.vhost1.magnet-id.com-error_log TransferLog /var/log/httpd/ssl.vhost1.magnet-id.com-access_log SSLEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL SSLCertificateFile /etc/httpd/cert/vhost1.crt SSLCertificateKeyFile /etc/httpd/cert/vhost1.key <Directory "/var/www/vhost1.magnet-id.com/public_html"> Options Indexes FollowSymLinks AllowOverride None </Directory> </VirtualHost>
Silahkan hapus file pada direktori temporer anda apabila semua proses telah selesai dilakukan dengan sukses.