← Cloudflare SSL/TLS / ssl / keyless-ssl / hardware-security-modules
IBM Cloud HSM
Níže uvedený příklad byl testován pomocí IBM Cloud HSM 7.0 ↗, certifikovaná implementace FIPS 140-2 Level 3 založená na Gemalto SafeNet Luna a750.
Než začnete
Ujistěte se, že máte:
- Inicializováno vaše zařízení ↗
- Nainstalováno klientský software SafeNet ↗
1. Vytvoření, přiřazení a inicializace nového oddílu
Prvním krokem je vytvoření oddílu HSM, který si můžete představit jako samostatný logický HSM v rámci vašeho zařízení IBM Cloud HSM.
vm$ ssh admin@hsm
[cloudflare-hsm.softlayer.com] lunash:>partition create -partition KeylessSSL
Type 'proceed' to create the partition, or
'quit' to quit now.
> proceed
'partition create' successful.
Command Result : 0 (Success)Dále je potřeba přiřadit oddíl klientovi, v tomto případě vašemu serveru klíčů.
[cloudflare-hsm.softlayer.com] lunash:>client assignpartition -client cloudflare-vm.softlayer.com -partition KeylessSSL
'client assignPartition' successful.
Command Result : 0 (Success)Po přiřazení oddílu spusťte lunacm z vašeho virtuálního serveru a inicializujte oddíl.
vm$ lunacm
LunaCM v7.1.0-379. Copyright (c) 2006-2017 SafeNet.
Available HSMs:
Slot Id -> 0
Label ->
Serial Number -> XXXXXXXXXXXXX
Model -> LunaSA 7.0.0
Firmware Version -> 7.0.1
Configuration -> Luna User Partition With SO (PW) Signing With Cloning Mode
Slot Description -> Net Token Slot
Current Slot Id: 0
lunacm:>partition init -label KeylessSSL -domain cloudflare
Enter password for Partition SO: ********
Re-enter password for Partition SO: ********
You are about to initialize the partition.
All contents of the partition will be destroyed.
Are you sure you wish to continue?
Type 'proceed' to continue, or 'quit' to quit now ->proceed
Command Result : No Error2. Vygenerování párů klíčů RSA a ECDSA a žádostí o podepsání certifikátu (CSR)
Než spustíte níže uvedené příkazy, ověřte si u svého týmu pro informační bezpečnost a/nebo kryptografii schválené postupy pro vytváření klíčů ve vaší organizaci.
Při provádění této operace musíte definovat pole ID pro nově vygenerované klíče. Musí být nastaveno na hexadecimální celočíselnou hodnotu ve formátu big-endian.
vm$ cmu generatekeypair -keyType=RSA -modulusBits=2048 -publicExponent=65537 -sign=1 -verify=1 -labelpublic=myrsakey -labelprivate=myrsakey -keygenmech=1 -id=a000
Please enter password for token in slot 0 : ********
# cmu generatekeypair -keyType=ECDSA -curvetype=3 -sign=1 -verify=1 -labelpublic=myecdsakey -labelprivate=myecdsakey -id=a001
Please enter password for token in slot 0 : ********
# cmu list
Please enter password for token in slot 0 : ********
handle=61 label=myecdsakey
handle=60 label=myecdsakey
handle=48 label=myrsakey
handle=45 label=myrsakeyPomocí klíčů vytvořených v předchozím kroku vygenerujte CSR, které lze odeslat k podpisu veřejně důvěryhodné certifikační autoritě (CA).
# cmu requestCertificate -c="US" -o="Example, Inc." -cn="ibm-cloudhsm.example.com" -s="California" -l="San Francisco" -publichandle=45 -privatehandle=48 -outputfile="rsa.csr" -sha256withrsa
Please enter password for token in slot 0 : ********
Using "CKM_SHA256_RSA_PKCS" Mechanism
# cmu requestCertificate -c="US" -o="Example, Inc." -cn="ibm-cloudhsm.example.com" -s="California" -l="San Francisco" -publichandle=60 -privatehandle=61 -outputfile="ecdsa.csr" -sha256withecdsa
Please enter password for token in slot 0 : ********
Using "CKM_ECDSA_SHA256" Mechanism3. Získejte podepsané certifikáty od své certifikační autority (CA) a nahrajte je
Poskytněte CSR vytvořené v předchozím kroku preferované certifikační autoritě (CA) vaší organizace, prokažte podle požadavků, že doménu ovládáte, a poté stáhněte podepsané certifikáty SSL. Postupujte podle pokynů uvedených v Nahrání certifikátů Keyless SSL.
4. Upravte konfigurační soubor gokeyless a restartujte službu
Nakonec je třeba upravit konfigurační soubor, který server klíčů načte při spuštění. Změňte object=mykey a pin-value=username:password hodnoty tak, aby odpovídaly zadanému štítku klíče a vámi vytvořenému uživateli CU.
Otevřete /etc/keyless/gokeyless.yaml a bezprostředně poté:
private_key_stores:
- dir: /etc/keyless/keyspřidat:
- uri: pkcs11:token=KeylessSSL;object=myrsakeyid=a000??module-path=/usr/safenet/lunaclient/lib/libCryptoki2_64.so&pin-value=password&max-sessions=1
- uri: pkcs11:token=KeylessSSL;object=myecdsakeyid=a001??module-path=/usr/safenet/lunaclient/lib/libCryptoki2_64.so&pin-value=password&max-sessions=1Po uložení konfiguračního souboru restartujte gokeyless a ověřte, že se úspěšně spustil.
sudo systemctl restart gokeyless.service
sudo systemctl status gokeyless.service -l