Tuesday, January 08, 2013

IIS7- Redirect HTTP kepada HTTPS



Artikel ini adalah cara untuk mengubah hala trafik semua dari HTTP kepada HTTPS pada Pelayan IIS7 untuk memastikan pengguna anda sentiasa mengakses laman dengan selamat. Terdapat banyak cara yang berbeza untuk menubuhkan IIS7 Redirect dari HTTP kepada HTTPS dan ada yang lebih baik daripada yang lain. HTTP yang ideal untuk HTTPS redirect akan lakukan yang berikut:
  1. Secara lancar melencongkan pengguna ke HTTPS jadi pengguna tidak perlu menaip dalam "https" dalam URL
  2. Melencongkan pengguna ke halaman tertentu bahawa mereka akan pergi pada HTTP (page.htm)
  3. Simpan mana-mana variables yang dihantar dalam string query (? Page = 2)
  4. Berkesan pada semua pelayar
  5. Pemindahan PageRank halaman diarahkan dengan menggunakan 301 redirect, mengekalkan SEO
  6. Benarkan bahagian tertentu laman untuk memaksa SSL tetapi membenarkan HTTP pada bahagian-bahagian lain.
  7. Redirect pengguna dari mydomain.com untuk www.mydomain.com
Malangnya, tidak ada cara mudah untuk memenuhi semua keperluan ini. Kaedah terbaik untuk melakukan HTTP kepada HTTPS redirect adalah melibatkan menggunakan ASP.Net untuk melakukan lencongan dari HTTP kepada HTTPS.

Tetapi kebanyakan orang tidak memerlukan semua ciri-ciri, jadi saya telah disenaraikan dua kaedah terbaik mengalihkan HTTP kepada HTTPS dalam IIS 7. Mereka adalah mudah untuk menubuhkan dan berkesan dalam kebanyakan situasi.


CARA 1 : Menggunakan Microsoft URL Rewrite Module
Bagi kaedah ini mengalihkan dari HTTP kepada HTTPS, anda akan perlu untuk melakukan perkara-perkara berikut:
  1. Install URL Microsoft URL Rewrite Module 
  2. Setup SSL certificate anda dalam IIS 7 kepada laman web anda 
  3. Pastikan Require SSL TIDAK ditanda di bawah SSL Setting untuk laman web anda (nyahtanda kotak yang diperiksa dalam paparan ini) 
  4. Copy and paste kod berikut antara tag dan dalam fail web.config anda dalam direktori root laman web anda) 
    <rule name="HTTP to HTTPS redirect" 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>
  5. 
    
    
    
  6. Uji tapak dengan pergi ke http://www.lamanAnda.com dan memastikan ia dilencongkan 



Kaedah 2 - Mewujudkan Custom Page untuk Error

Kaedah kedua menubuhkan IIS7 redirect HTTP kepada HTTPS adalah menggunakan Require SSL di laman web atau sebahagian laman dan mewujudkan halaman untuk ralat 403.4 (error page). Untuk melakukan ini, hanya mengikuti langkah-langkah ini:

1.   Sediakan SSL certificate anda dalam IIS 7 kpadae laman web anda



2. Di IIS, klik pada nama laman web, dan pergi ke bahagian SSL Setting
3. Buat satu fail html baru dan paste program yang berikut ke dalamnya:

<html>
<head><title>Redirecting...</title></head>
<script language="JavaScript">
function redirectHttpToHttps()
{
    var httpURL= window.location.hostname + window.location.pathname + window.location.search;
    var httpsURL= "https://" + httpURL;
    window.location = httpsURL;
}
redirectHttpToHttps ();
</script>
<body>
</body>
</html

3. Simpan fail atas nama redirectToHttps.htm dalam directori C:\Inetpub directory
4. Pergi Semula dalam IIS dan klik pada laman anda dan double-click pada Error Pages.


5. Klik tambah (add)…dam masukkan 403.4 sebagai Status Code. Pada Insert content  from static file into the error response  masukkan directory fail htm tadi dan klik OK.
… 
6. Pilih Error Code (403.4) yang berkenaan dan Klik Edit Feature Setting


7.Klik Pada Custom error pages dan buat masukkan URL fail tadi dalam bahagian DefaultPage


8. Uji laman dengan layari ke http://www.yoursite.com dan pastikan ia dilencongkan
9. Peringatan menggunakan Error Page dalam IIS7 untuk  melencongkan HTTP kepada HTTPS adalah memerlukan brosur web tersebut tersedia dengan JavaScript dan fungsinya diaktifkan.

Sumber lain IIS7 untuk dilencongkan HTTP to HTTPS:
Share: