Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
AWS CloudHSM SSL/TLS offload di Linux menggunakan NGINX atau dengan OpenSSL Provider HAProxy
Topik ini memberikan step-by-step instruksi untuk mengatur SSL/TLS pembongkaran identitas server dengan AWS CloudHSM pada server web Linux menggunakan NGINX atau dengan Penyedia HAProxy OpenSSL.
Topik
Ikhtisar
Di Linux, perangkat lunak NGINX
Untuk menyelesaikan tutorial ini, Anda akan mengkonfigurasi NGINX atau HAProxy menggunakan OpenSSL AWS CloudHSM Provider. Tutorial menunjukkan kepada Anda bagaimana melakukan hal berikut:
-
Instal perangkat lunak server web pada EC2 instance Amazon.
-
Atur konfigurasi perangkat lunak server web untuk mendukung HTTPS dengan kunci privat yang tersimpan di klaster AWS CloudHSM .
-
(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
Platform yang berbeda memerlukan prasyarat yang berbeda. Gunakan bagian prasyarat di bawah ini yang sesuai dengan platform Anda.
Prasyarat untuk Penyedia OpenSSL AWS CloudHSM
Untuk mengatur pembongkaran identitas server web SSL/TLS server dengan AWS CloudHSM OpenSSL Provider for 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.
-
EC2 Instans Amazon yang menjalankan sistem operasi Linux dengan perangkat lunak berikut diinstal:
-
Server web (baik NGINX atau) HAProxy
-
Penyedia AWS CloudHSM 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 tinggi. Anda mungkin perlu menjalankan perintah dengan sudo atau sebagai pengguna root tergantung pada konfigurasi sistem Anda.
-
Instal dan konfigurasikan Penyedia AWS CloudHSM OpenSSL untuk Client SDK 5. Untuk informasi selengkapnya tentang menginstal Penyedia OpenSSL, lihat Penyedia AWS CloudHSM OpenSSL untuk SDK Klien 5.
-
Pada instance EC2 Linux yang memiliki akses ke cluster Anda, instal NGINX atau server HAProxy web:
-
Gunakan CloudHSM CLI untuk membuat pengguna kripto. Untuk informasi selengkapnya tentang mengelola pengguna HSM, lihat Mengelola 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: Buat 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 cluster dan memberikan akses EC2 instance ke cluster, selesaikan langkah-langkah dalam Memulai dengan AWS CloudHSM. Memulai menawarkan step-by-step instruksi untuk membuat cluster aktif dengan satu HSM dan instance EC2 klien Amazon. 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 cluster AWS CloudHSM.
-
Untuk terhubung ke instans klien Anda, Anda dapat menggunakan SSH atau PuTTY. Untuk informasi selengkapnya, lihat Menghubungkan ke Instans Linux Anda Menggunakan SSH atau Menghubungkan ke Instans Linux Anda dari Windows Menggunakan PuTTY dalam dokumentasi Amazon EC2.
Langkah 2: Buat 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 identitas SSL/TLS server web offload dengan AWS CloudHSM, Anda harus menyimpan kunci pribadi di HSM di cluster Anda AWS CloudHSM . Pertama-tama Anda akan membuat kunci pribadi dan menggunakan kunci 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 (itu 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.
Hasilkan kunci pribadi
Bagian ini menunjukkan cara membuat keypair menggunakan CloudHSM CLI. Setelah Anda memiliki key pair yang dihasilkan di dalam HSM, Anda dapat mengekspornya sebagai file PEM palsu dan menghasilkan sertifikat yang sesuai.
Instal dan konfigurasikan CloudHSM CLI
-
Instal dan Konfigurasikan CloudHSM CLI.
-
Gunakan perintah berikut untuk memulai CloudHSM CLI.
$/opt/cloudhsm/bin/cloudhsm-cli interactive -
Jalankan perintah berikut untuk masuk ke HSM. Ganti
<user name>dengan nama pengguna pengguna kripto Andaaws-cloudhsm>login --username<user name>--role crypto-user
Menghasilkan Kunci Pribadi
Tergantung pada kasus penggunaan Anda, Anda dapat menghasilkan RSA atau EC key pair. Lakukan salah satu tindakan berikut:
-
Untuk menghasilkan kunci pribadi RSA pada HSM
Gunakan key generate-asymmetric-pair rsaperintah untuk menghasilkan key pair RSA. Contoh ini menghasilkan key pair RSA dengan modulus 2048, eksponen publik 65537, label kunci publik, dan label kunci pribadi.
tls_rsa_pubtls_rsa_privateaws-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 ecperintah untuk menghasilkan EC key pair. Contoh ini menghasilkan key pair EC dengan
prime256v1kurva (sesuai denganNID_X9_62_prime256v1kurva), label kunci publiktls_ec_pub, dan label kunci pribaditls_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" } } } }
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 yang sebenarnya, tetapi memungkinkan OpenSSL Dynamic Engine 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-fileperintah 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.
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" } }
Keluar dari CloudHSM CLI
Jalankan perintah berikut untuk menghentikan CloudHSM CLI.
aws-cloudhsm >quit
Anda sekarang harus memiliki file baru di sistem Anda, yang terletak di jalur yang ditentukan oleh <web_server_fake_pem.key> dalam perintah sebelumnya. File ini adalah file kunci pribadi PEM palsu.
Menghasilkan 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 bertanda tangan yang mereka berikan kepada Anda di server web Anda untuk HTTPS.
Sebagai alternatif untuk menggunakan CA, Anda dapat menggunakan AWS CloudHSM OpenSSL Dynamic Engine untuk membuat sertifikat yang ditandatangani sendiri. Sertifikat yang ditandatangani sendiri tidak dipercaya oleh peramban dan tidak boleh digunakan dalam lingkungan produksi. Sertifikat dapat digunakan dalam lingkungan pengujian.
Awas
Sertifikat yang ditandatangani sendiri hanya boleh digunakan dalam lingkungan pengujian. Untuk lingkungan produksi, gunakan metode yang lebih aman seperti otoritas sertifikat untuk membuat sertifikat.
Instal dan konfigurasikan OpenSSL Dynamic Engine
-
Hubungkan ke instans klien Anda.
-
Instal OpenSSL Dynamic Engine AWS CloudHSM untuk Client SDK 5
Menghasilkan sertifikat
-
Dapatkan salinan file PEM palsu Anda yang dihasilkan pada langkah sebelumnya.
-
Buat CSR
Jalankan perintah berikut untuk menggunakan AWS CloudHSM OpenSSL Dynamic Engine 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
reqbersifat interaktif. Tanggapi setiap bidang. Informasi bidang disalin ke SSL/TLS sertifikat Anda.catatan
Pembuatan CSR saat ini tidak didukung dengan Penyedia OpenSSL. Anda harus menggunakan OpenSSL Engine untuk langkah ini, tetapi operasi cipher TLS akan bekerja dengan Provider.
$openssl req -engine cloudhsm -new -key<web_server_fake_pem.key>-out<web_server.csr> -
Buat sertifikat yang ditandatangani sendiri
Jalankan perintah berikut untuk menggunakan AWS CloudHSM OpenSSL Dynamic Engine 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 -engine cloudhsm -req -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 SSL/TLS pembongkaran identitas server dengan 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
-
Hubungkan ke instans klien Anda.
-
Jalankan perintah berikut untuk membuat direktori yang diperlukan untuk sertifikat server web dan kunci privat PEM palsu.
$mkdir -p /etc/pki/nginx/private -
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 -
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 -
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 -
Konfigurasikan OpenSSL untuk menggunakan penyedia. AWS CloudHSM Untuk informasi selengkapnya tentang mengonfigurasi Penyedia OpenSSL, lihat Penyedia AWS CloudHSM OpenSSL untuk SDK Klien 5.
-
Temukan file konfigurasi OpenSSL Anda:
$openssl version -dAnda akan melihat output yang mirip dengan:
OPENSSLDIR: "/etc/pki/tls"File konfigurasi ada
openssl.cnfdi direktori ini. -
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 mencakup penggunaan Penyedia CloudHSM hanya ke aplikasi tertentu yang memerlukan operasi kriptografi yang didukung HSM.
Buat file konfigurasi OpenSSL baru dengan konten berikut:
$cat >## NOTE: This should point to the system default openssl config file. # Replace /etc/pki/tls with the path to your OpenSSL configuration directory .include<example-cloudhsm-openssl.cnf><< 'EOF'</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 = 1EOF -
Pastikan variabel
CLOUDHSM_PINlingkungan disetel dengan kredensyal pengguna kripto (CU) Anda:$export CLOUDHSM_PIN=<username>:<password> -
Setel variabel
OPENSSL_CONFlingkungan untuk menunjuk ke file konfigurasi Anda yang diperbarui dan verifikasi penyedia dimuat:$OPENSSL_CONF=/path/to/example-cloudhsm-openssl.cnf openssl list -providersAnda 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
-
-
Jalankan perintah berikut untuk mencadangkan file
/etc/nginx/nginx.conf.$cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup -
Perbarui konfigurasi NGINX.
catatan
Setiap klaster dapat mendukung maksimum 1000 proses pekerja NGINX di semua server web NGINX.
Simpan file tersebut.
-
Cadangkan file konfigurasi
systemd, dan kemudian atur jalurEnvironmentFile. -
Periksa apakah file
/etc/sysconfig/nginxada, 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
nginxdalam folder/etc/sysconfig/.
-
-
Konfigurasikan lingkungan NGINX.
-
Mulai server web NGINX.
Setelah Anda mengkonfigurasi NGINX, buka. Verifikasi bahwa HTTPS menggunakan sertifikat yang Anda konfigurasikan
Konfigurasikan server HAProxy web
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
-
Cadangkan file sertifikat gabungan yang ada jika ada:
$cp server-combined.pem server-combined.pem.backup -
Buat file sertifikat gabungan untuk HAProxy menggunakan sertifikat dan kunci PEM palsu CloudHSM Anda:
$cat server.crt server.key > server-combined.pem -
Cadangkan HAProxy konfigurasi yang ada:
$cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.backup -
Buat konfigurasi offload CloudHSM TLS baru di:
/etc/haproxy/haproxy.cfgglobal 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 checkPerbarui jalur sertifikat agar sesuai dengan lokasi file Anda.
-
Konfigurasikan systemd untuk menggunakan file lingkungan untuk HAProxy. Lokasi tergantung pada distribusi Linux Anda.
-
Buat file lingkungan di lokasi yang sesuai untuk sistem Anda.
Ganti
<CU user name>dan<password>dengan kredensyal CU Anda. -
Muat ulang konfigurasi systemd:
$systemctl daemon-reload -
Mulailah HAProxy dengan konfigurasi offload CloudHSM TLS:
$systemctl start haproxyAnda juga dapat menjalankan HAProxy langsung dengan file konfigurasi khusus:
$haproxy -f /path/to/haproxy-cloudhsm.cfg
Setelah Anda mengkonfigurasi HAProxy, bukaVerifikasi bahwa HTTPS menggunakan sertifikat yang Anda konfigurasikan.
Langkah 4: Aktifkan lalu lintas HTTPS dan verifikasi sertifikat
Setelah Anda mengonfigurasi server web untuk SSL/TLS dibongkar 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 konfigurasikan untuk SSL/TLS dibongkar. AWS CloudHSM
Topik
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
-
Buka EC2 konsol Amazon di https://console.aws.amazon.com/ec2/
. -
Pilih Grup keamanan di panel navigasi.
-
Pilih Buat grup keamanan.
-
Untuk Buat Grup Keamanan, lakukan hal berikut:
-
Untuk Nama grup keamanan, ketik nama untuk grup keamanan yang Anda buat.
-
(Opsional) Ketik deskripsi grup keamanan yang Anda buat.
-
Untuk VPC, pilih VPC yang berisi instance Amazon server web Anda. EC2
-
Pilih Tambahkan Aturan.
-
Untuk Type, pilih HTTPS dari jendela drop-down.
-
Untuk Sumber, masukkan lokasi sumber.
-
Pilih Buat grup keamanan.
-
-
Di panel navigasi, pilih Instans.
-
Pilih kotak centang di samping instans server web Anda.
-
Pilih menu tarik-turun Tindakan di bagian atas halaman. Pilih Keamanan dan kemudian Ubah Grup Keamanan.
-
Untuk grup keamanan terkait, pilih kotak pencarian dan pilih grup keamanan yang Anda buat untuk HTTPS. Kemudian pilih Tambahkan Grup Keamanan.
-
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
-
Gunakan browser web untuk terhubung ke server web Anda menggunakan nama DNS publik atau alamat IP server. Pastikan 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 Merutekan Lalu Lintas ke EC2 Instans Amazon di Panduan Pengembang Amazon Route 53 atau dalam dokumentasi untuk layanan DNS Anda.
-
Gunakan peramban web Anda untuk melihat sertifikat server web. Untuk informasi lebih lanjut, lihat hal berikut:
-
Para Mozilla Firefox, lihat Lihat Sertifikat
di situs web Dukung Mozilla. -
Untuk Google Chrome, lihat Memahami Masalah Keamanan
pada Alat Google Tools untuk Pengembang Web.
Peramban web lain mungkin memiliki fitur serupa yang dapat Anda gunakan untuk melihat sertifikat server web.
-
-
Pastikan bahwa SSL/TLS sertifikat adalah salah satu yang Anda konfigurasi server web Anda untuk digunakan.
Untuk memverifikasi SSL/TLS offload dengan OpenSSL s_client
-
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>:443Tip
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 Merutekan Lalu Lintas ke EC2 Instans Amazon di Panduan Pengembang Amazon Route 53 atau dalam dokumentasi untuk layanan DNS Anda.
-
Pastikan bahwa SSL/TLS sertifikat adalah salah satu yang Anda konfigurasi 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).