Default port tanpa SSL yang digunakan untuk menjalankan web server

HTTPS merupakan protokol HTTP yang lebih aman, sehingga data-data yang dikirimkan dengan protokol ini lewat jaringan internet akan dienkripsi menjadi tulisan yang aneh dan tidak mudah dimengerti oleh manusia. HTTPS sama seperti HTTP yang menyediakan konten HTML atau Website tetapi data HTML yang dikirimkan lebih aman dan bersifat rahasia sehingga jika menginput password pada saat login sebuah akun lewat internet tidak akan terlihat oleh pembobol jaringan. HTTPS menggunakan protkol SSL untuk membentuk koneksi aman antara Web Client dengan Web Server. Pada Windows Server 2012 kita dapat membuat sebuah Web Server yang aman pada aplikasi bawaan Windows ini yang bernama IIS, saya akan membuat sebuah server HTTPS dengan serifikat CA self-signed, dan membuat alamat URL untuk Server HTTPS ini pada server DNS lokal berikut ini adalah topologinya :

Default port tanpa SSL yang digunakan untuk menjalankan web server


Mengatur alamat IP

  • Atur terlebih dahulu alamat IP menjadi static pada server lokal ini, dan arahkan alamat IP DNS pada alamat IP server DNS.

    Default port tanpa SSL yang digunakan untuk menjalankan web server

Membuat alamat URL

agar dapat diakses menggunakan alamat URL, maka anda harus membuat sebuah server DNS pada jaringan lokal, pada kali ini saya membuat domain https://secure.dzikrafathin.com/ untuk alamat URL dari Web Server yang aman. anda dapat melihat postingan saya yang satu ini untuk membuat DNS Server miliki sendiri pada Windows Server 2012.

Menginstall layanan Web Server (IIS)

Agar server lokal ini dapat menyediakan konten Website maka kita harus menginstall sebuah aplikasi yang dapat melayani permintaan Web Server pada port 80 dan 443, karena kali ini saya membuat Web Server dengan koneksi aman lewat SSL maka port yang digunakan 443. berikut ini adalah langkahnya :
  • Buka Server Manager > Add Roles and Features.

    Default port tanpa SSL yang digunakan untuk menjalankan web server

  • Akan muncul beberapa pesan hal-hal yang harus dilakukan sebelum menginstall sebuah layanan pada Server lokal ini, Klik Next untuk lanjut pada langkah berikutnya.

    Default port tanpa SSL yang digunakan untuk menjalankan web server

  • Pilih pilihan Role-based ... karena hanya server lokal ini yang akan diinstall layanan baru, lalu klik Next.

    Default port tanpa SSL yang digunakan untuk menjalankan web server

  • Akan muncul daftar Server, pilih server sesuai identitas dari server lokal yang sedang digunakan, dan klik Next.

    Default port tanpa SSL yang digunakan untuk menjalankan web server

  • Pada bagina Server Roles centang pilihan Web Server.

    Default port tanpa SSL yang digunakan untuk menjalankan web server

  • Jika muncul jendela seperti ini klik Add Features dan klik Next.

    Default port tanpa SSL yang digunakan untuk menjalankan web server

  • Pada bagian ini biarkan secara default tanpa ada yang dicentang dan klik Next.

    Default port tanpa SSL yang digunakan untuk menjalankan web server

  • Akan ada sedikit penjelasan tetang Web Server, klik Next untuk lanjut pada langkah berikutnya.

    Default port tanpa SSL yang digunakan untuk menjalankan web server

  • Pada bagian Roles Services centang semua pilihan Security dan klik Next.

    Default port tanpa SSL yang digunakan untuk menjalankan web server

  • Anda akan dimintai untuk konfirmasi hal-hal yang ingin dinstall pada server lokal ini, jika sudah yakin klik Install untuk memulai Installasi.

    Default port tanpa SSL yang digunakan untuk menjalankan web server

  • Tunggu prosesnya hingga selesai, jika sudah selesai maka akan muncul tulisan Installation succeed.... klik Close untuk mengakhiri.

    Default port tanpa SSL yang digunakan untuk menjalankan web server

Konten HTML

  • Buat beberapa konten HTML dengan nama index.html pada suatu folder, saya menyarankannya untuk membuat foldernya di dalam folder C:\inetpub.

    Default port tanpa SSL yang digunakan untuk menjalankan web server

Membuat sertifikan Self-Signed

