View a markdown version of this page

AWS CloudHSM SSL/TLS bongkar muat di Linux menggunakan NGINX atau HAProxy dengan Penyedia OpenSSL - 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/TLS bongkar muat di Linux menggunakan NGINX atau HAProxy dengan Penyedia OpenSSL

Topik ini memberikan petunjuk langkah demi langkah untuk mengatur off SSL/TLS load identitas server dengan AWS CloudHSM pada server web Linux menggunakan NGINX atau HAProxy dengan Penyedia OpenSSL.

Gambaran umum

Di Linux, perangkat lunak server web NGINX dan HAProxy terintegrasi dengan OpenSSL untuk mendukung HTTPS. Penye AWS CloudHSM dia OpenSSL menyediakan antarmuka yang memungkinkan perangkat lunak server web untuk menggunakan HSM di cluster Anda untuk offloading kriptografi dan penyimpanan kunci. Penyedia OpenSSL adalah jembatan yang menghubungkan server web ke AWS CloudHSM cluster Anda.

Untuk menyelesaikan tutorial ini, Anda akan mengkonfigurasi NGINX atau HAProxy untuk menggunakan Penyedia OpenSSL. AWS CloudHSM Tutorial ini menunjukkan cara melakukan hal berikut:

  • Instal perangkat lunak server web pada instans Amazon EC2.

  • Atur konfigurasi perangkat lunak server web untuk mendukung HTTPS dengan kunci privat yang tersimpan di klaster AWS CloudHSM .

  • (Opsional) Gunakan Amazon EC2 untuk membuat instans 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

Platform yang berbeda memerlukan prasyarat yang berbeda. Gunakan bagian prasyarat di bawah ini yang sesuai dengan platform Anda.

Prasyarat untuk AWS CloudHSM Penyedia OpenSSL

Untuk mengatur offload identitas SSL/TLS server web dengan Penyedia AWS CloudHSM OpenSSL untuk Client SDK 5, Anda memerlukan yang berikut ini:

  • AWS CloudHSM Cluster aktif dengan setidaknya dua modul keamanan perangkat keras (HSM)

    catatan

    Anda dapat menggunakan satu HSM klaster, tetapi Anda harus terlebih dahulu menonaktifkan daya tahan kunci klien. Untuk informasi selengkapnya, lihat Kelola Pengaturan Daya Tahan Kunci Klien dan Alat Konfigurasi Klien SDK 5.

  • Instans Amazon EC2 menjalankan sistem operasi Linux dengan perangkat lunak berikut diinstal:

    • Server web (baik NGINX atau HAProxy)

    • Penye AWS CloudHSM dia OpenSSL untuk SDK Klien 5

  • Pengguna kripto (CU) harus memiliki dan mengelola kunci privat server web pada HSM.

Untuk mengatur sebuah instans server web Linux dan membuat CU pada HSM
catatan

Banyak perintah dalam prosedur ini memerlukan hak istimewa yang lebih tinggi. Anda mungkin perlu menjalankan perintah dengan sudo atau sebagai pengguna root tergantung pada konfigurasi sistem Anda.

  1. Instal dan konfigurasikan Penye AWS CloudHSM dia OpenSSL untuk Client SDK 5. Untuk informasi selengkapnya tentang menginstal Penyedia OpenSSL, lihat Penyedia AWS CloudHSM OpenSSL untuk Klien SDK 5.

  2. Pada instance EC2 Linux yang memiliki akses ke cluster Anda, instal server web NGINX atau HAProxy:

    Amazon Linux 2023
    • NGINX

      $ yum install nginx
    • HAProxy

      $ yum install haproxy
    RHEL 9 (9.2+)
    • NGINX

      $ yum install nginx
    • HAProxy

      $ yum install haproxy
    RHEL 10 (10.0+)
    • NGINX

      $ yum install nginx
    • HAProxy

      $ yum install haproxy
    Ubuntu 26.04 LTS
    • NGINX

      $ apt install nginx
    • HAProxy

      $ apt install haproxy
  3. Gunakan CloudHSM CLI untuk membuat pengguna kripto. Pengguna kripto (CU) Untuk informasi selengkapnya tentang mengelola pengguna HSM, lihat M engelola pengguna HSM dengan CloudHSM CLI.

    Tip

    Lacak nama pengguna dan kata sandi CU. Anda akan membutuhkannya nanti ketika Anda membuat atau mengimpor kunci privat HTTPS dan sertifikat untuk server web Anda.

Setelah Anda menyelesaikan langkah ini, buka Langkah 2: Hasilkan atau impor kunci pribadi dan dapatkan sertifikat.

Catatan

  • Untuk menggunakan Security-Enhanced Linux (SELinux) dan server web, Anda harus mengizinkan koneksi TCP keluar pada port 2223, yang merupakan port yang digunakan Client SDK 5 untuk berkomunikasi dengan HSM.

  • Untuk membuat dan mengaktifkan klaster dan memberikan akses instans EC2 ke klaster, selesaikan langkah-langkah dalam Memulai dengan AWS CloudHSM. Cara memulai menawarkan instruksi langkah demi langkah untuk membuat cluster aktif dengan satu HSM dan instans klien Amazon EC2. Anda dapat menggunakan instans klien ini sebagai server web Anda.

  • Untuk menghindari menonaktifkan daya tahan kunci klien, tambahkan lebih dari satu HSM ke klaster Anda. Untuk informasi lebih lanjut, lihat Menambahkan HSM ke AWS CloudHSM klaster.

  • Untuk terhubung ke instans klien Anda, Anda dapat menggunakan SSH atau PuTTY. Untuk informasi selengkapnya, lihat.Menghubungkan ke Instans Linux Anda Menggunakan SSH atau Menyambung ke Instans Linux Anda dari Windows Menggunakan PuTTY dalam dokumentasi Amazon EC2.

