Cara Menyiapkan SSL di IIS 7 atau yang lebih baru

oleh Saad Ladki

Pengantar

Langkah-langkah untuk mengonfigurasi Secure Sockets Layer (SSL) untuk situs sama di IIS 7 ke atas dan IIS 6.0, dan menyertakan yang berikut:

  • Dapatkan sertifikat yang sesuai.
  • Membuat pengikatan HTTPS di situs.
  • Uji dengan membuat permintaan ke situs.
  • Secara opsional mengonfigurasi opsi SSL, yaitu, dengan menjadikan SSL sebagai persyaratan.

Dokumen ini menyediakan beberapa informasi dasar tentang SSL, lalu memperlihatkan cara mengaktifkan SSL dengan cara berikut:

  • Menggunakan Manajer IIS.
  • Menggunakan alat baris perintah AppCmd.exe.
  • Secara terprogram melalui Microsoft.Web.Administration.
  • Menggunakan skrip WMI.

Artikel ini berisi bagian berikut:

Konfigurasi SSL

Apakah Anda menjalankan situs web Anda di server Anda sendiri, atau di cloud, menggunakan SSL untuk mengamankan situs Anda mungkin sangat penting bagi Anda, karena banyak situs web beralih ke situs web tersebut untuk melindungi privasi pengguna. Jika Anda perlu mengonfigurasi SSL di server Anda, penting untuk menyadari bahwa implementasi SSL berubah dari IIS 6.0 ke IIS 7 ke atas. Dalam IIS 6.0 pada Windows Server 2003, semua konfigurasi SSL disimpan dalam metabase IIS, dan enkripsi/dekripsi terjadi dalam mode Pengguna (membutuhkan banyak transisi mode kernel/pengguna). Di IIS 7 ke atas, HTTP.sys menangani enkripsi/dekripsi SSL dalam mode kernel, menghasilkan performa hingga 20% lebih baik untuk koneksi aman di IIS 7 ke atas daripada yang dialami di IIS 6.0.

Menggunakan SSL dalam mode kernel memerlukan penyimpanan informasi pengikatan SSL di dua tempat. Pertama, pengikatan disimpan di %windir%\System32\inetsrv\config\applicationHost.config untuk situs Anda. Ketika situs dimulai, IIS mengirim pengikatan ke HTTP.sys, dan HTTP.sys mulai mendengarkan permintaan pada IP:Port yang ditentukan (ini berfungsi untuk semua pengikatan). Kedua, konfigurasi SSL yang terkait dengan pengikatan disimpan dalam konfigurasi HTTP.sys. Gunakan perintah netsh pada prompt perintah untuk melihat konfigurasi pengikatan SSL yang disimpan di HTTP.sys seperti dalam contoh berikut:

netsh http show sslcert

Ketika klien terhubung dan memulai negosiasi SSL, HTTP.sys melihat konfigurasi SSL-nya untuk pasangan IP:Port tempat klien terhubung. Konfigurasi SSL HTTP.sys harus menyertakan hash sertifikat dan nama penyimpanan sertifikat sebelum negosiasi SSL akan berhasil.

Tips Pemecahan Masalah: Jika Anda mengalami masalah dengan pengikatan SSL, verifikasi bahwa pengikatan dikonfigurasi di ApplicationHost.config, dan bahwa penyimpanan HTTP.sys berisi hash sertifikat yang valid dan nama penyimpanan untuk pengikatan.

Memilih Sertifikat

Saat memilih sertifikat, pertimbangkan hal berikut: Apakah Anda ingin pengguna akhir dapat memverifikasi identitas server Anda dengan sertifikat Anda? Jika ya, buat permintaan sertifikat dan kirim permintaan tersebut ke otoritas sertifikat (CA) yang diketahui seperti VeriSign atau GeoTrust, atau dapatkan sertifikat dari CA online di domain intranet Anda. Ada tiga hal yang biasanya diverifikasi browser dalam sertifikat server:

  1. Tanggal dan waktu saat ini berada dalam rentang tanggal "Valid dari" dan "Valid hingga" pada sertifikat.
  2. Sertifikat "Nama Umum" (CN) cocok dengan header host dalam permintaan. Misalnya, jika klien membuat permintaan ke https://www.contoso.com/, maka CN harus www.contoso.com.
  3. Bahwa penerbit sertifikat adalah OS yang dikenal dan tepercaya.