Kali ini saya akan membuat sertifikat self-signed untuk koneksi HTTPS antar Server dan Clinet, efeknya menggunakan self signet situs web HTTPS yang kita buat dianggap tidak terpercaya oleh browser, jika ingin terpercaya anda harus membuat sertifikat pada penyedia layanan pembuat sertifikat dan itu tidak gratis. lanjut pada pembuatannya :
  • Buka Server manager > Tools > Web IIS.
  • Klik Hostname Server lokal > dan pilih Server Certificates

    Default port tanpa SSL yang digunakan untuk menjalankan web server

  • Pada sisi bagian kanan klik Create Self-Signed....

    Default port tanpa SSL yang digunakan untuk menjalankan web server

  • Tuliskan nama situs yang ingin anda sertakan pada sertifikat ini. pilih pilihan Web Hosting dan klik OK.

    Default port tanpa SSL yang digunakan untuk menjalankan web server

  • Maka seperti inilah hasilnya.

    Default port tanpa SSL yang digunakan untuk menjalankan web server

Membuat Situs HTTPS

  • Hapus situs Default Web Site bawaan IIS ini.

    Default port tanpa SSL yang digunakan untuk menjalankan web server

  • Lalu klik kana Sites dan Add Website untuk membuat sebuah situs Web baru.

    Default port tanpa SSL yang digunakan untuk menjalankan web server

  • Atur beberapa binding dibawah ini

    Default port tanpa SSL yang digunakan untuk menjalankan web server

    1. Atur nama situs Web ini.
    2. Arahkan direktori root atau folder yang berisi file index.html tadi
    3. Pilih pilihan https.
    4. Tentukan Hostname pada alamat URL Web server lokal ini.
    5. Pilih sertifikat yang sudah dibuat sebelumnya.
    6. OK
    Setelah langkah diatas selesai maka situs web pada server lokal ini sudah dapat diakses dari Client.

Testing Client

Sekarang kita coba apakah Web Server HTTPS ini sudah dapat diakses lewat client, saya mencoba mengakses melalui client sistem operasi linux, berikut ini adalah langkahnya :
  • Tambahkan alamat IP Server DNS lokal, untuk linux edit file /etc/resolv.conf seperti dibawah ini :

    Default port tanpa SSL yang digunakan untuk menjalankan web server

  • Coba akses alamat URL server dengan https://... pada Browser. maka akan muncul seperti ini, seperti yang sudah saya bilang sebelumnya karena sertifikat yang digunakan server ini adalah Self-Signed maka Browser menganggap situs ini tidak terpercaya. Klik Advanced dan Klik Proceed to....

    Default port tanpa SSL yang digunakan untuk menjalankan web server

  • Maka konten HTML akan muncul.

    Default port tanpa SSL yang digunakan untuk menjalankan web server

Setelah konten HTML sudah muncul maka konfigurasi dinyatakan berhasil.

Anda dapat menjalankan HTTP pada port apa saja (dan juga HTTPS pada port apa saja). Secara konvensional, Anda menjalankan HTTP pada port 80, HTTPS pada port 443, karena menggunakan port yang terdefinisi dengan baik ini memungkinkan pengguna tidak menentukan nomor port.

Jika Anda terhubung ke https://example.com itu akan membuat permintaan HTTPS ke port 443. Jika Anda mencoba menghubungkan ke port yang tidak menjalankan SSL/TLS dengan protokol HTTPS Anda akan mendapatkan Kesalahan koneksi SSL. Anda dapat melihat ini sebagai contoh, jika Anda mencoba menghubungkan ke https://security.stackexchange.com:80. Inilah yang akan terjadi jika Anda menjalankan HTTP pada port 443 di example.com; setiap pengguna yang terhubung ke https://example.com akan mendapatkan kesalahan itu.

Sebaliknya jika Anda mencoba menghubungkan ke port yang menjalankan HTTPS dengan browser Anda membuat permintaan melalui protokol HTTP lama yang biasa, Anda akan mendapatkan 400 Bad Request Pesan kesalahan HTTP (The plain HTTP request was sent to HTTPS port). Anda dapat melihat contoh kesalahan ini dengan masuk ke: http://www.time.com:443/. Harap dicatat bahwa HSTS sedikit menyulitkan; jika Anda menjalankan HSTS , browser Anda dapat secara otomatis mengalihkan permintaan HTTP ke HTTPS untuk yang diberikan pada situs tertentu. (Inilah sebabnya Anda tidak akan melihat kesalahan ini jika Anda mencoba membuka http://www.facebook.com:443/ dan akan dialihkan ke https://www.facebook.com).

Jika kamu mau https://example.com permintaan untuk bekerja, tetapi tidak memerlukan keamanan SSL, Anda harus mendapatkan sertifikat yang ditandatangani dengan benar. Ini dapat dilakukan secara gratis dengan https://letsencrypt.org/ dan ada banyak solusi berbiaya rendah lainnya. Jika Anda benar-benar tidak ingin pengguna menggunakan HTTPS, Anda kemudian dapat memiliki aturan penulisan ulang redirect dari HTTPS ke HTTP. (Harap perhatikan untuk menggunakan pengalihan ini tanpa peringatan browser tentang sertifikat SSL yang tidak valid, Anda memerlukan sertifikat SSL yang valid).

EDIT: Rekomendasi dihapus untuk StartSSL karena tidak lagi dipercaya oleh browser utama .