AWS CloudHSM SSL/TLSoffload pada Windows menggunakan dengan IIS CNG - AWS CloudHSM

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

AWS CloudHSM SSL/TLSoffload pada Windows menggunakan dengan IIS CNG

Tutorial ini memberikan step-by-step instruksi untuk SSL TLS mengatur/offload dengan AWS CloudHSM pada server web Windows.

Gambaran Umum

Pada Windows, Internet Information Services (IIS) untuk aplikasi server web Windows Server mendukung HTTPS secara native. Penyedia penyimpanan AWS CloudHSM kunci (KSP) untuk Microsoft CryptographyAPI: Next Generation (CNG) menyediakan antarmuka yang memungkinkan IIS untuk menggunakan HSMs di cluster Anda untuk pembongkaran kriptografi dan penyimpanan kunci. AWS CloudHSM KSPIni adalah jembatan yang menghubungkan IIS ke AWS CloudHSM cluster Anda.

Tutorial ini menunjukkan kepada Anda cara melakukan hal berikut:

  • Instal perangkat lunak server web pada EC2 instance Amazon.

  • Konfigurasikan perangkat lunak server web untuk mendukung HTTPS dengan kunci pribadi yang disimpan di AWS CloudHSM cluster Anda.

  • (Opsional) Gunakan Amazon EC2 untuk membuat instance server web kedua dan Elastic Load Balancing untuk membuat penyeimbang beban. Menggunakan penyeimbang beban dapat meningkatkan performa dengan mendistribusikan beban di beberapa server. Hal ini juga dapat memberikan redundansi dan ketersediaan yang lebih tinggi jika satu atau lebih server gagal.

Saat Anda siap memulai, buka Langkah 1: Siapkan prasyarat.

Langkah 1: Siapkan prasyarat

Untuk mengatur server SSL TLS web/offload dengan AWS CloudHSM, Anda memerlukan yang berikut ini:

  • AWS CloudHSM Cluster aktif dengan setidaknya satuHSM.

  • EC2Instans Amazon yang menjalankan sistem operasi Windows dengan perangkat lunak berikut diinstal:

    • Perangkat lunak AWS CloudHSM klien untuk Windows.

    • Layanan Informasi Internet (IIS) untuk Windows Server.

  • Pengguna kripto (CU) untuk memiliki dan mengelola kunci pribadi server web diHSM.

catatan

Tutorial ini menggunakan Microsoft Windows Server 2016. Microsoft Windows Server 2012 juga didukung, tetapi Microsoft Windows Server 2012 R2 tidak.

Untuk mengatur instance Windows Server dan membuat CU pada HSM
  1. Selesaikan langkah-langkah dalam Memulai. Saat Anda meluncurkan EC2 klien Amazon, pilih Windows Server 2016 atau Windows Server 2012AMI. Ketika Anda menyelesaikan langkah-langkah ini, Anda memiliki cluster aktif dengan setidaknya satuHSM. Anda juga memiliki instance EC2 klien Amazon yang menjalankan Windows Server dengan perangkat lunak AWS CloudHSM klien untuk Windows diinstal.

  2. (Opsional) Tambahkan lebih banyak HSMs ke cluster Anda. Untuk informasi selengkapnya, lihat Menambahkan HSM ke AWS CloudHSM cluster.

  3. Hubungkan ke server Windows Anda. Untuk informasi selengkapnya, lihat Connect to Your Instance di Panduan EC2 Pengguna Amazon.

  4. Gunakan Cloud HSM CLI untuk membuat pengguna kripto (CU). Lacak nama pengguna dan kata sandi CU. Anda akan membutuhkannya untuk menyelesaikan langkah berikutnya.

    catatan

    Untuk informasi tentang cara membuat pengguna, lihat Mengelola HSM pengguna dengan Cloud HSM CLI.

  5. Atur kredensi login untuk HSM, menggunakan nama pengguna CU dan kata sandi yang Anda buat pada langkah sebelumnya.

  6. Pada langkah 5, jika Anda menggunakan Windows Credentials Manager untuk mengatur HSM kredensialnya, unduh psexec.exedari SysInternals untuk menjalankan perintah berikut sebagai NT Authority\: SYSTEM

    psexec.exe -s "C:\Program Files\Amazon\CloudHsm\tools\set_cloudhsm_credentials.exe" --username <USERNAME> --password <PASSWORD>

    Ganti <USERNAME> and <PASSWORD> dengan HSM kredensialnya.