Langkah 2: Hasilkan atau impor kunci pribadi dan dapatkan sertifikat

Untuk mengaktifkan HTTPS, aplikasi server web Anda (NGINX atau HAProxy) memerlukan kunci pribadi dan sertifikat yang sesuai. SSL/TLS Untuk menggunakan offload identitas SSL/TLS server server web dengan AWS CloudHSM, Anda harus menyimpan kunci pribadi di HSM di cluster Anda AWS CloudHSM . Pertama-tama Anda akan menghasilkan kunci pribadi dan menggunakan kunci tersebut untuk membuat permintaan penandatanganan sertifikat (CSR). Anda kemudian mengekspor kunci pribadi PEM palsu dari HSM, yang merupakan file kunci pribadi dalam format PEM yang berisi referensi ke kunci pribadi yang disimpan di HSM (ini bukan kunci pribadi yang sebenarnya). Server web Anda menggunakan file kunci pribadi PEM palsu untuk mengidentifikasi kunci pribadi pada HSM selama pembongkaran identitas SSL/TLS server.

Menghasilkan kunci pribadi

Bagian ini menunjukkan cara menghasilkan keypair menggunakan CloudHSM CLI. Setelah Anda memiliki pasangan kunci yang dihasilkan di dalam HSM, Anda dapat mengekspornya sebagai file PEM palsu dan menghasilkan sertifikat yang sesuai.

Instal dan konfigurasikan CloudHSM CLI
  1. Instal dan Konfigur asikan CloudHSM CLI.

  2. Gunakan perintah berikut untuk memulai CloudHSM CLI.

    $ /opt/cloudhsm/bin/cloudhsm-cli interactive
  3. Jalankan perintah berikut untuk masuk ke HSM. Ganti <user name> dengan nama pengguna pengguna kripto-pengguna Anda

    aws-cloudhsm>login --username <user name> --role crypto-user

Menghasilkan Kunci Pribadi

Tergantung pada kasus penggunaan Anda, Anda dapat menghasilkan pasangan kunci RSA atau EC. Anda juga dapat menghasilkan Ed25519 atau pasangan ML-DSA kunci untuk digunakan dengan TLS 1.3. Lakukan salah satu tindakan berikut:

  • Untuk menghasilkan kunci pribadi RSA pada HSM

    Gunakan key generate-asymmetric-pair rsa perintah untuk menghasilkan pasangan kunci RSA. Contoh ini menghasilkan pasangan kunci RSA dengan modulus 2048, eksponen publik 65537, label kunci publiktls_rsa_pub, dan label kunci pribadi dari. tls_rsa_private

    aws-cloudhsm > key generate-asymmetric-pair rsa \ --public-exponent 65537 \ --modulus-size-bits 2048 \ --public-label tls_rsa_pub \ --private-label tls_rsa_private \ --private-attributes sign=true { "error_code": 0, "data": { "public_key": { "key-reference": "0x0000000000280cc8", "key-info": { "key-owners": [ { "username": "cu1", "key-coverage": "full" } ], "shared-users": [], "cluster-coverage": "full" }, "attributes": { "key-type": "rsa", "label": "tls_rsa_pub", "id": "", "check-value": "0x01fe6e", "class": "public-key", "encrypt": true, "decrypt": false, "token": true, "always-sensitive": false, "derive": false, "destroyable": true, "extractable": true, "local": true, "modifiable": true, "never-extractable": false, "private": true, "sensitive": false, "sign": false, "trusted": false, "unwrap": false, "verify": false, "wrap": false, "wrap-with-trusted": false, "key-length-bytes": 512, "public-exponent": "0x010001", "modulus": "0xb1d27e857a876f4e9fd5de748a763c539b359f937eb4b4260e30d1435485a732c878cdad9c72538e2215351b1d41358c9bf80b599c73a80fdb457aa7b20cd61e486c326e2cfd5e124a7f6a996437437812b542e3caf85928aa866f0298580f7967ee6aa01440297d7308fdd9b76b70d1b67f12634df6e6296d6c116d5744c6d60d14d3bf3cb978fe6b75ac67b7089bafd50d8687213b31abc7dc1bad422780d29c851d5102b56f932551eaf52a9591fd8c43d81ecc133022653225bd129f8491101725e9ea33e1ded83fb57af35f847e532eb30cd7e726f23910d2671c6364092e834697ec3cef72cc23615a1ba7c5e100156ae0acac3160f0ca9725d38318b7", "modulus-size-bits": 2048 } }, "private_key": { "key-reference": "0x0000000000280cc7", "key-info": { "key-owners": [ { "username": "cu1", "key-coverage": "full" } ], "shared-users": [], "cluster-coverage": "full" }, "attributes": { "key-type": "rsa", "label": "tls_rsa_private", "id": "", "check-value": "0x01fe6e", "class": "private-key", "encrypt": false, "decrypt": true, "token": true, "always-sensitive": true, "derive": false, "destroyable": true, "extractable": true, "local": true, "modifiable": true, "never-extractable": false, "private": true, "sensitive": true, "sign": true, "trusted": false, "unwrap": false, "verify": false, "wrap": false, "wrap-with-trusted": false, "key-length-bytes": 1217, "public-exponent": "0x010001", "modulus": "0xb1d27e857a876f4e9fd5de748a763c539b359f937eb4b4260e30d1435485a732c878cdad9c72538e2215351b1d41358c9bf80b599c73a80fdb457aa7b20cd61e486c326e2cfd5e124a7f6a996437437812b542e3caf85928aa866f0298580f7967ee6aa01440297d7308fdd9b76b70d1b67f12634df6e6296d6c116d5744c6d60d14d3bf3cb978fe6b75ac67b7089bafd50d8687213b31abc7dc1bad422780d29c851d5102b56f932551eaf52a9591fd8c43d81ecc133022653225bd129f8491101725e9ea33e1ded83fb57af35f847e532eb30cd7e726f23910d2671c6364092e834697ec3cef72cc23615a1ba7c5e100156ae0acac3160f0ca9725d38318b7", "modulus-size-bits": 2048 } } } }
  • Untuk menghasilkan kunci pribadi EC pada HSM

    Gunakan key generate-asymmetric-pair ec perintah untuk menghasilkan pasangan kunci EC. Contoh ini menghasilkan pasangan kunci EC dengan prime256v1 kurva (sesuai dengan NID_X9_62_prime256v1 kurva), label kunci publiktls_ec_pub, dan label kunci pribadi daritls_ec_private.

    aws-cloudhsm > key generate-asymmetric-pair ec \ --curve prime256v1 \ --public-label tls_ec_pub \ --private-label tls_ec_private \ --private-attributes sign=true { "error_code": 0, "data": { "public_key": { "key-reference": "0x000000000012000b", "key-info": { "key-owners": [ { "username": "cu1", "key-coverage": "full" } ], "shared-users": [], "cluster-coverage": "session" }, "attributes": { "key-type": "ec", "label": "tls_ec_pub", "id": "", "check-value": "0xd7c1a7", "class": "public-key", "encrypt": false, "decrypt": false, "token": false, "always-sensitive": false, "derive": false, "destroyable": true, "extractable": true, "local": true, "modifiable": true, "never-extractable": false, "private": true, "sensitive": false, "sign": false, "trusted": false, "unwrap": false, "verify": false, "wrap": false, "wrap-with-trusted": false, "key-length-bytes": 57, "ec-point": "0x047096513df542250a6b228fd9cb67fd0c903abc93488467681974d6f371083fce1d79da8ad1e9ede745fb9f38ac8622a1b3ebe9270556000c", "curve": "secp224r1" } }, "private_key": { "key-reference": "0x000000000012000c", "key-info": { "key-owners": [ { "username": "cu1", "key-coverage": "full" } ], "shared-users": [], "cluster-coverage": "session" }, "attributes": { "key-type": "ec", "label": "tls_ec_private", "id": "", "check-value": "0xd7c1a7", "class": "private-key", "encrypt": false, "decrypt": false, "token": false, "always-sensitive": true, "derive": false, "destroyable": true, "extractable": true, "local": true, "modifiable": true, "never-extractable": false, "private": true, "sensitive": true, "sign": true, "trusted": false, "unwrap": false, "verify": false, "wrap": false, "wrap-with-trusted": false, "key-length-bytes": 122, "ec-point": "0x047096513df542250a6b228fd9cb67fd0c903abc93488467681974d6f371083fce1d79da8ad1e9ede745fb9f38ac8622a1b3ebe9270556000c", "curve": "secp224r1" } } } }
  • Untuk menghasilkan kunci pribadi Ed25519 pada HSM

    Ketersediaan Ed25519

    Ed25519 hanya tersedia di cluster non-FIPS. Ed25519 hanya mendukung TLS 1.3.

    Gunakan key generate-asymmetric-pair ec perintah untuk menghasilkan pasangan kunci Ed25519. Contoh ini menghasilkan pasangan kunci Ed25519 dengan label kunci publik tls_ed25519_pub dan label kunci pribadi. tls_ed25519_private

    aws-cloudhsm > key generate-asymmetric-pair ec \ --curve ed25519 \ --public-label tls_ed25519_pub \ --private-label tls_ed25519_private \ --private-attributes sign=true \ --public-attributes verify=true { "error_code": 0, "data": { "public_key": { "key-reference": "0x0000000000383931", "key-info": { "key-owners": [ { "username": "cu1", "key-coverage": "full" } ], "shared-users": [], "key-quorum-values": { "manage-key-quorum-value": 0, "use-key-quorum-value": 0 }, "cluster-coverage": "full" }, "attributes": { "key-type": "ec", "label": "tls_ed25519_pub", "id": "0x", "check-value": "0x4cb1b1", "class": "public-key", "encrypt": false, "decrypt": false, "token": true, "always-sensitive": false, "derive": false, "destroyable": true, "extractable": true, "local": true, "modifiable": true, "never-extractable": false, "private": true, "sensitive": false, "sign": false, "trusted": false, "unwrap": false, "verify": true, "wrap": false, "wrap-with-trusted": false, "key-length-bytes": 32, "ec-point": "0x302a300506032b6570032100c31f8a3695f571dda1658bc98e0591ab088c1a657b3199dd50c3956046ebbe75", "curve": "ed25519" } }, "private_key": { "key-reference": "0x0000000000382e60", "key-info": { "key-owners": [ { "username": "cu1", "key-coverage": "full" } ], "shared-users": [], "key-quorum-values": { "manage-key-quorum-value": 0, "use-key-quorum-value": 0 }, "cluster-coverage": "full" }, "attributes": { "key-type": "ec", "label": "tls_ed25519_private", "id": "0x", "check-value": "0x4cb1b1", "class": "private-key", "encrypt": false, "decrypt": false, "token": true, "always-sensitive": true, "derive": false, "destroyable": true, "extractable": true, "local": true, "modifiable": true, "never-extractable": false, "private": true, "sensitive": true, "sign": true, "trusted": false, "unwrap": false, "verify": false, "wrap": false, "wrap-with-trusted": false, "key-length-bytes": 48, "ec-point": "0x302a300506032b6570032100c31f8a3695f571dda1658bc98e0591ab088c1a657b3199dd50c3956046ebbe75", "curve": "ed25519" } } } }
  • Untuk menghasilkan kunci ML-DSA pribadi pada HSM

    ML-DSA ketersediaan dan persyaratan

    ML-DSA hanya tersedia pada cluster non-FIPS dan memerlukan OpenSSL 3.5 atau yang lebih baru untuk pembuatan CSR, pembuatan sertifikat, dan pemindahan TLS. ML-DSA mendukung TLS 1.3 saja.

    Untuk off ML-DSA load TLS di platform Amazon Linux 2023 dan RHEL, Anda mungkin perlu mengaktifkan sub-kebijakan kripto pasca-kuantum (PQ). Untuk informasi selengkapnya, lihat Masalah: J ML-DSA abat tangan TLS gagal di Amazon Linux 2023 dan RHEL dengan “tidak ada algoritma tanda tangan bersama”.

    Gunakan key generate-asymmetric-pair ml-dsa perintah untuk menghasilkan pasangan ML-DSA kunci. Contoh ini menghasilkan pasangan ML-DSA-44 kunci dengan label kunci publik tls_mldsa44_pub dan label kunci pribadi daritls_mldsa44_private. Anda juga dapat menggunakan ML-DSA-65 atau ML-DSA-87 untuk tingkat keamanan yang lebih tinggi.

    aws-cloudhsm > key generate-asymmetric-pair ml-dsa \ --mldsa-algorithm ML-DSA-44 \ --public-label tls_mldsa44_pub \ --private-label tls_mldsa44_private \ --private-attributes sign=true \ --public-attributes verify=true { "error_code": 0, "data": { "public_key": { "key-reference": "0x0000000000280cd2", "key-info": { "key-owners": [ { "username": "cu1", "key-coverage": "full" } ], "shared-users": [], "cluster-coverage": "full" }, "attributes": { "key-type": "ml-dsa", "label": "tls_mldsa44_pub", "id": "", "check-value": "0xd4e5f6", "class": "public-key", "encrypt": false, "decrypt": false, "token": true, "always-sensitive": false, "derive": false, "destroyable": true, "extractable": true, "local": true, "modifiable": true, "never-extractable": false, "private": true, "sensitive": false, "sign": false, "trusted": false, "unwrap": false, "verify": true, "wrap": false, "wrap-with-trusted": false, "key-length-bytes": 1312, "mldsa-algorithm": "ML-DSA-44" } }, "private_key": { "key-reference": "0x0000000000280cd3", "key-info": { "key-owners": [ { "username": "cu1", "key-coverage": "full" } ], "shared-users": [], "cluster-coverage": "full" }, "attributes": { "key-type": "ml-dsa", "label": "tls_mldsa44_private", "id": "", "check-value": "0xd4e5f6", "class": "private-key", "encrypt": false, "decrypt": false, "token": true, "always-sensitive": true, "derive": false, "destroyable": true, "extractable": true, "local": true, "modifiable": true, "never-extractable": false, "private": true, "sensitive": true, "sign": true, "trusted": false, "unwrap": false, "verify": false, "wrap": false, "wrap-with-trusted": false, "key-length-bytes": 2560, "mldsa-algorithm": "ML-DSA-44" } } } }

