4.6. secureboot の鍵の追加
KMM Kernel Module Management (KMM) を使用してカーネルモジュールに署名するには、証明書と秘密鍵が必要です。これらの作成方法の詳細は、公開鍵と秘密鍵のペアの生成 を参照してください。
公開鍵と秘密鍵のペアを抽出する方法の詳細は、秘密鍵を使用してカーネルモジュールに署名する を参照してください。手順 1 ~ 4 を使用して、キーをファイルに抽出します。
手順
証明書を含む
sb_cert.cer
ファイルと、秘密鍵を含むsb_cert.priv
ファイルを作成します。$ openssl req -x509 -new -nodes -utf8 -sha256 -days 36500 -batch -config configuration_file.config -outform DER -out my_signing_key_pub.der -keyout my_signing_key.priv
次のいずれかの方法を使用して、ファイルを追加します。
ファイルを シークレット として直接追加します。
$ oc create secret generic my-signing-key --from-file=key=<my_signing_key.priv>
$ oc create secret generic my-signing-key-pub --from-file=key=<my_signing_key_pub.der>
base64 エンコーディングでファイルを追加します。
$ cat sb_cert.priv | base64 -w 0 > my_signing_key2.base64
$ cat sb_cert.cer | base64 -w 0 > my_signing_key_pub.base64
エンコードされたテキストを YAML ファイルに追加します。
apiVersion: v1 kind: Secret metadata: name: my-signing-key-pub namespace: default 1 type: Opaque data: cert: <base64_encoded_secureboot_public_key> --- apiVersion: v1 kind: Secret metadata: name: my-signing-key namespace: default 2 type: Opaque data: key: <base64_encoded_secureboot_private_key>
YAML ファイルを適用します。
$ oc apply -f <yaml_filename>
4.6.1. キーの確認
キーを追加したら、キーが正しく設定されていることを確認する必要があります。
手順
公開鍵シークレットが正しく設定されていることを確認します。
$ oc get secret -o yaml <certificate secret name> | awk '/cert/{print $2; exit}' | base64 -d | openssl x509 -inform der -text
これにより、シリアル番号、発行者、サブジェクトなどを含む証明書が表示されます。
秘密鍵シークレットが正しく設定されていることを確認します。
$ oc get secret -o yaml <private key secret name> | awk '/key/{print $2; exit}' | base64 -d
これにより、
-----BEGIN PRIVATE KEY-----
および-----END PRIVATE KEY-----
行で囲まれたキーが表示されます。