← Cloudflare SSL/TLS / ssl / keyless-ssl / hardware-security-modules
Облачный HSM AWS
Прежде чем начать
Убедитесь, что у вас есть:
- Выпущен Кластер AWS CloudHSM ↗ .
- Установлен подходящую программную библиотеку для PKCS#11 ↗.
1. Импорт открытого и закрытого ключей в HSM
Перед импортом открытого ключа извлеките его из сертификата, предоставленного вашим CA. Поместите содержимое закрытого ключа в privkey.pem а затем выполните следующую команду (заменив certificate.pem на ваш фактический сертификат), чтобы заполнить pubkey.pm.
keyserver$ openssl x509 -pubkey -noout -in certificate.pem > pubkey.pemВойдите в CloudHSM, используя ранее созданный crypto user ↗ (CU) и создайте ключ шифрования ключа, который будет использован для импорта вашего закрытого ключа.
keyserver$ /opt/cloudhsm/bin/key_mgmt_util
Command: loginHSM -u CU -s patrick -p donahue
Command: genSymKey -t 31 -s 16 -sess -l import-wrapping-key
...
Symmetric Key Created. Key Handle: 658
...Используя дескриптор ключа, полученный выше, импортируйте закрытый и открытый ключи, а затем выйдите из HSM:
Command: importPrivateKey -f privkey.pem -l mykey -id 1 -w 658
...
Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS
Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS
Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS
...
Private Key Unwrapped. Key Handle: 658
Command: importPubKey -f pubkey.pem -l mykey -id 1
Cfm3CreatePublicKey returned: 0x00 : HSM Return: SUCCESS
...
Public Key Handle: 941
Command: logoutHSM
Command: exit2. Изменение конфигурационного файла gokeyless и перезапуск службы
Теперь, когда ключи готовы, нужно изменить конфигурационный файл, который сервер ключей считывает при запуске. Измените object=mykey и pin-value=username:password значения, соответствующие указанной вами метке ключа (key label) и созданному пользователю CU.
Откройте /etc/keyless/gokeyless.yaml и сразу после:
private_key_stores:
- dir: /etc/keyless/keysдобавить:
- uri: pkcs11:token=cavium;object=mykey?module-path=/opt/cloudhsm/lib/libcloudhsm_pkcs11_standard.so&pin-value=patrick:donahue&max-sessions=1Сохранив файл конфигурации, перезапустите gokeyless и убедитесь, что он успешно запустился.
sudo systemctl restart gokeyless.service
sudo systemctl status gokeyless.service -l