Untuk menginstal IIS di Windows Server Anda
  1. Jika Anda belum melakukannya, hubungkan ke server Windows server Anda. Untuk informasi selengkapnya, lihat Connect to Your Instance di Panduan EC2 Pengguna Amazon.

  2. Pada server Windows Anda, mulai Manager Server.

  3. Di dasbor Server Manager, pilih Tambahkan peran dan fitur.

  4. Baca informasi Sebelum Anda memulai, kemudian pilih Selanjutnya.

  5. Untuk Jenis Instalasi, pilih Instalasi berbasis peran atau berbasis fitur. Lalu, pilih Selanjutnya.

  6. Untuk Pemilihan Server, pilih Pilih server dari kolam server. Lalu, pilih Selanjutnya.

  7. Untuk Peran Server, lakukan hal berikut:

    1. Pilih Web Server (IIS).

    2. Untuk Menambahkan fitur yang diperlukan untuk Web Server (IIS), pilih Tambahkan Fitur.

    3. Pilih Selanjutnya untuk menyelesaikan pemilihan peran server.

  8. Untuk Fitur, terima default. Lalu, pilih Selanjutnya.

  9. Baca informasi Peran Server Web (IIS). Lalu, pilih Selanjutnya.

  10. Untuk Pilih layanan peran, terima default atau ubah pengaturan sesuai pilihan. Lalu, pilih Selanjutnya.

  11. Untuk Konfirmasi, baca informasi konfirmasi. Lalu, pilih Instal.

  12. Setelah penginstalan selesai, pilih Tutup.

Setelah Anda menyelesaikan langkah ini, buka Langkah 2: Buat permintaan penandatanganan sertifikat (CSR) dan sertifikat.

Langkah 2: Buat permintaan penandatanganan sertifikat (CSR) dan sertifikat

Untuk mengaktifkanHTTPS, server web Anda memerlukan SSL/TLS certificate and a corresponding private key. To use SSL/TLS pembongkaran dengan AWS CloudHSM, Anda menyimpan kunci pribadi di HSM dalam AWS CloudHSM cluster Anda. Untuk melakukan ini, Anda menggunakan penyedia penyimpanan AWS CloudHSM kunci (KSP) untuk Microsoft CryptographyAPI: Next Generation (CNG) untuk membuat permintaan penandatanganan sertifikat (CSR). Kemudian Anda memberikan CSR kepada otoritas sertifikat (CA), yang menandatangani CSR untuk menghasilkan sertifikat.

Buat CSR

Gunakan AWS CloudHSM KSP pada Windows Server Anda untuk membuat fileCSR.

Untuk membuat CSR
  1. Jika Anda belum melakukannya, hubungkan ke server Windows server Anda. Untuk informasi selengkapnya, lihat Connect to Your Instance di Panduan EC2 Pengguna Amazon.

  2. Gunakan perintah berikut untuk memulai daemon AWS CloudHSM klien.

    Amazon Linux
    $ sudo start cloudhsm-client
    Amazon Linux 2
    $ sudo service cloudhsm-client start
    CentOS 7
    $ sudo service cloudhsm-client start
    CentOS 8
    $ sudo service cloudhsm-client start
    RHEL 7
    $ sudo service cloudhsm-client start
    RHEL 8
    $ sudo service cloudhsm-client start
    Ubuntu 16.04 LTS
    $ sudo service cloudhsm-client start
    Ubuntu 18.04 LTS
    $ sudo service cloudhsm-client start
    Windows
    • Untuk klien Windows 1.1.2+:

      C:\Program Files\Amazon\CloudHSM>net.exe start AWSCloudHSMClient
    • Untuk klien Windows 1.1.1 dan yang lebih lama:

      C:\Program Files\Amazon\CloudHSM>start "cloudhsm_client" cloudhsm_client.exe C:\ProgramData\Amazon\CloudHSM\data\cloudhsm_client.cfg
  3. Pada Windows Server Anda, gunakan editor teks untuk membuat file permintaan sertifikat bernama IISCertRequest.inf. Hal berikut menunjukkan isi contoh file IISCertRequest.inf. Untuk informasi lebih lanjut tentang bagian, kunci, dan nilai-nilai yang dapat Anda tentukan dalam file, lihat Dokumentasi Microsoft. Jangan ubah nilai ProviderName.

    [Version] Signature = "$Windows NT$" [NewRequest] Subject = "CN=example.com,C=US,ST=Washington,L=Seattle,O=ExampleOrg,OU=WebServer" HashAlgorithm = SHA256 KeyAlgorithm = RSA KeyLength = 2048 ProviderName = "Cavium Key Storage Provider" KeyUsage = 0xf0 MachineKeySet = True [EnhancedKeyUsageExtension] OID=1.3.6.1.5.5.7.3.1
  4. Gunakan perintah Windows certreq untuk membuat CSR dari IISCertRequest.inf file yang Anda buat pada langkah sebelumnya. Contoh berikut menyimpan CSR ke file bernamaIISCertRequest.csr. Jika Anda menggunakan nama file yang berbeda untuk file permintaan sertifikat Anda, ganti IISCertRequest.inf dengan nama file yang sesuai. Anda dapat mengganti secara opsional IISCertRequest.csr dengan nama file yang berbeda untuk CSR file Anda.

    C:\>certreq -new IISCertRequest.inf IISCertRequest.csr SDK Version: 2.03 CertReq: Request Created

    IISCertRequest.csrFile berisi file AndaCSR. Anda memerlukan ini CSR untuk mendapatkan sertifikat yang ditandatangani.