Ekspor file kunci pribadi PEM palsu

Setelah Anda memiliki kunci pribadi di HSM, Anda harus mengekspor file kunci pribadi PEM palsu. File ini tidak berisi data kunci aktual, tetapi memungkinkan Penyedia OpenSSL untuk mengidentifikasi kunci pribadi pada HSM. Anda kemudian dapat menggunakan kunci pribadi untuk membuat permintaan penandatanganan sertifikat (CSR) dan menandatangani CSR untuk membuat sertifikat.

Gunakan key generate-file perintah untuk mengekspor kunci pribadi dalam format PEM palsu dan menyimpannya ke file. Ganti nilai berikut dengan nilai Anda sendiri:

  • <private_key_label>— Label kunci pribadi yang Anda buat pada langkah sebelumnya.

  • <web_server_fake_pem.key>— Nama file tempat kunci PEM palsu Anda akan ditulis.

Untuk kunci RSA dan EC

Gunakan peng reference-pem kodean:

aws-cloudhsm > key generate-file --encoding reference-pem --path <web_server_fake_pem.key> --filter attr.label=<private_key_label> { "error_code": 0, "data": { "message": "Successfully generated key file" } }
Untuk Ed25519 dan kunci ML-DSA

Gunakan peng cloudhsm-reference-pem kodean:

aws-cloudhsm > key generate-file --encoding cloudhsm-reference-pem --path <web_server_fake_pem.key> --filter attr.label=<private_key_label> { "error_code": 0, "data": { "message": "Successfully generated key file" } }

Keluar dari CloudHSM CLI

Jalankan perintah berikut untuk menghentikan CloudHSM CLI.

aws-cloudhsm > quit

Anda sekarang harus memiliki file baru di sistem Anda, terletak di jalur yang ditentukan oleh <web_server_fake_pem.key> dalam perintah sebelumnya. File ini adalah file kunci pribadi PEM palsu.

Buat sertifikat yang ditandatangani sendiri

Setelah Anda membuat kunci pribadi PEM palsu, Anda dapat menggunakan file ini untuk menghasilkan permintaan penandatanganan sertifikat (CSR) dan sertifikat.

Di lingkungan produksi, Anda biasanya menggunakan sertifikat otoritas (CA) untuk membuat sertifikat dari CSR. CA tidak diperlukan untuk lingkungan pengujian. Jika Anda menggunakan CA, kirim file CSR kepada mereka dan gunakan SSL/TLS sertifikat yang ditandatangani yang mereka berikan kepada Anda di server web Anda untuk HTTPS.

Sebagai alternatif untuk menggunakan CA, Anda dapat menggunakan Penyedia AWS CloudHSM OpenSSL untuk membuat sertifikat yang ditandatangani sendiri. Self-signed sertifikat tidak dipercaya oleh browser dan tidak boleh digunakan di lingkungan produksi. Sertifikat dapat digunakan dalam lingkungan pengujian.

