Langkah 2: Buat atau impor kunci pribadi dan sertifikat SSL/TLS - AWS CloudHSM

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

Langkah 2: Buat atau impor kunci pribadi dan sertifikat SSL/TLS

Untuk mengaktifkan HTTPS, aplikasi server web Tomcat Anda memerlukan kunci pribadi dan sertifikat SSL/TLS yang sesuai. Untuk menggunakan server web SSL/TLS offload dengan AWS CloudHSM, Anda harus menyimpan kunci pribadi di HSM di cluster Anda. AWS CloudHSM

catatan

Jika Anda belum memiliki kunci pribadi dan sertifikat yang sesuai, buat kunci pribadi di HSM. Anda menggunakan kunci privat untuk membuat permintaan penandatanganan sertifikat (CSR), yang Anda gunakan untuk membuat sertifikat SSL/TLS.

Anda membuat AWS CloudHSM KeyStore file lokal yang berisi referensi ke kunci pribadi Anda di HSM dan sertifikat terkait. Server web Anda menggunakan AWS CloudHSM KeyStore file untuk mengidentifikasi kunci pribadi pada HSM selama SSL/TLS offload.

Menghasilkan kunci pribadi

Bagian ini menunjukkan cara membuat keypair menggunakan KeyTool from JDK. Setelah Anda memiliki key pair yang dihasilkan di dalam HSM, Anda dapat mengekspornya sebagai KeyStore file, dan menghasilkan sertifikat yang sesuai.

Tergantung pada kasus penggunaan Anda, Anda dapat menghasilkan RSA atau EC key pair. Langkah-langkah berikut menunjukkan cara menghasilkan key pair RSA.

Gunakan genkeypair perintah KeyTool untuk menghasilkan key pair RSA
  1. Setelah mengganti di <VARIABLES>bawah ini dengan data spesifik Anda, gunakan perintah berikut untuk menghasilkan file keystore bernamajsse_keystore.keystore, yang akan memiliki referensi kunci pribadi Anda di HSM.

    $ keytool -genkeypair -alias <UNIQUE ALIAS FOR KEYS> -keyalg <KEY ALGORITHM> -keysize <KEY SIZE> -sigalg <SIGN ALGORITHM> \ -keystore <PATH>/<JSSE KEYSTORE NAME>.keystore -storetype CLOUDHSM \ -dname CERT_DOMAIN_NAME \ -J-classpath '-J'$JAVA_LIB'/*:/opt/cloudhsm/java/*:./*' \ -provider "com.amazonaws.cloudhsm.jce.provider.CloudHsmProvider" \ -providerpath "$CLOUDHSM_JCE_LOCATION" \ -keypass <KEY PASSWORD> -storepass <KEYSTORE PASSWORD>
    • <PATH>: Jalur yang ingin Anda hasilkan file keystore Anda.

    • <UNIQUE ALIAS FOR KEYS>: Ini digunakan untuk mengidentifikasi kunci Anda secara unik pada HSM. Alias ini akan ditetapkan sebagai atribut LABEL untuk kunci.

    • <KEY PASSWORD>: Kami menyimpan referensi ke kunci Anda di file keystore lokal, dan kata sandi ini melindungi referensi lokal itu.

    • <KEYSTORE PASSWORD>: Ini adalah kata sandi untuk file keystore lokal Anda.

    • <JSSE KEYSTORE NAME>: Nama file Keystore.

    • <CERT DOMAIN NAME>: X.500 Nama terhormat.

    • <KEY ALGORITHM>: Algoritma kunci untuk menghasilkan key pair (Misalnya, RSA dan EC).

    • <KEY SIZE>Ukuran kunci untuk menghasilkan key pair (misalnya, 2048, 3072, dan 4096).

    • <SIGN ALGORITHM>: Ukuran kunci untuk menghasilkan key pair (misalnya, SHA1withRSA, SHA224WithRSA, SHA256withRSA, SHA384withRSA, dan SHA512withRSA).

  2. Untuk mengonfirmasi bahwa perintah berhasil, masukkan perintah berikut dan verifikasi bahwa Anda telah berhasil menghasilkan key pair RSA.

    $ ls <PATH>/<JSSE KEYSTORE NAME>.keystore

Menghasilkan sertifikat yang ditandatangani sendiri

Setelah Anda membuat kunci pribadi bersama dengan file keystore, 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 sertifikat SSL/TLS yang ditandatangani yang mereka berikan kepada Anda di server web Anda untuk HTTPS.

Sebagai alternatif untuk menggunakan CA, Anda dapat menggunakan KeyTool 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.

Topik
    Menghasilkan sertifikat
    1. Dapatkan salinan file keystore Anda yang dihasilkan pada langkah sebelumnya.

    2. Jalankan perintah berikut untuk menggunakan KeyTool untuk membuat permintaan penandatanganan sertifikat (CSR).

      $ keytool -certreq -keyalg RSA -alias unique_alias_for_key -file certreq.csr \ -keystore <JSSE KEYSTORE NAME>.keystore -storetype CLOUDHSM \ -J-classpath '-J$JAVA_LIB/*:/opt/cloudhsm/java/*:./*' \ -keypass <KEY PASSWORD> -storepass <KEYSTORE PASSWORD>
      catatan

      File keluaran dari permintaan penandatanganan sertifikat adalahcertreq.csr.

    Menandatangani sertifikat
    • Setelah mengganti di <VARIABLES>bawah ini dengan data spesifik Anda, jalankan perintah berikut untuk menandatangani CSR Anda dengan kunci pribadi Anda di HSM Anda. Ini membuat sertifikat yang ditandatangani sendiri.

      $ keytool -gencert -infile certreq.csr -outfile certificate.crt \ -alias <UNIQUE ALIAS FOR KEYS> -keypass <KEY_PASSWORD> -storepass <KEYSTORE_PASSWORD> -sigalg SIG_ALG \ -storetype CLOUDHSM -J-classpath '-J$JAVA_LIB/*:/opt/cloudhsm/java/*:./*' \ -keystore jsse_keystore.keystore
      catatan

      certificate.crtadalah sertifikat yang ditandatangani yang menggunakan kunci pribadi alias.

    Impor sertifikat di Keystore
    • Setelah mengganti di <VARIABLES>bawah ini dengan data spesifik Anda, jalankan perintah berikut untuk mengimpor sertifikat yang ditandatangani sebagai sertifikat tepercaya. Langkah ini akan menyimpan sertifikat di entri keystore yang diidentifikasi oleh alias.

      $ keytool -import -alias <UNIQUE ALIAS FOR KEYS> -keystore jsse_keystore.keystore \ -file certificate.crt -storetype CLOUDHSM \ -v -J-classpath '-J$JAVA_LIB/*:/opt/cloudhsm/java/*:./*' \ -keypass <KEY PASSWORD> -storepass <KEYSTORE_PASSWORD>
    Mengkonversi sertifikat ke PEM
    • Jalankan perintah berikut untuk mengonversi file sertifikat yang ditandatangani (.crt) ke PEM. File PEM akan digunakan untuk mengirim permintaan dari klien http.

      $ openssl x509 -inform der -in certificate.crt -out certificate.pem

    Setelah Anda menyelesaikan langkah-langkah ini, pergi ke Langkah 3: Konfigurasikan server web.