Dapatkan sertifikat yang ditandatangani dan impor

Dalam lingkungan produksi, Anda biasanya menggunakan otoritas sertifikat (CA) untuk membuat sertifikat dari fileCSR. CA tidak diperlukan untuk lingkungan pengujian. Jika Anda menggunakan CA, kirim CSR file (IISCertRequest.csr) ke sana dan gunakan CA untuk membuat TLS sertifikatSSL/yang ditandatangani.

Sebagai alternatif untuk menggunakan CA, Anda dapat menggunakan alat seperti Open SSL untuk membuat sertifikat yang ditandatangani sendiri.

Awas

Sertifikat yang ditandatangani sendiri tidak dipercaya oleh peramban dan tidak boleh digunakan dalam lingkungan produksi. Sertifikat dapat digunakan dalam lingkungan pengujian.

Prosedur berikut menunjukkan cara membuat sertifikat yang ditandatangani sendiri dan menggunakannya untuk menandatangani server web Anda. CSR

Untuk membuat sertifikat yang ditandatangani sendiri
  1. Gunakan SSL perintah Open berikut untuk membuat kunci pribadi. Anda dapat mengganti secara opsional SelfSignedCA.key dengan nama file yang berisi kunci pribadi Anda.

    openssl genrsa -aes256 -out SelfSignedCA.key 2048 Generating RSA private key, 2048 bit long modulus ......................................................................+++ .........................................+++ e is 65537 (0x10001) Enter pass phrase for SelfSignedCA.key: Verifying - Enter pass phrase for SelfSignedCA.key:
  2. Gunakan SSL perintah Buka berikut untuk membuat sertifikat yang ditandatangani sendiri menggunakan kunci pribadi yang Anda buat pada langkah sebelumnya. Ini adalah perintah interaktif. Baca petunjuk di layar dan ikuti prompt-nya. Ganti SelfSignedCA.key dengan nama file yang berisi kunci pribadi Anda (jika berbeda). Anda dapat mengganti secara opsional SelfSignedCA.crt dengan nama file yang berisi sertifikat yang ditandatangani sendiri.

    openssl req -new -x509 -days 365 -key SelfSignedCA.key -out SelfSignedCA.crt Enter pass phrase for SelfSignedCA.key: You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]: State or Province Name (full name) [Some-State]: Locality Name (eg, city) []: Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []: Common Name (e.g. server FQDN or YOUR name) []: Email Address []:
Untuk menggunakan sertifikat yang ditandatangani sendiri untuk menandatangani server web Anda CSR
  • Gunakan SSL perintah Buka berikut untuk menggunakan kunci pribadi dan sertifikat yang ditandatangani sendiri untuk menandatangani. CSR Ganti yang berikut dengan nama file yang berisi data yang sesuai (jika berbeda).

    • IISCertRequest.csr — Nama file yang berisi server web Anda CSR

    • SelfSignedCA.crt — Nama file yang berisi sertifikat yang ditandatangani sendiri

    • SelfSignedCA.key — Nama file yang berisi kunci pribadi Anda

    • IISCert.crt — Nama file yang berisi sertifikat yang ditandatangani server web Anda

    openssl x509 -req -days 365 -in IISCertRequest.csr \ -CA SelfSignedCA.crt \ -CAkey SelfSignedCA.key \ -CAcreateserial \ -out IISCert.crt Signature ok subject=/ST=IIS-HSM/L=IIS-HSM/OU=IIS-HSM/O=IIS-HSM/CN=IIS-HSM/C=IIS-HSM Getting CA Private Key Enter pass phrase for SelfSignedCA.key:

Setelah Anda menyelesaikan langkah sebelumnya, Anda memiliki sertifikat yang ditandatangani untuk server web Anda (IISCert.crt) dan sertifikat yang ditandatangani sendiri (SelfSignedCA.crt). Bila Anda memiliki file-file ini, buka Langkah 3: Konfigurasikan server web.

