Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

IBM Cloud HSM

最終更新 Markdown で表示Agent セットアップ

次の例は、IBM Cloud HSM 7.0 で検証しています。これは Gemalto SafeNet Luna a750 を基盤とする、FIPS 140-2 Level 3 認定の実装です。


始める前に

次の準備ができていることを確認してください。


1. 新しいパーティションを作成、割り当て、初期化する

最初の手順は、HSM パーティションの作成です。パーティションは、IBM Cloud HSM デバイス内の独立した論理 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)

次に、パーティションをクライアント(この場合は鍵サーバー)に割り当てます。

[cloudflare-hsm.softlayer.com] lunash:>client assignpartition -client cloudflare-vm.softlayer.com -partition KeylessSSL


'client assignPartition' successful.


Command Result : 0 (Success)

割り当てが終わったら、仮想サーバーで lunacm を実行し、パーティションを初期化します。

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 Error

2. RSA と ECDSA の鍵ペアと証明書署名要求(CSR)を生成する

次のコマンドを実行する前に、情報セキュリティ担当または暗号担当に確認し、組織で承認されている鍵作成手順を把握してください。

この操作では、新しく生成する鍵の ID フィールドを指定する必要があります。値はビッグエンディアンの 16 進整数にしてください。

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=myrsakey

前の手順で作成した鍵を使い、公開信頼の認証局(CA)へ署名を依頼できる CSR を生成します。

# 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" Mechanism

3. 認証局(CA)から署名済み証明書を取得してアップロードする

前の手順で作成した CSR を、組織が使う CA に提出します。求められたとおりドメインの管理権限を示し、署名済み SSL 証明書をダウンロードします。手順は Keyless SSL 証明書をアップロードする を参照してください。


4. gokeyless の設定ファイルを変更し、サービスを再起動する

最後に、鍵サーバーが起動時に読む設定ファイルを変更します。object=mykeypin-value=username:password の値を、指定した鍵ラベルと作成した CU ユーザーに合わせて変更します。

/etc/keyless/gokeyless.yaml を開き、次の直後に追記します。

private_key_stores:
  - dir: /etc/keyless/keys

次を追加します。

- 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=1

設定ファイルを保存したら、gokeyless を再起動し、正常に起動したことを確認します。

sudo systemctl restart gokeyless.service
sudo systemctl status gokeyless.service -l

役に立ちましたか?