Instal Let's Encrypt TLS / SSL sertifikat gratis di IIS / RDS di Windows Server 2016/2012 R2

Dalam ulasan ini, kita akan berbicara tentang fitur menginstal dan mengikat sertifikat TLS / SSL gratis dari Let's Encrypt untuk situs di server web IIS yang berjalan pada Windows Server 2019/2016/2012 R2.

Konten:

  • Mari Mengenkripsi dan Klien ACME untuk Windows
  • Klien WACS untuk Menginstal TLS Let's Encrypt Certificate dalam IIS pada Windows Server
  • Mengarahkan lalu lintas situs IIS dari HTTP ke alamat HTTPS
  • Menggunakan Let's Encrypt Certificate untuk Layanan Remote Desktop

Mari Mengenkripsi dan Klien ACME untuk Windows

Kehadiran sertifikat TLS / SSL di situs memungkinkan Anda untuk melindungi data pengguna yang dikirimkan melalui jaringan dari serangan man-in-the-middle dan menjamin integritas data yang dikirimkan. Otoritas Sertifikasi Nirlaba Biarkanini Enkripsi Memungkinkan Anda secara otomatis mengeluarkan melalui sertifikat kriptografi TLS X.509 API gratis untuk enkripsi (HTTPS). Hanya sertifikat untuk validasi domain yang dikeluarkan, dengan masa berlaku 90 hari (ada batas 50 sertifikat untuk satu domain per minggu). Tetapi Anda dapat secara otomatis menerbitkan kembali sertifikat SSL untuk situs Anda sesuai jadwal.

API untuk menerbitkan sertifikat secara otomatis disebut Otomatis Sertifikat Manajemen Lingkungan (ACME) API. Untuk sistem Windows, saat ini ada 3 implementasi klien ACME API paling populer:

  • Utilitas Windows ACME Sederhana (WACS) - utilitas baris perintah untuk mengeluarkan sertifikat secara interaktif dan menautkannya ke situs tertentu di server web IIS Anda;
  • Modul Powershell ACMESharp - Pustaka Powershell dengan banyak perintah untuk berinteraksi melalui ACME API dengan server Mari Enkripsi;
  • Sertifikasi - Manajer sertifikat SSL grafis untuk Windows yang memungkinkan manajemen sertifikat interaktif melalui ACME API.

Klien WACS untuk Menginstal TLS Let's Enkripsi Sertifikat di IIS pada Windows Server

Cara termudah untuk mendapatkan sertifikat SSL dari Let's Encrypt adalah dengan menggunakan utilitas konsol Windows ACME Sederhana (Wacs) (sebelumnya proyek dipanggil Letsencrypt-Menang-Sederhana). Ini adalah wizard sederhana yang memungkinkan Anda memilih salah satu situs yang berjalan di IIS dan secara otomatis mengeluarkan dan mengikat sertifikat SSL ke sana..

Jadi, misalkan kita memiliki situs web di IIS, yang dikerahkan menjalankan Windows Server 2016. Tugas kita adalah untuk beralih ke mode HTTPS dengan menginstal sertifikat SSL dari Let's Encrypt.

Unduh rilis terbaru dari klien WACS dari halaman proyek di GitHub https://github.com/PKISharp/win-acme/releases (dalam kasus saya ini adalah versi v2.0.10 - win-acme.v2.0.10.444.zip file).

Buka zip arsip ke direktori di server dengan IIS: c: \ inetpub \ letsencrypt

Untuk menggunakan Win-Acme, Anda harus menginstal .NET Framework 4.7.2 atau lebih tinggi (Bagaimana mengetahui versi .Net yang diinstal?).

Buka prompt perintah dengan hak administrator, buka c: \ inetpub \ letsencrypt dan jalankan wacs.exe.

Ini memulai panduan interaktif untuk membuat sertifikat Mari Enkripsi dan mengikatnya ke situs IIS. Untuk membuat sertifikat baru dengan cepat, pilih N: - Buat sertifikat baru (sederhana untuk IIS).

Maka Anda perlu memilih jenis sertifikat. Dalam contoh kami, tidak perlu menggunakan sertifikat dengan alias (beberapa SAN - Nama Alternatif Subjek), jadi pilih saja 1. Pengikatan tunggal situs IIS. Jika Anda memerlukan sertifikat Wildcard, pilih opsi 3.

Selanjutnya, utilitas akan menampilkan daftar situs yang berjalan di server IIS dan menawarkan untuk memilih situs yang Anda butuhkan untuk membuat dan mengikat sertifikat SSL baru.

