Menginstal sertifikat SSL di Apache2
Berikut ini langkah-langkah untuk mensetup situs secure (https://) dengan sertifikat SSL tersendiri (khususnya, yang ditandatangani oleh CA komersial agar langsung dikenali browser dan tidak diberi peringatan oleh browser) di server hosting Spanel.
Kita akan mengambil contoh nama situsnya adalah example.com.
Pertama-tama, kita perlu membuat file certificate signing request. [XXX perintah openssl]. Hasilnya adalah file example_com.key dan example_com.csr.
Kedua, kita lalu memberikan file .csr kepada klien agar klien dapat membuat sertifikat SSL ke salah satu CA komersial (contohnya, untuk yang agak "mahal" bisa ke http://www.verisign.com/, http://www.cybertrust.com/ , http://www.thawte.com dan untuk yang lebih murah bisa ke http://rapidssl.com , http://instantssl.com atau ke salah satu resellernya). Ada juga trial atau yang gratisan untuk percobaan (http://www.freessl.com). Kita juga dapat melakukan ini untuk klien. Hasil yang diperoleh dari pihak CA komersial adalah file *.crt, dalam hal ini kita namai example_com.crt.
Ketiga, kita perlu memilih sebuah IP dedicated khusus untuk website ini, karena sebuah IP hanya dapat dipasangi satu sertifikat SSL saja. Carilah sebuah IP yang belum dipakai yang diberikan oleh datacenter. Lalu klien perlu membayar dulu biaya menyewa IP dedicated ini (harganya dapat dilihat di Daftar harga MWN). Anggaplah IP ini 1.2.3.5. Jangan lupa untuk menambahkan/mengaktifkan IP ini pada konfigurasi server (mis: jika di Debian, edit /etc/network/interfaces dan tambahkan IP ini lalu gunakan perintah ifup atau /etc/init.d/networking restart).
Langkah keempat yaitu mensetup Apache2 agar sertifikat SSL ini terpasang pada IP dedicated. Buatlah sebuah file /etc/apache2/sites-available/example.com yang isinya:
NameVirtualHost 1.2.3.5:443
<VirtualHost 1.2.3.5:443>
ServerName example.com
ServerAlias www.example.com
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/example_com.crt
SSLCertificateKeyFile /etc/apache2/ssl/example_com.key
<FilesMatch "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/usr/lib/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
CustomLog "|/c/bin/distlog --max-open-files=10 --no-dns --default-log /var/log/apache2/sslaccess.log --virtual-log /s/%0/syslog/https_access.%Y-%m-%d.log --distlog-log /var/log/apache2/distlog_sslaccess.log --distlog-loglevel 1" \
"\"%{host}n\" %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
ErrorLog "|/c/sbin/distlog_sslerror_log"
</VirtualHost>
Taruhlah file example_com.crt dan example_com.key ke direktori /etc/apache2/ssl/ . Demi keamanan, pastikan ownership dan permission file-file tersebut adalah (root,root,0600).
Lalu aktifkan site tersebut dan reload-lah Apache:
# a2ensite example.com
# /etc/init.d/apache2 reload
Kadang terjadi apache yang gagal start karena kesalahan saat mengaktifkan situs dengan ssl ini. Solusinya adalah, matikan dulu apache lalu re-enable situs ssl yang dimaksud.
# /etc/init.d/apache2 stop
# a2dissite example.com && /etc/init.d/apache2 reload
# a2ensite example.com && /etc/init.d/apache2 reload
Langkah kelima/terakhir adalah mengarahkan A record example.com (dan umumnya juga www.example.com) ke IP 1.2.3.5. Jika tidak, example.com defaultnya masih mengarah ke IP utama server (mis: 1.2.3.4) dan pengunjung situs masih akan mendapatkan sertifikat SSL default yang diinstal di IP 1.2.3.4, bukan di 1.2.3.5.
Lebih dari satu file .crt
Kadang-kadang pihak CA tertentu memberikan lebih dari 1 file .crt, yang satunya untuk sertifikat website kita, yang satunya lagi adalah intermediate CA yang harus dipasang juga. Contoh CA seperti ini misalnya Digicert. Untuk kasus seperti ini, silakan ganti kedua baris bercetak tebal di konfigurasi Apache yang ada di atas yaitu:
SSLCertificateFile /etc/apache2/ssl/example_com.crt
SSLCertificateKeyFile /etc/apache2/ssl/example_com.key
dengan yang seperti ini:
SSLCertificateFile /etc/apache2/ssl/example_com.crt
SSLCACertificateFile /etc/apache2/ssl/DigiCertCA.crt
SSLCertificateKeyFile /etc/apache2/ssl/example_com.key
Perhatian: hati-hati jika melakukan copy paste, perhatikan nama direktif-direktifnya: SSLCertificateFile vs SSLCACertificateFile vs SSLCertificateKeyFile.
|