Jika satu atau beberapa pemeriksaan ini gagal, browser akan meminta pengguna dengan peringatan. Jika Anda memiliki situs Internet atau situs intranet di mana pengguna akhir Anda bukan orang yang Anda kenal secara pribadi, maka Anda harus selalu memastikan bahwa ketiga parameter ini valid.

Sertifikat yang ditandatangani sendiri adalah sertifikat yang dibuat di komputer Anda. Mereka berguna di lingkungan di mana tidak penting bagi pengguna akhir untuk mempercayai server Anda, seperti lingkungan pengujian.

Menggunakan AppCmd

Anda tidak dapat meminta atau membuat sertifikat dengan menggunakan AppCmd.exe. Anda juga tidak dapat menggunakan AppCmd.exe untuk membuat pengikatan SSL.

Mengonfigurasi Pengaturan SSL

Anda dapat menggunakan AppCmd.exe untuk mengonfigurasi situs agar hanya menerima koneksi HTTPS server dengan memodifikasi atribut sslFlags di bagian Akses. Misalnya, Anda dapat mengonfigurasi pengaturan ini untuk "Situs Web Default" dalam file ApplicationHost.config (misalnya, commitPath:APPHOST) dengan menggunakan perintah berikut:

%windir%\system32\inetsrv>AppCmd set config "Default Web Site" -commitPath:APPHOST -section:access -sslFlags:Ssl

Jika berhasil, pesan berikut ditampilkan:

Applied configuration changes to section "system.webServer/security/access" for "MACHINE/WEBROOT/APPHOST/Default Web Site" at configuration commit path "MACHINE/WEBROOT/APPHOST"

Catatan

Untuk memerlukan SSL 128-bit, ubah nilai sslFlags menjadi Ssl128.

Contoh berikut menunjukkan cara menampilkan <pengaturan akses/> bagian untuk Situs Web Default. Atribut sslFlags telah berhasil ditetapkan.

%windir%\system32\inetsrv>AppCmd list config "Default Web Site" -section:access

Menjalankan perintah menghasilkan entri berikut dalam file ApplicationHost.config:

<system.webServer>
  <security>
    <access flags="Script, Read" sslFlags="Ssl" />
  </security>
</system.webServer>

Menggunakan WMI

Anda tidak dapat meminta atau membuat sertifikat dengan menggunakan namespace layanan WebAdministration WMI.

Membuat Pengikatan SSL

Skrip berikut menunjukkan cara membuat pengikatan SSL baru dan cara menambahkan konfigurasi yang sesuai untuk HTTP.sys dan IIS:

Set oIIS = GetObject("winmgmts:root\WebAdministration")
'''''''''''''''''''''''''''''''''''''''''''''
' CREATE SSL BINDING
'''''''''''''''''''''''''''''''''''''''''''''

oIIS.Get("SSLBinding").Create _ 
   "*", 443, "4dc67e0ca1d9ac7dd4efb3daaeb15d708c9184f8", "MY"
'''''''''''''''''''''''''''''''''''''''''''''
' ADD SSL BINDING TO SITE
'''''''''''''''''''''''''''''''''''''''''''''

Set oBinding = oIIS.Get("BindingElement").SpawnInstance_
oBinding.BindingInformation = "*:443:"
oBinding.Protocol = "https"

Set oSite = oIIS.Get("Site.Name='Default Web Site'")
arrBindings = oSite.Bindings

ReDim Preserve arrBindings(UBound(arrBindings) + 1)
Set arrBindings(UBound(arrBindings)) = oBinding

oSite.Bindings = arrBindings
Set oPath = oSite.Put_

Catatan

Hash dan penyimpanan sertifikat harus mereferensikan sertifikat fungsional nyata di server Anda. Jika hash sertifikat dan/atau nama penyimpanan palsu, kesalahan akan dikembalikan.

Mengonfigurasi Pengaturan SSL

Skrip berikut menunjukkan cara mengatur pengaturan SSL dengan menggunakan penyedia IIS WMI. Anda dapat menemukan nilai ini dalam file IIS_Schema.xml.