Tunjukkan alamat email Anda yang pemberitahuan tentang masalah dengan memperbarui sertifikat situs dan orang lain tentang menggantung akan dikirim (Anda dapat menentukan beberapa email yang dipisahkan oleh koma). Tetap menyetujui ketentuan penggunaan dan Windows ACME Simple akan terhubung ke server Mari Enkripsi dan mencoba untuk secara otomatis menghasilkan sertifikat SSL baru untuk situs Anda.

Proses menghasilkan dan menginstal Mari Enkripsi sertifikat SSL untuk IIS sepenuhnya otomatis.

Secara default, validasi domain dilakukan dalam mode Validasi http-01 (SelfHosting). Untuk melakukan ini, Anda harus memiliki catatan di DNS domain yang menunjuk ke server web Anda. Saat memulai WACS dalam mode manual, Anda dapat memilih jenis validasi - 4 [http-01] Buat sementara aplikasi masuk IIS (disarankan). Dalam hal ini, sebuah aplikasi kecil akan dibuat pada server web IIS yang melaluinya server Mari Enkripsi dapat divalidasi.

Catatan. Saat melakukan verifikasi TLS / HTTP, situs Anda harus dapat diakses secara eksternal menggunakan nama DNS lengkap menggunakan protokol HTTP (80 / TCP) dan HTTPS (443 / TCP).

Utilitas WACS menyimpan kunci pribadi sertifikat (* .pem), sertifikat itu sendiri dan sejumlah file lain di direktori C: \ Users \% username% \ AppData \ Roaming \ letsencrypt-win-simple. Kemudian ia akan menginstal Mari Enkripsi sertifikat SSL yang dihasilkan di latar belakang dan melampirkannya ke situs IIS Anda. Jika sertifikat SSL (misalnya, ditandatangani sendiri) sudah diinstal di situs, itu akan diganti dengan yang baru.

Di IIS Manager, buka menu Mengikat situs untuk situs Anda dan pastikan menggunakan sertifikat yang dikeluarkan oleh Ayo Enkripsi Otoritas X3.

Sertifikat ini akan dipercaya jika Anda memperbarui sertifikat root Windows secara tepat waktu..

Di toko sertifikat komputer, Mari Enkripsi sertifikat IIS dapat ditemukan di bagian Web Hosting -> Sertifikat.

Windows ACME Simple membuat aturan baru di Penjadwal Tugas Windows (win-acme-renew (acme-v02.api.letsencrypt.org)) untuk secara otomatis memperbarui sertifikat. Tugas dimulai setiap hari, pembaruan sertifikat dilakukan setelah 60 hari. Penjadwal menjalankan perintah:

C: \ inetpub \ letsencrypt \ wacs.exe --renew --baseuri "https://acme-v02.api.letsencrypt.org"

Anda dapat menggunakan perintah yang sama untuk memperbarui sertifikat secara manual.

Mengarahkan lalu lintas situs IIS dari HTTP ke alamat HTTPS

