HTTPS, SSL, SSL Certificate, dan Konfigurasi SSL di IIS 7

Saat kita berselancar di internet, terkadang kita harus memberikan informasi kita ke suatu website. Misalnya, saat login email, login Facebook, melakukan transaksi di toko online, dan lain sebagainya. Informasi tersebut dapat berupa email, username, password, alamat rumah, nomor rekening, bahkan informasi sensitif seperti detil kartu kredit.

Sementara itu, internet adalah ruang publik. Siapapun bisa berada disana, baik yang berniat baik maupun yang berniat jahat. Sehingga bukan tidak mungkin informasi-informasi yang kita berikan ke suatu website bisa terendus oleh orang lain, terutama oleh orang jahat yang memang berniat mengendusnya untuk niat jahatnya.

Untuk mengantisipasi hal buruk tersebut, banyak layanan-layanan online yang menggunakan SSL untuk mengamankan koneksi antara klien dengan server. Saat kita mengakses website yang menggunakan SSL, maka protokol yang digunakan adalah HTTPS (Hypertext Transfer Protocol Secure).

SSL pada Juwall.com

Protokol HTTPS secara default menggunakan port 443. Di IIS, port ini tidak terbuka secara secara default sejak awal. Berbeda dangan port 80 yang digunakan oleh protokol HTTP, port ini aktif secara default.

Mengaktifkan SSL di IIS

Untuk mengaktifkan SSL di IIS cukup mudah. Langkah pertama, kita harus memasang sertifikat SSL di IIS. Untuk sertifikat SSL yang valid dan diakui, harganya berkisar antara Rp200.000,- hingga jutaan rupiah. Akan tetapi kita dapat membuat self-signed certificate di IIS. Berikut ini caranya:

1. Buka Server Certificates

image

2. Pilih Create Self-Signed Certificate…

image

3. Di window Create Self-Signed Certificate, isikan nama bebas yang mewakili website yang akan dibuatkan sertifikat SSLnya. Lalu klik OK.

image

4. Setelah itu, sertifikat SSL yang sudah kita buat tadi muncul di list. Sebagai contoh, saya telah memiliki sebuah sertifikat SSL dengan nama jadwalsholat.com, dan sertifikat tersebut dikeluarkan oleh elhashif-PC, dikeluarkan untuk elhashif-PC (nama laptop saya) pula.

image

Selain menggunakan cara diatas, kita juga dapat membuat sertifikat SSL menggunakan software third party, seperti Xenos Certificate Generator.

Nah, setelah kita membuat sertifikat SSL, maka langkah kedua adalah membinding sertifikat tersebut di website kita.

1. Klik kanan pada sites yang ingin kita aktifkan SSLnya, lalu klik Edit Bindings…

image

2. Di window Site Bindings, klik Add…

image

3. Ubah Type binding ke https. Di bagian SSL Certificate, pilih sertifikat SSL yang telah kita buat tadi.

image

4. Terakhir, klik OK, kemudian Close. Sampai tahap ini, kita berhasil mengaktifkan SSL pada website kita, dengan sertifikat SSL yang kita buat sendiri.

Force SSL di IIS

Setelah berhasil melakukan 4 langkah diatas, kita membuka dua port untuk website kita, yaitu port 80 (HTTP) dan 443 (HTTPS). Bedanya, protokol HTTP tanpa enkripsi, protokol HTTPS menggunakan enkripsi. Keduanya bisa diakses, walau secara default akan menggunakan HTTP.

Terkadang kita perlu ‘memaksa’ pengguna untuk menggunakan protokol HTTPS jika website kita memerlukan informasi sensitif dari mereka. Jadi ketika pengguna mengakses website kita, secara otomatis mereka akan menggunakan protokol HTTPS.

Salah satu cara yang mudah untuk melakukan ‘pemaksaan’ ini, adalah dengan menggunakan modul Microsoft URL Rewrite. Disini diasumsikan bahwa sertifikat SSL telah terpasang, dan SSL untuk website kita telah aktif.

1. Download dan install modul Microsoft URL Rewrite.

2. Pastikan Require SSL pada SSL Settings tidak tercentang.

image

2. Buka file web.config yang ada di direktori website kita, dan masukkan kode berikut ini di dalam tag <system.webServer> <rewrite> <rules>:

<rule name="HTTP to HTTPS redirect" enabled="false" stopProcessing="true">
	<match url="(.*)" />
	<conditions>
		<add input="{HTTPS}" pattern="off" ignoreCase="true" />
	</conditions>
	<action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
</rule>

3. Setelah itu, save file web.config tersebut.

Dengan tiga langkah diatas, setiap request HTTP akan langsung diredirect ke HTTPS secara otomatis.

Sekilas SSL Certificate

SSL Certificate adalah sebuah file kecil yang berisi informasi organisasi, informasi domain, dan informasi server yang terenkripsi. Biasanya ternkripsi dengan enkripsi paling rendah 2048bit. Sertifikat ini diinstall pada web server, dan akan digunakan oleh klien untuk memastikan bahwa website yang dikunjungi itu benar-benar valid dan aman. Seperti misalnya mengunjungi website internet banking Mandiri yang di-host di server yang dimiliki oleh Bank Mandiri. Bukan mengunjungi website internet banking Mandiri yang di-host di server lain.

Sertifikat SSL mengandung:

  • Nama domain, nama server, atau hostname.
  • Identitas organisasi. Biasanya berupa nama dan lokasi organisasi.

Agar sertifikat keamanan ini valid dan diakui, sertifikat harus dikeluarkan oleh issuer yang valid. Di luar sana ada beberapa nama issuer yang dapat mengeluarkan sertifikat SSL yang valid. Diantaranya, VeriSign, Symantec, GeoTrust, RapidSSL, Thawte, dan lain sebagainya.

Sertifikat yang tidak valid seperti yang kita buat sendiri pada langkah diatas tetap bisa kita gunakan untuk SSL, walau akan menimbulkan peringatan keamanan di browser:

image

Dan kalau kita lihat sertifikatnya memang issued by & to-nya itu oleh dan dari diri sendiri:

image

Berbeda dengan sertifikat valid yang dikeluarkan oleh issuer resmi, yang dalam hal ini saya contohkan milik Juwall.com:

image

Jika ada yang ingin didiskusikan atau mengingatkan saya akan kesalahan yang mungkin ada pada tulisan ini, jangan segan untuk meninggalkan komentar, menghubungi saya via Facebook, Twitter, YM, atau email. Semoga bermanfaat Smile