Sebelum Anda dapat mengimpor kunci ke Cloud KMS, kunci tersebut harus digabungkan
menggunakan
skema CKM_RSA_AES_KEY_WRAP
PKCS#11, yang mencakup RSA-OAEP
(yang disertakan
dalam OpenSSL 1.1 secara default) dan AES Key Wrap
dengan Padding (yang tidak disertakan). Mekanisme tersebut tidak disertakan dalam OpenSSL.
Sebaiknya gunakan Google Cloud CLI untuk menggabungkan setiap kunci secara otomatis selama impor. Jika Anda harus menggabungkan kunci secara manual karena persyaratan kepatuhan atau peraturan, Anda harus mengompilasi ulang OpenSSL terlebih dahulu untuk menambahkan dukungan untuk AES Key Wrap dengan Padding. Setelah mengompilasi ulang OpenSSL, Anda dapat menggabungkan kunci secara manual.
Sebelum memulai
Jangan menimpa biner OpenSSL bawaan sistem Anda dengan
biner yang di-patch yang dihasilkan dengan mengikuti prosedur dalam topik ini. Misalnya,
jangan instal OpenSSL yang di-patch langsung ke /usr
. Jika Anda mengikuti
prosedur ini dengan tepat, OpenSSL yang di-patch akan di-build di $HOME/build
dan diinstal
ke $HOME/local/bin
.
Jika ${HOME}/local/bin
sudah ada, cadangkan kontennya atau pindahkan file tersebut ke tempat lain sebelum mengikuti langkah-langkah dalam topik ini.
Melakukan patch dan menginstal OpenSSL v1.1.0
Jika Anda memilih untuk menggunakan OpenSSL untuk menggabungkan kunci secara manual sebelum mengimpornya ke Cloud KMS, OpenSSL v1.1.0 diperlukan, dengan patch berikut diterapkan. Anda harus mengompilasi OpenSSL dan menginstalnya ke lokasi terpisah dari penginstalan OpenSSL default sistem Anda.
Download sumber untuk rilis OpenSSL 1.1.0l dari https://www.openssl.org/source. Ini adalah rilis terbaru di baris kode 1.1.0. Jangan gunakan versi OpenSSL yang lebih baru, seperti v1.1.1, dalam prosedur ini. Patch akan gagal diterapkan.
Ekstrak arsip ke
${HOME}/build/openssl/
menggunakan perintah berikut. Perintah ini mengganti direktori default, yang menyertakan versi OpenSSL dan sering berubah. Ganti /path/to/downloaded-openssl.tar.gz dengan jalur ke arsip.tar.gz
yang didownload.# Create the directory for the eventual OpenSSL binaries mkdir -p ${HOME}/local/ssl # Create the build directory mkdir -p ${HOME}/build/openssl # Extract the archive to ${HOME}/build/openssl tar xzvf /path/to/downloaded-openssl.tar.gz \ -C ${HOME}/build/openssl/ \ --strip-components 1
Terapkan patch kustom ke sumber OpenSSL yang diekstrak, menggunakan perintah berikut.Patch ini mengaktifkan flag
EVP_CIPHER_CTX_FLAG_WRAP_ALLOW
.cd ${HOME}/build cat <<-EOF | patch -d . -p0 --- orig/openssl/apps/enc.c 2020-01-17 14:39:54.991708785 -0500 +++ openssl/apps/enc.c 2020-01-17 14:41:33.215704269 -0500 @@ -482,6 +482,7 @@ */ BIO_get_cipher_ctx(benc, &ctx); + EVP_CIPHER_CTX_set_flags(ctx, EVP_CIPHER_CTX_FLAG_WRAP_ALLOW); if (!EVP_CipherInit_ex(ctx, cipher, NULL, NULL, NULL, enc)) { BIO_printf(bio_err, "Error setting cipher %s\n", EOF
Jalankan perintah berikut untuk mem-build biner dan library OpenSSL dari sumber yang di-patch, menguji validitas build, dan menginstal biner dan library ke direktori
${HOME}/local
.CPUS=$(getconf _NPROCESSORS_ONLN) cd ${HOME}/build/openssl ./config --prefix=${HOME}/local --openssldir=${HOME}/local/ssl make -j${CPUS} make test make install
Jangan menghilangkan atau mengubah flag
--prefix
atau--openssldir
, untuk memastikan bahwa Anda tidak menimpa penginstalan OpenSSL sistem.Jalankan perintah berikut untuk memeriksa apakah biner OpenSSL baru berhasil diinstal:
test -x ${HOME}/local/bin/openssl || echo FAIL
Anda tidak akan melihat output jika biner diinstal dengan benar. Jika Anda melihat
FAIL
, periksa output perintahmake
,make test
, danmake install
yang Anda jalankan sebelumnya.Biner OpenSSL yang di-patch ditautkan secara dinamis ke library OpenSSL di
${HOME}/local/ssl/lib/
, tetapi perintahld
tidak menginindeks library ini secara default. Jalankan perintah berikut untuk membuat skrip wrapper yang menambahkan library yang di-patch ke${LD_LIBRARY_PATH}
sebelum memanggil CLI untuk OpenSSL yang di-patch.cat > ${HOME}/local/bin/openssl.sh <<-EOF #!/bin/bash env LD_LIBRARY_PATH=${HOME}/local/lib/ ${HOME}/local/bin/openssl "\$@" EOF chmod u+x ${HOME}/local/bin/openssl.sh
Pastikan versi OpenSSL yang dimulai skrip adalah versi yang baru saja Anda build dan instal, menggunakan perintah berikut:
${HOME}/local/bin/openssl.sh version
Sekarang Anda dapat memanggil skrip wrapper ${HOME}/local/bin/openssl.sh
untuk
menggabungkan kunci secara manual untuk impor.