Untuk mengarahkan semua lalu lintas HTTP yang masuk ke situs HTTPS, Anda perlu menginstal modul Microsoft URL Menulis ulang Modul (https://www.iis.net/downloads/microsoft/url-rewrite), dan pastikan bahwa opsi SSL (Membutuhkan SSL) tidak diaktifkan di pengaturan situs. Tetap mengkonfigurasi redirect di file web.config:













Anda juga dapat mengonfigurasi pengalihan lalu lintas melalui URL Tulis Ulang melalui GUI IIS Manager. Pilih Situs -> nama perusahaan Anda -> Penulisan Ulang URL.

Buat aturan baru Tambahkan Aturan -> Aturan kosong.

Tentukan nama aturan dan ubah nilai parameter:

  • URL yang Diminta -> Mencocokkan Pola
  • Menggunakan -> Ekspresi Reguler
  • Pola -> (. *)

Di blok Ketentuan, ubah Pengelompokan Logis -> Cocokkan Semua dan klik Tambah. Tunjukkan

  • Input kondisi -> HTTPS
  • Periksa apakah string input -> Cocok dengan Pola
  • Pola -> ^ OFF $

Sekarang di blok Action pilih:

  • Jenis Tindakan -> Redirect
  • Redirect URL -> https: // HTTP_HOST / R: 1
  • Jenis pengalihan -> Permanen (301)

Buka browser dan coba buka situs Anda dengan alamat HTTP, Anda seharusnya secara otomatis diarahkan ke HTTPS URL.

Menggunakan Let's Encrypt Certificate untuk Layanan Remote Desktop

Jika Anda menggunakan Remote Desktop Gateway / RD Web Access untuk menghubungkan pengguna eksternal ke jaringan perusahaan, Anda dapat menggunakan sertifikat Mari Enkripsi SSL normal alih-alih sertifikat yang ditandatangani sendiri. Mari kita lihat cara menginstal dengan benar sertifikat Mari Enkripsi untuk Layanan Desktop Jarak Jauh yang aman di Windows Server..

Jika peran RDSH juga dinaikkan pada server Remote Desktop Gateway, Anda harus mencegah Baca pengguna dari mengakses direktori di mana Anda memiliki WACS (dalam contoh saya, ini adalah c: \ inetpub \ letsencrypt) dan sertifikat Let's Encrypt (C: \ sertifikat Program data) \ win-acme).

Kemudian pada server RDP GW, jalankan wacs.exe, seperti yang dijelaskan di atas, dan Anda memilih situs IIS yang diinginkan (biasanya, Situs Web Default). Let's Encrypt memberi Anda sertifikat baru, yang dipasang untuk situs web dan tugas pembaruan sertifikat otomatis muncul di penjadwal.

Anda dapat mengekspor sertifikat ini secara manual dan mengikatnya ke layanan RDS yang diperlukan melalui pengikatan SSL. Tetapi Anda harus melakukan langkah-langkah ini secara manual setiap 60 hari ketika menerbitkan kembali sertifikat Let's Encrypt.

Kami membutuhkan skrip yang akan segera setelah menerima (memperbarui) sertifikat Let's Encrypt yang menggunakannya untuk RD Gateway.

Proyek win-acme memiliki skrip PowerShell yang sudah jadi ImportRDGateway.ps1 (https://github.com/PKISharp/win-acme/tree/master/dist/Scripts), yang memungkinkan Anda untuk menginstal sertifikat SSL yang dipilih untuk Layanan Desktop Jarak Jauh. Kelemahan utama skrip adalah Anda harus secara manual menentukan sidik jari sertifikat baru:
ImportRDGateway.ps1

Untuk secara otomatis mendapatkan cap jempol sertifikat dari situs IIS yang ditentukan, gunakan skrip yang dimodifikasi ImportRDGateway_Cert_From_IIS.ps1 (berdasarkan standar ImportRDGateway.ps1).

Instruksi dan skrip PowerShell yang dimodifikasi dikirim oleh pembaca kami, Anton, yang kami kirimkan kepadanya sinar terima kasih!

Anda dapat menjalankan skrip ini secara manual:

powershell -File ImportRDGateway_Cert_From_IIS.ps1

Jika RDS Gateway Anda hidup di situs IIS standar "Situs Web Default" dengan indeks 0, Anda dapat menggunakan skrip tanpa perubahan.

Untuk mendapatkan ID situs di IIS, buka konsol PowerShell dan jalankan:

Impor-Modul WebAdministration
Get-ChildItem IIS: Sites

Dapatkan daftar formulir:

Kolom ID menunjukkan indeks situs Anda, kurangi satu dari itu. Indeks situs Anda yang dihasilkan harus ditentukan alih-alih 0 pada baris 27 dari skrip PowerShell:

$ NewCertThumbprint = (Get-ChildItem IIS: SSLBindings) [0] .Thumbprint

Sekarang buka tugas penjadwal win-acme-renew (acme-v02.api.letsencrypt.org) dan pada tab Action tambahkan tugas baru yang menjalankan skrip ImportRDGateway_Cert_From_IIS.ps1 setelah memperbarui sertifikat.

Agar tidak mengubah izin untuk menjalankan skrip PowerShell, Anda dapat memanggil skrip dengan perintah:

PowerShell.exe -ExecutionPolicy Bypass -File c: \ inetpub \ letsencrypt \ ImportRDGateway_Cert_From_IIS.ps1

Sekarang skrip untuk mengikat sertifikat SSL ke RDS akan dieksekusi segera setelah pembaruan sertifikat Let's Encrypt. Dalam hal ini, layanan RD Gateway secara otomatis dimulai kembali dengan perintah:

Mulai Ulang Layanan TSGateway

Saat layanan TSGateway dihidupkan ulang, semua sesi pengguna saat ini rusak, sehingga disarankan untuk mengubah frekuensi peluncuran pekerjaan pembaruan sertifikat sebanyak 1 kali dalam 60 hari.

Perhatikan bahwa sertifikat Mari Enkripsi saat ini banyak digunakan di situs web banyak perusahaan besar dan dipercaya oleh semua browser. Saya berharap nasib otoritas sertifikat gratis Let's Encrypt tidak mengalami nasib WoSign dan StartCom.