Setting IIS Express untuk SSL(HTTPS)

Soeleman 22 Agustus 2017

Setting IIS Express untuk SSL(HTTPS)

Website ataupun Web Aplikasi sekarang ini mensyaratkan jalur komunikasi yang tersandi, lagipula memang kita akan mengarah ke HTTP/2 juga. Itu juga akan berefek ketika kita sedang membuatnya, terutama yang berhubungan dengan protocol auth. Walaupun itu jalur tersandi bukan berarti sudah aman. Itu hanya jalur tersendiri antara client(browser) dan server(Web Server). Dalam tulisan ini kita akan melihat bagaimana menyiapkan itu dalam lingkungan kerja.

Aplikasi

Kita buat sebuah projek ASP.NET Core. Dan seperti pada gambar dibawah, ia berjalan normal. Tapi secara default itu dikonfigurasi dengan HTTP.

alt text

Visual Studio 2017

Dalam Visual Studio kita buka property dari projeknya. Kita buka tab Debug.

alt text

Untuk mengaktifkan SSL cukup kita check Enable SSL. Dan duplikasi alamat HTTPS-nya ke textbox App URL.

alt text

Semudah itu kah? Tampaknya ini hanya salah satu bagian saja. Perubahan ini hanya berlaku ditingkat projek saja.

Karena umumnya kita akan mendapatkan pesan dibawah ketika kita menjalankan ini pertama kali. Pesan itu menunjukkan bahwa ada bagian lain yang perlu di ubah.

alt text

Microsoft Management Console (MMC)

Biasanya yang melakukan ini adalah orang DevOps atau IT server. Sesuai dengan tuntutan untuk HTTPS ini, mau tidak mau programmer juga mesti tahu.

Snap Certificates

Pertama kita buka Microsoft Management Console(MMC) seperti pada gambar.

alt text

Biasanya MMC-nya akan kosong. Oleh karena itu kita perlu menambahkan sendiri snap yang diperlukan. Caranya dari File >> Add/Remove Snap-in....

alt text

Local Computer

Akan muncul window Add or Remove Snap-ins. Karena kita berhubungan dengan SSL yang membutuhkan Certificate maka pilihannya adalah snap-in Certificates.

alt text

Dari tombol Add, kita akan dihadapkan pilihan seperti pada gambar. Pertama kita perlu tambahankan Certificate untuk Computer account setelah itu kita tekan tombol Next.

alt text

Disini kita menggunakan pilihan Local computer dan selesai kita menambahkan snap-in Certificates untuk tingkat computer-nya.

alt text

Seperti yang terlihat digambar. Ada Certificates (Local Computer), yang bisa membantu kita untuk mengelola certificate pada tingkat computer.

alt text

User

Yang kita tambahkan diatas untuk tingkat computer-nya. Kita juga perlu menambahkan lagi snap-in Certificates untuk tingkat user-nya.

Caranya hampir sama, yang berbeda setelah kita tekan tombol Add. Pilih _My user account.

alt text

Hasilnya kita bisa lihat, ada dua pengelolaan certificates ditingkat yang berbeda.

alt text

Export Cert

Yang kita perlu lakukan dengan ini adalah menyamakan certificate dari tingkat computer ke tingkat user-nya.

alt text

IIS Express menggunakan certificate localhost untuk menjalankan SSL. Sedangkan browser menggunakan certificate yang ada ditingkat user.

alt text

Untuk itu kita perlu menambahkan itu ke tingkat user dengan cara di-export.

alt text

Wizard-nya akan membimbing kita melakukan ini.

alt text

Karena kita hanya ingin tingkat computer mengenali certificate ini, kita tidak perlu meng-export private key.

alt text

Pilihan DER encoded binary X.509(.CER) sudah cukup untuk tujuan ini.

alt text

Selanjutnya kita berikan dimana lokasi hasil dari export ini.

alt text

Dan selesai sudah kita meng-export localhost certificate ini.

alt text

Import Cert

Sekarang kita tinggal meng-import kedalam Trusted Root Certification Authorities dengan mengklik kanan lalu pilih All Tasks kemudian Import.

alt text

Kembali Wizard muncul dan kita hanya perlu melanjutkan dengan tombol Next.

alt text

Kita berikan lokasi dimana certifacate-nya berada.

alt text

Disini kita memberitahukan kepada wizard dimana kita akan menaruh certificate itu.

alt text

Ini adalah kesimpulannya wizard sebelum menjalankan proses import ini.

alt text

Ada peringatan tentang certificate ini dan kita bisa yakin atas certificate ini(karena kita yang buat sendiri lewat export).

alt text

Sekadar info saja bahwa prosesnya berhasil.

alt text

Kita akan melihat certificate itu ada dalam koleksi dari user certificates.

alt text

Browser

Kita sekarang sudah memiliki certificate localhost dalam tingkat user. Dengan begitu ketika browser akan mengakses local IIS Express. Certificate yang digunakan oleh IIS akan dianggap sebagai certificate yang bisa dipercaya.

Chrome

Umumnya ini sudah bisa menjalankan HTTPS. Tapi beberapa browser kadang melakukan perlindungan lebih. Contohnya Google Chrome, mulai dari versi 58 keatas. Kebijaksaan soal localhost certificate berubah. Bila itu tidak sesuai dengan itu maka akan muncul seperti dibawah.

alt text

Kalau muncul seperti itu, kita perlu melakukan pergantian certificate untuk Google Chrome. Dan ini hanya dilakukan apa bila muncul pesan seperti diatas!.

Jalankan powershell script UpdateIISExpressCertificate.ps1 sebagai Administrator.

alt text

Setelah itu restart browser dan kita buka halaman web-nya. Sudah HTTPS loh.

alt text

Firefox

Lain Firefox lain Google Chrome. Kebijaksaan Firefox untuk ini sedikit mudah untuk diselesaikan. Cukup kita beritahu ke Firefox untuk membuat pengecualian lewat tombol Add Exception.

alt text

Setelah itu kita bisa menikmati HTTPS pada IIS Express dengan icon yang menyatakan ini adalah pengecualian.

alt text

Penutup

Tidak sulit juga untuk mengaktifkan HTTPS pada IIS Express dalam lingkungan development. Yang penting tahu rangkaian bagaimana bekerjanya SSL dalam lingkup tersebut. Dari ujung ke ujung harus sinkron yang dalam hal ini adalah certificate-nya.

Referensi

Perhatian! Code yang ditampilkan dalam tulisan ini merupakan ilustrasi dari yang ingin dipaparkan dan bukan production ready code. Sudah banyak kejadian karena asal meng-copy-and-paste tanpa mengerti code yang diambil itu ke dalam production. Selain itu perlu ada tambahan code dan test sebelum siap untuk digunakan secara utuh.