CONST SSL = 8  
Set oIIS = GetObject("winmgmts:root\WebAdministration")  
Set oSection = oIIS.Get(\_  
 "AccessSection.Path='MACHINE/WEBROOT/APPHOST',Location='Default Web Site'")  
oSection.SslFlags = oSection.SslFlags OR SSL  
oSection.Put\_ <a id="IISManager"></a>

Manajer IIS

Mendapatkan Sertifikat

Pilih simpul server di tampilan pohon dan klik dua kali fitur Sertifikat Server di tampilan daftar:
Cuplikan layar simpul server ALEXIS E 3 L H Home dengan Sertifikat Server dipilih.

Klik Buat Sertifikat Self-Signed... di panel Tindakan .
Cuplikan layar panel Tindakan Sertifikat Server dengan Buat Sertifikat Yang Ditandatangani Sendiri ditekankan.

Masukkan nama yang mudah diingat untuk sertifikat baru dan klik OK.

Sekarang Anda memiliki sertifikat yang ditandatangani sendiri. Sertifikat ditandai untuk penggunaan "Autentikasi Server"; artinya, ia menggunakan sebagai sertifikat sisi server untuk enkripsi HTTP SSL dan untuk mengautentikasi identitas server.

Membuat Pengikatan SSL

Pilih situs dalam tampilan pohon dan klik Pengikatan... di panel Tindakan . Ini memunculkan editor pengikatan yang memungkinkan Anda membuat, mengedit, dan menghapus pengikatan untuk situs Web Anda. Klik Tambahkan... untuk menambahkan pengikatan SSL baru Anda ke situs.

Cuplikan layar dialog Pengikatan Situs dengan satu pengikatan situs default.

Pengaturan default untuk pengikatan baru diatur ke HTTP pada port 80. Pilih https di daftar drop-down Jenis . Pilih sertifikat yang ditandatangani sendiri yang Anda buat di bagian sebelumnya dari daftar drop-down Sertifikat SSL lalu klik OK.

Cuplikan layar dialog Tambahkan Pengikatan Situs dengan Jenis diatur ke sertifikat H T T P S dan S S L diatur ke Sertifikat pengujian.

Sekarang Anda memiliki pengikatan SSL baru di situs Anda dan yang tersisa adalah memverifikasi bahwa SSL berfungsi.
Cuplikan layar dialog Pengikatan Situs dengan pengikatan H T T P dan H T T P S.

Memverifikasi Pengikatan SSL

Di panel Tindakan, di bawah Telusuri Situs Web, klik tautan yang terkait dengan pengikatan yang baru saja Anda buat.
Cuplikan layar bagian Telusuri Situs Web dari panel Tindakan dengan telusuri tanda bintang titik dua 443 atau H T T P S ditekankan.

Internet Explorer (IE) 7 ke atas akan menampilkan halaman kesalahan karena sertifikat yang ditandatangani sendiri dikeluarkan oleh komputer Anda, bukan oleh Otoritas Sertifikat (CA) tepercaya. IE 7 ke atas akan mempercayai sertifikat jika Anda menambahkannya ke daftar Otoritas Sertifikasi Akar Tepercaya dalam sertifikat yang menyimpannya di komputer lokal, atau di Kebijakan Grup untuk domain tersebut. Klik Lanjutkan ke situs web ini (tidak disarankan).
Cuplikan layar internet explorer yang menampilkan kesalahan sertifikat keamanan. Lanjutkan ke situs web ini (tidak disarankan) ditekankan.

Mengonfigurasi Pengaturan SSL

Konfigurasikan pengaturan SSL jika Anda ingin situs Anda memerlukan SSL, atau berinteraksi dengan cara tertentu dengan sertifikat klien. Klik simpul situs dalam tampilan pohon untuk kembali ke halaman beranda situs. Klik dua kali fitur Pengaturan SSL di panel tengah.

Cuplikan layar panel Pengaturan S S L yang memerlukan S S L dan mengabaikan sertifikat Klien.

Ringkasan

Dalam panduan ini, kami berhasil menggunakan alat baris perintah AppCmd.exe, penyedia skrip WMI, dan IIS Manager untuk menyiapkan SSL di IIS.