Langkah 3: Konfigurasikan server web

Perbarui konfigurasi IIS situs web Anda untuk menggunakan HTTPS sertifikat yang Anda buat di akhir langkah sebelumnya. Ini akan menyelesaikan pengaturan perangkat lunak server web Windows Anda (IIS) SSL TLS untuk/offload dengan AWS CloudHSM.

Jika Anda menggunakan sertifikat yang ditandatangani sendiri untuk menandatanganiCSR, Anda harus terlebih dahulu mengimpor sertifikat yang ditandatangani sendiri ke Otoritas Sertifikasi Root Tepercaya Windows.

Untuk mengimpor sertifikat ditandatangani sendiri ke Otoritas Sertifikasi Tepercaya Windows
  1. Jika Anda belum melakukannya, hubungkan ke server Windows server Anda. Untuk informasi selengkapnya, lihat Connect to Your Instance di Panduan EC2 Pengguna Amazon.

  2. Salin sertifikat yang ditandatangani sendiri ke server Windows Anda.

  3. Pada Windows Server, buka Panel Kontrol.

  4. Untuk Cari Panel Kontrol, ketik certificates. Kemudian, pilih Kelola sertifikat komputer.

  5. Di jendela Sertifikat - Komputer Lokal, klik dua kali Otoritas Sertifikasi Root Tepercaya.

  6. Klik kanan pada Sertifikat lalu pilih Semua Tugas, Impor.

  7. Di Wizzard Impor Sertifikat, Pilih Selanjutnya.

  8. Pilih Jelajahi, lalu cari dan pilih sertifikat yang Anda tandatangani sendiri. Jika Anda membuat sertifikat yang ditandatangani sendiri dengan mengikuti petunjuk di langkah sebelumnya dari tutorial ini, sertifikat yang Anda tandatangani sendiri diberi nama SelfSignedCA.crt. Pilih Buka .

  9. Pilih Selanjutnya.

  10. Untuk Penyimpanan Sertifikat, pilih Tempatkan semua sertifikat di penyimpanan berikut. Kemudian, pastikan bahwa Otoritas Sertifikasi Root Tepercaya dipilih untuk Penyimpanan sertifikat.

  11. Pilih Selanjutnua dan kemudian pilih Selesai.

Untuk memperbarui konfigurasi IIS situs web
  1. Jika Anda belum melakukannya, hubungkan ke server Windows server Anda. Untuk informasi selengkapnya, lihat Connect to Your Instance di Panduan EC2 Pengguna Amazon.

  2. Mulai daemon AWS CloudHSM klien.

  3. Salin sertifikat yang ditandatangani oleh server web Anda—sertifikat yang Anda buat di akhir langkah sebelumnya tutorial ini —ke server Windows Anda.

  4. Pada Windows Server, gunakan perintah certreq Windows untuk menerima sertifikat yang ditandatangani, seperti dalam contoh berikut. Ganti IISCert.crt dengan nama file yang berisi sertifikat yang ditandatangani server web Anda.

    C:\>certreq -accept IISCert.crt SDK Version: 2.03
  5. Pada server Windows Anda, mulai Manager Server.

  6. Di dasbor Server Manager, di sudut kanan atas, pilih Tools, Internet Information Services (IIS) Manager.

  7. Di jendela Internet Information Services (IIS) Manager, klik dua kali nama server Anda. Kemudian, klik dua kali Situs. Pilih situs web Anda.

  8. Pilih SSLPengaturan. Lalu, di sisi kanan jendela, pilih Ikatan.

  9. Di jendela Ikatan Situs, pilih Tambahkan.

  10. Untuk Jenis, pilih HTTPS. Untuk SSLsertifikat, pilih HTTPS sertifikat yang Anda buat di akhir langkah tutorial ini sebelumnya.

    catatan

    Jika Anda mengalami kesalahan selama pengikatan sertifikat ini, mulai ulang server Anda dan coba lagi langkah ini.

  11. Pilih OK.

Setelah memperbarui konfigurasi server web, buka Langkah 4: Aktifkan HTTPS lalu lintas dan verifikasi sertifikat.

Langkah 4: Aktifkan HTTPS lalu lintas dan verifikasi sertifikat

Setelah Anda mengonfigurasi server web untukSSL/TLSoffload dengan AWS CloudHSM, tambahkan instance server web Anda ke grup keamanan yang memungkinkan lalu lintas masukHTTPS. Ini memungkinkan klien, seperti browser web, untuk membuat HTTPS koneksi dengan server web Anda. Kemudian buat HTTPS koneksi ke server web Anda dan verifikasi bahwa itu menggunakan sertifikat yang Anda konfigurasikan untukSSL/TLSoffload dengan AWS CloudHSM.