Awas

Self-signed sertifikat harus digunakan di lingkungan pengujian saja. Untuk lingkungan produksi, gunakan metode yang lebih aman seperti otoritas sertifikat untuk membuat sertifikat.

Instal dan konfigurasikan Penyedia OpenSSL
  1. Hubungkan ke instans klien Anda.

  2. Instal Penyedia OpenSSL untuk AWS CloudHSM SDK Klien 5

Menghasilkan sertifikat
  1. Dapatkan salinan file PEM palsu Anda yang dihasilkan pada langkah sebelumnya.

  2. Buat CSR

    Jalankan perintah berikut untuk menggunakan Penyedia AWS CloudHSM OpenSSL untuk membuat permintaan penandatanganan sertifikat (CSR). Ganti <web_server_fake_pem.key> dengan nama file yang berisi kunci pribadi PEM palsu Anda. Ganti <web_server.csr> dengan nama file yang berisi CSR Anda.

    Perintah req bersifat interaktif. Tanggapi setiap bidang. Informasi bidang disalin ke SSL/TLS sertifikat Anda.

    ML-DSA Persyaratan versi OpenSSL

    ML-DSA membutuhkan OpenSSL 3.5 atau yang lebih baru. Pada platform dengan sistem OpenSSL yang lebih lama, Anda harus menggunakan biner OpenSSL 3.5+ yang dibuat khusus.

    Algoritma Digest diperlukan untuk kunci RSA dan EC

    Untuk kunci RSA dan EC, Anda harus menentukan algoritma ringkasan (misalnya,-sha256). Ed25519 dan tidak ML-DSA memerlukan flag intisari.

    $ openssl req -provider cloudhsm -provider default -new -sha256 -key <web_server_fake_pem.key> -out <web_server.csr>
  3. Buat sertifikat yang ditandatangani sendiri

    Jalankan perintah berikut untuk menggunakan Penyedia AWS CloudHSM OpenSSL untuk menandatangani CSR Anda dengan kunci pribadi Anda di HSM Anda. Ini membuat sertifikat yang ditandatangani sendiri. Ganti nilai berikut dalam perintah dengan nilai Anda sendiri.

    • <web_server.csr>— Nama file yang berisi CSR.

    • <web_server_fake_pem.key>— Nama file yang berisi kunci pribadi PEM palsu.

    • <web_server.crt>— Nama file yang akan berisi sertifikat server web Anda.

    $ openssl x509 -provider cloudhsm -provider default -req -sha256 -days 365 -in <web_server.csr> -signkey <web_server_fake_pem.key> -out <web_server.crt>

Setelah Anda memiliki kunci pribadi dan sertifikat, bukaLangkah 3: Konfigurasikan server web.

Langkah 3: Konfigurasikan server web

Perbarui konfigurasi perangkat lunak server web Anda untuk menggunakan sertifikat HTTPS dan kunci privat PEM palsu yang Anda buat di langkah sebelumnya. Ingatlah untuk mencadangkan sertifikat dan kunci yang sudah ada sebelum memulai. Ini akan menyelesaikan pengaturan perangkat lunak server web Linux Anda untuk offload identitas SSL/TLS server. AWS CloudHSM

Menyelesaikan langkah-langkah dari salah satu bagian berikut.

Konfigurasikan server web NGINX

Gunakan bagian ini untuk mengkonfigurasi NGINX dengan Penyedia OpenSSL.

