Hi MWN’ers

Berikut ini adalah 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, jika webserver belum mendukung SNI (yakni, Squeeze ke bawah), kita perlu memilih sebuah IP dedicated khusus (Dedicated IP diperuntukan khusus untuk control panel sPanel, untuk control panel cPanel dan Plesk sudah tidak wajib menggunakan Dedicated IP) untuk website ini, karena tanpa SNI 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).

auto eth0:1
iface eth0:1 inet static
       address 1.2.3.4
       netmask 255.255.255.0
       broadcast 1.2.3.255

Langkah keempat yaitu mensetup Apache2 agar sertifikat SSL ini terpasang. Buatlah sebuah file /etc/apache2/sites-available/example.com yang isinya:

# catatan: diasumsikan IP utama server adalah 1.2.3.4
<VirtualHost 1.2.3.4:443>
  ServerName example.com
  ServerAlias www.example.com
  SuexecUserGroup www-data www-data
  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>

Catatan: Jika webserver belum mendukung SNI, maka baris paling pertama:

<VirtualHost 1.2.3.4:443>

harus diganti mejadi:

NameVirtualHost 1.2.3.5:443
<VirtualHost 1.2.3.5:443>

di mana 1.2.3.5 adalah IP dedicated yang telah disiapkan dan berbeda dari IP utama server.

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) (penting agar user biasa tidak bisa mencuri *.key).

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.

Memasang SSL Site Seal

SSL Site Seal adalah icon atau gambar seal SSL yang dapat diletakan di dalam konten web anda, sehingga bisa lebih meningkatkan tingkat trust terhadap situs anda.

Caranya cukup mudah, hanya meletakkan kode script icon yang diberikan oleh provider SSL ke dalam bagian konten web anda seperti di dalam <body>, div, table, etc.

Contoh Site Seal dari GeoTrust.

<script language="javascript" type="text/javascript" src="//smarticon.geotrust.com/si.js"></script>

Catatan:

Icon Site Seal yang diembed hanya tampil jika skrip diletakan di domain yang sama dengan nama domain SSL yang dibeli, jadi www.example.com tidak sama dengan example.com

Tautan