Aktifkan koneksi masuk HTTPS

Untuk terhubung ke server web Anda dari klien (seperti browser web), buat grup keamanan yang memungkinkan HTTPS koneksi masuk. Secara khusus, itu harus memungkinkan TCP koneksi masuk pada port 443. Tetapkan grup keamanan ini ke server web Anda.

Untuk membuat grup keamanan untuk HTTPS dan menetapkannya ke server web Anda
  1. Buka EC2 konsol Amazon di https://console.aws.amazon.com/ec2/.

  2. Pilih Grup keamanan di panel navigasi.

  3. Pilih Buat grup keamanan.

  4. Untuk Buat Grup Keamanan, lakukan hal berikut:

    1. Untuk Nama grup keamanan, ketik nama untuk grup keamanan yang Anda buat.

    2. (Opsional) Ketik deskripsi grup keamanan yang Anda buat.

    3. Untuk VPC, pilih VPC yang berisi EC2 instance Amazon server web Anda.

    4. Pilih Tambahkan Aturan.

    5. Untuk Type, pilih HTTPSdari jendela drop-down.

    6. Untuk Sumber, masukkan lokasi sumber.

    7. Pilih Buat grup keamanan.

  5. Di panel navigasi, pilih Instans.

  6. Pilih kotak centang di samping instans server web Anda.

  7. Pilih menu tarik-turun Tindakan di bagian atas halaman. Pilih Keamanan dan kemudian Ubah Grup Keamanan.

  8. Untuk grup keamanan terkait, pilih kotak pencarian dan pilih grup keamanan yang Anda buatHTTPS. Kemudian pilih Tambahkan Grup Keamanan.

  9. Pilih Simpan.

Verifikasi bahwa HTTPS menggunakan sertifikat yang Anda konfigurasikan

Setelah menambahkan server web ke grup keamanan, Anda dapat memverifikasi bahwaSSL/TLSoffload menggunakan sertifikat yang ditandatangani sendiri. Anda dapat melakukan ini dengan browser web atau dengan alat seperti Buka SSL s_client.

Untuk SSL TLS memverifikasi/membongkar dengan browser web
  1. Gunakan browser web untuk terhubung ke server web Anda menggunakan DNS nama publik atau alamat IP server. Pastikan bahwa URL di bilah alamat dimulai dengan https://. Misalnya, https://ec2-52-14-212-67.us-east-2.compute.amazonaws.com/.

    Tip

    Anda dapat menggunakan DNS layanan seperti Amazon Route 53 untuk merutekan nama domain situs web Anda (misalnya, https://www.example.com/) ke server web Anda. Untuk informasi selengkapnya, lihat Merutekan Lalu Lintas ke EC2 Instans Amazon di Panduan Pengembang Amazon Route 53 atau di dokumentasi untuk DNS layanan Anda.

  2. Gunakan peramban web Anda untuk melihat sertifikat server web. Untuk informasi lebih lanjut, lihat hal berikut:

    Peramban web lain mungkin memiliki fitur serupa yang dapat Anda gunakan untuk melihat sertifikat server web.

  3. Pastikan bahwa SSL TLS sertifikat/adalah salah satu yang Anda konfigurasi server web Anda untuk digunakan.

Untuk SSL TLS memverifikasi/membongkar dengan Open SSL s_client
  1. Jalankan SSL perintah Open berikut untuk terhubung ke server web Anda menggunakanHTTPS. Ganti <server name> dengan DNS nama publik atau alamat IP server web Anda.

    openssl s_client -connect <server name>:443
    Tip

    Anda dapat menggunakan DNS layanan seperti Amazon Route 53 untuk merutekan nama domain situs web Anda (misalnya, https://www.example.com/) ke server web Anda. Untuk informasi selengkapnya, lihat Merutekan Lalu Lintas ke EC2 Instans Amazon di Panduan Pengembang Amazon Route 53 atau di dokumentasi untuk DNS layanan Anda.

  2. Pastikan bahwa SSL TLS sertifikat/adalah salah satu yang Anda konfigurasi server web Anda untuk digunakan.

Anda sekarang memiliki situs web yang diamankan. HTTPS Kunci pribadi untuk server web disimpan di HSM dalam AWS CloudHSM cluster Anda.

Untuk menambahkan penyeimbang beban, lihatTambahkan penyeimbang beban dengan Elastic Load Balancing AWS CloudHSM untuk (opsional).