Untuk mengkonfigurasi NGINX untuk Penyedia OpenSSL
  1. Hubungkan ke instans klien Anda.

  2. Jalankan perintah berikut untuk membuat direktori yang diperlukan untuk sertifikat server web dan kunci privat PEM palsu.

    $ mkdir -p /etc/pki/nginx/private
  3. Jalankan perintah berikut untuk menyalin sertifikat server web Anda ke lokasi yang diperlukan. Ganti <web_server.crt> dengan nama sertifikat server web Anda.

    $ cp <web_server.crt> /etc/pki/nginx/server.crt
  4. Jalankan perintah berikut untuk menyalin kunci privat PEM palsu Anda ke lokasi yang diperlukan. Ganti <web_server_fake_pem.key> dengan nama file yang berisi kunci pribadi PEM palsu Anda.

    $ cp <web_server_fake_pem.key> /etc/pki/nginx/private/server.key
  5. Jalankan perintah berikut untuk mengubah kepemilikan file sehingga pengguna bernamanginx dapat membacanya.

    $ chown nginx /etc/pki/nginx/server.crt /etc/pki/nginx/private/server.key
  6. Konfigurasikan OpenSSL untuk menggunakan AWS CloudHSM penyedia. Untuk informasi selengkapnya tentang mengonfigurasi Penyedia OpenSSL, lihat Penye AWS CloudHSM dia OpenSSL untuk Klien SDK 5.

    1. Temukan file konfigurasi OpenSSL Anda:

      $ openssl version -d

      Anda akan melihat output yang mirip dengan:

      OPENSSLDIR: "/etc/pki/tls"

      File konfigurasi ada openssl.cnf di direktori ini.

    2. catatan

      Jangan memodifikasi file openssl.cnf default sistem Anda secara langsung. Ini mencegah operasi OpenSSL di seluruh sistem (SSH, koneksi TLS, dan layanan lainnya) dari routing secara tidak sengaja melalui penyedia CloudHSM.

      Menggunakan file konfigurasi terpisah memungkinkan Anda untuk menjangkau penggunaan Penyedia CloudHSM hanya untuk aplikasi tertentu yang memerlukan operasi HSM-backed kriptografi.

      Buat file konfigurasi OpenSSL baru dengan konten berikut:

      $ cat > <example-cloudhsm-openssl.cnf> << 'EOF' ## NOTE: This should point to the system default openssl config file. # Replace /etc/pki/tls with the path to your OpenSSL configuration directory .include </etc/pki/tls>/openssl.cnf # Override the existing provider_section to include AWS CloudHSM OpenSSL Provider as a 3rd party OpenSSL provider [provider_sect] default = default_sect # Include AWS CloudHSM CloudHSM OpenSSL provider cloudhsm = cloudhsm_sect [default_sect] activate = 1 [cloudhsm_sect] activate = 1 EOF
    3. Pastikan variabel CLOUDHSM_PIN lingkungan diatur dengan kredensional pengguna kripto (CU) Anda:

      $ export CLOUDHSM_PIN=<username>:<password>
    4. Setel variabel OPENSSL_CONF lingkungan untuk menunjuk ke file konfigurasi yang diperbarui dan verifikasi penyedia dimuat:

      $ OPENSSL_CONF=/path/to/example-cloudhsm-openssl.cnf openssl list -providers

      Anda akan melihat penyedia default dan penyedia CloudHSM terdaftar:

      OPENSSL_CONF=/path/to/example-cloudhsm-openssl.cnf openssl list -providers Providers: default name: OpenSSL Default Provider version: 3.2.2 status: active cloudhsm name: AWS CloudHSM OpenSSL Provider version: 5.17.0 status: active
  7. Jalankan perintah berikut untuk mencadangkan file /etc/nginx/nginx.conf.

    $ cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup
  8. Perbarui konfigurasi NGINX.

    catatan

    Setiap klaster dapat mendukung maksimum 1000 proses pekerja NGINX di semua server web NGINX.

    Amazon Linux 2023

    Gunakan editor teks untuk mengedit file /etc/nginx/nginx.conf. Ini mungkin memerlukan izin root Linux. Di bagian atas file, tambahkan baris berikut:

    env CLOUDHSM_PIN; env OPENSSL_CONF;

    Kemudian tambahkan yang berikut ini ke bagian TLS dari file:

    # Settings for a TLS enabled server. server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name _; root /usr/share/nginx/html; ssl_certificate "/etc/pki/nginx/server.crt"; ssl_certificate_key "/etc/pki/nginx/private/server.key"; # It is *strongly* recommended to generate unique DH parameters for DHE ciphers # Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048 # ssl_dhparam "/etc/pki/nginx/dhparams.pem"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256"; ssl_prefer_server_ciphers off; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
    RHEL 9 (9.2+)

    Gunakan editor teks untuk mengedit file /etc/nginx/nginx.conf. Ini mungkin memerlukan izin root Linux. Di bagian atas file, tambahkan baris berikut:

    env CLOUDHSM_PIN; env OPENSSL_CONF;

    Kemudian tambahkan yang berikut ini ke bagian TLS dari file:

    # Settings for a TLS enabled server. server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name _; root /usr/share/nginx/html; ssl_certificate "/etc/pki/nginx/server.crt"; ssl_certificate_key "/etc/pki/nginx/private/server.key"; # It is *strongly* recommended to generate unique DH parameters for DHE ciphers # Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048 # ssl_dhparam "/etc/pki/nginx/dhparams.pem"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256"; ssl_prefer_server_ciphers off; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
    RHEL 10 (10.0+)

    Gunakan editor teks untuk mengedit file /etc/nginx/nginx.conf. Ini mungkin memerlukan izin root Linux. Di bagian atas file, tambahkan baris berikut:

    env CLOUDHSM_PIN; env OPENSSL_CONF;

    Kemudian tambahkan yang berikut ini ke bagian TLS dari file:

    # Settings for a TLS enabled server. server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name _; root /usr/share/nginx/html; ssl_certificate "/etc/pki/nginx/server.crt"; ssl_certificate_key "/etc/pki/nginx/private/server.key"; # It is *strongly* recommended to generate unique DH parameters for DHE ciphers # Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048 # ssl_dhparam "/etc/pki/nginx/dhparams.pem"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256"; ssl_prefer_server_ciphers off; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
    Ubuntu 26.04 LTS

    Gunakan editor teks untuk mengedit file /etc/nginx/nginx.conf. Ini mungkin memerlukan izin root Linux. Di bagian atas file, tambahkan baris berikut:

    env CLOUDHSM_PIN; env OPENSSL_CONF;

    Kemudian tambahkan yang berikut ini ke bagian TLS dari file:

    # Settings for a TLS enabled server. server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name _; root /var/www/html; ssl_certificate "/etc/ssl/certs/server.crt"; ssl_certificate_key "/etc/ssl/private/server.key"; # It is *strongly* recommended to generate unique DH parameters for DHE ciphers # Generate them with: openssl dhparam -out /etc/ssl/certs/dhparams.pem 2048 # ssl_dhparam "/etc/ssl/certs/dhparams.pem"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256"; ssl_prefer_server_ciphers off; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }

    Simpan file tersebut.

  9. Cadangkan file konfigurasi systemd, dan kemudian atur jalur EnvironmentFile.

    Amazon Linux 2023
    1. Cadangkan nginx.service file:

      $ cp /lib/systemd/system/nginx.service /lib/systemd/system/nginx.service.backup
    2. Buka /lib/systemd/system/nginx.service di editor teks. Di bawah bagian [Layanan], tambahkan:

      EnvironmentFile=/etc/sysconfig/nginx
    RHEL 9 (9.2+)
    1. Cadangkan nginx.service file:

      $ cp /lib/systemd/system/nginx.service /lib/systemd/system/nginx.service.backup
    2. Buka /lib/systemd/system/nginx.service di editor teks. Di bawah bagian [Layanan], tambahkan:

      EnvironmentFile=/etc/sysconfig/nginx
    RHEL 10 (10.0+)
    1. Cadangkan nginx.service file:

      $ cp /lib/systemd/system/nginx.service /lib/systemd/system/nginx.service.backup
    2. Buka /lib/systemd/system/nginx.service di editor teks. Di bawah bagian [Layanan], tambahkan:

      EnvironmentFile=/etc/sysconfig/nginx
    Ubuntu 26.04 LTS
    1. Cadangkan nginx.service file:

      $ cp /lib/systemd/system/nginx.service /lib/systemd/system/nginx.service.backup
    2. Buka /lib/systemd/system/nginx.service di editor teks. Di bawah bagian [Layanan], tambahkan:

      EnvironmentFile=/etc/sysconfig/nginx
  10. Periksa apakah file /etc/sysconfig/nginx ada, dan lakukan salah satu hal berikut:

    • Jika file ada, buat cadangan file dengan menjalankan perintah berikut:

      $ cp /etc/sysconfig/nginx /etc/sysconfig/nginx.backup
    • Jika file tidak ada, buka editor teks, dan kemudian membuat file bernama nginx dalam folder /etc/sysconfig/.

  11. Konfigurasikan lingkungan NGINX.

    Amazon Linux 2023

    Sebagai pengguna root Linux, buka /etc/sysconfig/nginx file di editor teks. Misalnya,

    vi /etc/sysconfig/nginx

    Tambahkan kredentif Pengguna Kriptografi (CU) dan jalur ke file konfigurasi OpenSSL Anda:

    CLOUDHSM_PIN=<CU user name>:<password> OPENSSL_CONF=<path to example-cloudhsm-openssl.cnf>

    Ganti <CU user name> dan <password> dengan kredenSIAL CU. Ganti <path to example-cloudhsm-openssl.cnf> dengan path lengkap ke file konfigurasi yang Anda buatUntuk mengkonfigurasi NGINX untuk Penyedia OpenSSL.

    Simpan file tersebut.

    RHEL 9 (9.2+)

    Buka file /etc/sysconfig/nginx di editor teks. Ini mungkin memerlukan izin root Linux. Tambahkan kredentif Pengguna Kriptografi (CU) dan jalur ke file konfigurasi OpenSSL Anda:

    CLOUDHSM_PIN=<CU user name>:<password> OPENSSL_CONF=<path to example-cloudhsm-openssl.cnf>

    Ganti <CU user name> dan <password> dengan kredenSIAL CU. Ganti <path to example-cloudhsm-openssl.cnf> dengan path lengkap ke file konfigurasi yang Anda buatUntuk mengkonfigurasi NGINX untuk Penyedia OpenSSL.

    Simpan file tersebut.

    RHEL 10 (10.0+)

    Buka file /etc/sysconfig/nginx di editor teks. Ini mungkin memerlukan izin root Linux. Tambahkan kredentif Pengguna Kriptografi (CU) dan jalur ke file konfigurasi OpenSSL Anda:

    CLOUDHSM_PIN=<CU user name>:<password> OPENSSL_CONF=<path to example-cloudhsm-openssl.cnf>

    Ganti <CU user name> dan <password> dengan kredenSIAL CU. Ganti <path to example-cloudhsm-openssl.cnf> dengan path lengkap ke file konfigurasi yang Anda buatUntuk mengkonfigurasi NGINX untuk Penyedia OpenSSL.

    Simpan file tersebut.

    Ubuntu 26.04 LTS

    Buka file /etc/sysconfig/nginx di editor teks. Ini mungkin memerlukan izin root Linux. Tambahkan kredentif Pengguna Kriptografi (CU) dan jalur ke file konfigurasi OpenSSL Anda:

    CLOUDHSM_PIN=<CU user name>:<password> OPENSSL_CONF=<path to example-cloudhsm-openssl.cnf>

    Ganti <CU user name> dan <password> dengan kredenSIAL CU. Ganti <path to example-cloudhsm-openssl.cnf> dengan path lengkap ke file konfigurasi yang Anda buatUntuk mengkonfigurasi NGINX untuk Penyedia OpenSSL.

    Simpan file tersebut.

  12. Mulai server web NGINX.

    Amazon Linux 2023

    Hentikan semua proses NGINX

    $ systemctl stop nginx

    Muat ulang systemd konfigurasi untuk mengambil perubahan terbaru

    $ systemctl daemon-reload

    Mulai NGINX

    $ systemctl start nginx
    RHEL 9 (9.2+)

    Hentikan proses NGINX yang sedang berjalan

    $ systemctl stop nginx

    Muat ulang systemd konfigurasi untuk mengambil perubahan terbaru

    $ systemctl daemon-reload

    Mulai proses NGINX

    $ systemctl start nginx
    RHEL 10 (10.0+)

    Hentikan proses NGINX yang sedang berjalan

    $ systemctl stop nginx

    Muat ulang systemd konfigurasi untuk mengambil perubahan terbaru

    $ systemctl daemon-reload

    Mulai proses NGINX

    $ systemctl start nginx
    Ubuntu 26.04 LTS

    Hentikan proses NGINX yang sedang berjalan

    $ systemctl stop nginx

    Muat ulang systemd konfigurasi untuk mengambil perubahan terbaru

    $ systemctl daemon-reload

    Mulai proses NGINX

    $ systemctl start nginx

