24.6. 签名自定义构建的软件包
				为保持系统的完整性,在部署前务必要为自定义构建的软件包签名。使用 rpm-sign 工具和 IMA 代码签名密钥,您可以签署您的自定义构建软件包。
			
先决条件
- 您在系统中具有 root 权限。
- 您有一个要签名的自定义构建软件包。
- 您有 IMA 代码签名密钥。
- 
						已安装 rpm-sign工具。
- 创建自定义 IMA 密钥。请参阅使用 OpenSSL 创建自定义 IMA 密钥。
流程
- 使用 - rpmsign -signfiles为软件包文件签名:- rpmsign --define "gpg_name _<GPG_KEY_NAME>" --addsign --signfiles --fskpass --fskpath=<PATH_TO_YOUR_PRIVATE_IMA_CODE_SIGNING_KEY> <PATH_TO_YOUR_RPM> - # rpmsign --define "gpg_name _<GPG_KEY_NAME>" --addsign --signfiles --fskpass --fskpath=<PATH_TO_YOUR_PRIVATE_IMA_CODE_SIGNING_KEY> <PATH_TO_YOUR_RPM>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - --define "gpg_name _<GPG_KEY_NAME>"
- GPG 密钥为软件包签名,IMA 代码签名密钥签署软件包中的每个文件。
- --addsign
- 在软件包中添加签名。
- --signfiles
- 对软件包中的每个文件进行签名。
- --fskpass
- 避免重复输入 IMA 代码签名密钥的密码。
- --fskpath
- 指定 IMA 代码签名密钥的路径。
 
验证
- 要验证软件包是否已签名,您可以使用以下命令: - rpm -q --queryformat "[%{FILENAMES} %{FILESIGNATURES}\n] <PATH_TO_YOUR_RPM>"- # rpm -q --queryformat "[%{FILENAMES} %{FILESIGNATURES}\n] <PATH_TO_YOUR_RPM>" /usr/bin/YOUR_BIN 030204... /usr/lib/YOUR_LIB.so 030204... ...- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow