4.11. 为 secureboot 添加密钥
要使用 KMM 内核模块管理 (KMM) 为内核模块签名,需要一个证书和私钥。有关如何创建这些密钥对的详情,请参阅生成公钥和私钥对。
有关如何提取公钥和私钥对的详情,请参阅使用私钥签名内核模块。使用第 1 到 4 步将密钥提取到文件中。
流程
创建包含证书以及包含私钥的
sb_cert.priv
文件的sb_cert.cer
文件: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
$ 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下方法之一添加文件:
将文件直接添加为 secret :
oc create secret generic my-signing-key --from-file=key=<my_signing_key.priv>
$ oc create secret generic my-signing-key --from-file=key=<my_signing_key.priv>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc create secret generic my-signing-key-pub --from-file=cert=<my_signing_key_pub.der>
$ oc create secret generic my-signing-key-pub --from-file=cert=<my_signing_key_pub.der>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 根据 base64 编码添加文件:
cat sb_cert.priv | base64 -w 0 > my_signing_key2.base64
$ cat sb_cert.priv | base64 -w 0 > my_signing_key2.base64
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cat sb_cert.cer | base64 -w 0 > my_signing_key_pub.base64
$ cat sb_cert.cer | base64 -w 0 > my_signing_key_pub.base64
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
在 YAML 文件中添加编码的文本:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 应用 YAML 文件:
oc apply -f <yaml_filename>
$ oc apply -f <yaml_filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.11.1. 检查密钥 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
添加密钥后,您必须检查它们以确保正确设置它们。
流程
检查以确保正确设置公钥 secret:
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 <certificate secret name> | awk '/cert/{print $2; exit}' | base64 -d | openssl x509 -inform der -text
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这应该会显示带有 Serial Number, Issuer, Subject 等的证书。
检查以确保正确设置私钥 secret:
oc get secret -o yaml <private key secret name> | awk '/key/{print $2; exit}' | base64 -d
$ oc get secret -o yaml <private key secret name> | awk '/key/{print $2; exit}' | base64 -d
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这应该显示包括在
-----BEGIN PRIVATE KEY-----
和-----END PRIVATE KEY-----
行中的密钥。