Setelah Anda mengkonfigurasi NGINX, buka. Verifikasi bahwa HTTPS menggunakan sertifikat yang Anda konfigurasikan

Konfigurasikan server web HAProxy

Gunakan bagian ini untuk mengkonfigurasi HAProxy dengan Penyedia OpenSSL. Contoh berikut menunjukkan cara mengatur HAProxy dengan sertifikat dan kunci CloudHSM Anda.

Untuk mengkonfigurasi HAProxy untuk Penyedia OpenSSL
  1. Cadangkan file sertifikat gabungan yang ada jika ada:

    $ cp server-combined.pem server-combined.pem.backup
  2. Buat file sertifikat gabungan untuk HAProxy menggunakan sertifikat Anda dan kunci PEM palsu CloudHSM:

    $ cat server.crt server.key > server-combined.pem
  3. Cadangkan konfigurasi HAProxy yang ada:

    $ cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.backup
  4. Buat konfigurasi offload CloudHSM TLS baru di: /etc/haproxy/haproxy.cfg

    global daemon ssl-provider cloudhsm # It is *strongly* recommended to generate unique DH parameters # Generate them with: openssl dhparam -out /etc/haproxy/dhparams.pem 2048 # ssl-dh-param-file /etc/haproxy/dhparams.pem ssl-default-bind-ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305 ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256 ssl-default-bind-options ssl-min-ver TLSv1.2 no-tls-tickets defaults mode http timeout connect 5000ms timeout client 50000ms timeout server 50000ms frontend haproxy_frontend bind *:443 ssl crt /path/to/server-combined.pem default_backend web_servers backend web_servers server web1 127.0.0.1:8080 check

    Perbarui jalur sertifikat agar sesuai dengan lokasi file Anda.

  5. Konfigurasikan systemd untuk menggunakan file lingkungan untuk HAProxy. Lokasi tergantung pada distribusi Linux Anda.

    Amazon Linux and RHEL

    Cadangkan dan ubah file layanan HAProxy:

    $ cp /lib/systemd/system/haproxy.service /lib/systemd/system/haproxy.service.backup

    Edit /lib/systemd/system/haproxy.service dan tambahkan baris berikut di bawah bagian [Layanan]:

    EnvironmentFile=/etc/sysconfig/haproxy
    Ubuntu

    Cadangkan dan ubah file layanan HAProxy:

    $ cp /lib/systemd/system/haproxy.service /lib/systemd/system/haproxy.service.backup

    Edit /lib/systemd/system/haproxy.service dan tambahkan baris berikut di bawah bagian [Layanan]:

    EnvironmentFile=/etc/default/haproxy
  6. Buat file lingkungan di lokasi yang sesuai untuk sistem Anda.

    Amazon Linux and RHEL

    Cadangkan file lingkungan HAProxy jika ada:

    $ cp /etc/sysconfig/haproxy /etc/sysconfig/haproxy.backup

    Buat file lingkungan HAProxy /etc/sysconfig/haproxy dengan konten berikut:

    CLOUDHSM_PIN=<CU user name>:<password>
    Ubuntu

    Cadangkan file lingkungan HAProxy jika ada:

    $ cp /etc/default/haproxy /etc/default/haproxy.backup

    Buat file lingkungan HAProxy /etc/default/haproxy dengan konten berikut:

    CLOUDHSM_PIN=<CU user name>:<password>

    Ganti <CU user name> dan <password> dengan kredenSIAL CU Anda.

  7. Muat ulang konfigurasi systemd:

    $ systemctl daemon-reload
  8. Mulai HAProxy dengan konfigurasi offload CloudHSM TLS:

    $ systemctl start haproxy

    Anda juga dapat menjalankan HAProxy secara langsung dengan file konfigurasi khusus:

    $ haproxy -f /path/to/haproxy-cloudhsm.cfg

Setelah Anda mengkonfigurasi HAProxy, buka. Verifikasi bahwa HTTPS menggunakan sertifikat yang Anda konfigurasikan

Langkah 4: Aktifkan lalu lintas HTTPS dan verifikasi sertifikat

Setelah Anda mengonfigurasi server web Anda untuk SSL/TLS offload dengan AWS CloudHSM, tambahkan instance server web Anda ke grup keamanan yang memungkinkan lalu lintas HTTPS masuk. Hal ini memungkinkan klien, seperti peramban web, untuk membuat koneksi HTTPS dengan server web Anda. Kemudian buat koneksi HTTPS ke server web Anda dan verifikasi bahwa itu menggunakan sertifikat yang Anda konfigurasi untuk SSL/TLS offload. AWS CloudHSM

Aktifkan koneksi HTTPS masuk

Untuk menyambungkan ke server web Anda dari klien (seperti peramban web), buat grup keamanan yang mengizinkan koneksi HTTPS masuk. Secara khusus, ini harus mengizinkan koneksi TCP 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 konsol Amazon EC2 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 instans Amazon EC2 server web Anda.

    4. Pilih Tambahkan Aturan.

    5. Untuk Jenis, pilih HTTPS dari 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 tar ik -turun Tindakan di bagian atas halaman. Pilih Keamanan dan kemudian U bah Grup Keamanan.

  8. Untuk Grup keamanan terkait, pilih kotak pencarian dan pilih grup keamanan yang Anda buat untuk HTTPS. 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 bahwa SSL/TLS offload menggunakan sertifikat yang ditandatangani sendiri. Anda dapat melakukan ini dengan peramban web atau dengan alat seperti OpenSSL s_client.

Untuk memverifikasi SSL/TLS offload dengan browser web
  1. Gunakan browser web untuk terhubung ke server web Anda menggunakan nama DNS 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 layanan DNS seperti Amazon Route 53 untuk merutekan nama domain situs web Anda (misalnya,https://www.example.com/) ke server web Anda. Untuk informasi selengkapnya, lihat Perutean Lalu Lintas ke Instans Amazon EC2dalam Panduan Developer Amazon Route 53 atau dalam dokumentasi untuk layanan DNS 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 yang Anda konfigurasikan server web Anda untuk digunakan.

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

    openssl s_client -connect <server name>:443
    Tip

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

  2. Pastikan bahwa SSL/TLS sertifikat adalah yang Anda konfigurasikan server web Anda untuk digunakan.

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

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