- 自签名证书:通过OpenSSL工具生成,命令示例: `openssl req -new -newkey rsa:2048 -nodes -keyout private.key -out cert.csr` `openssl x509 -req -days 365 -in cert.csr -signkey private.key -out cert.crt` 合并为PFX格式:`openssl pkcs12 -export -out cert.pfx -inkey private.key -in cert.crt`
- CA证书:从正规CA机构如DigiCert、GlobalSign购买,获取带私钥的PFX/P12文件。 二、使用签名工具 Windows系统推荐使用signtool.exe需安装Windows SDK,步骤如下: 1. 打开命令提示符管理员模式,定位到signtool所在路径通常为`C:Program Files (x86)Windows Kits10bin10.0.xxx.0x64`。 2. 执行签名命令: ```bash signtool sign /f "C:pathtocert.pfx" /p "证书密码" /t http://timestamp.digicert.com "C:pathtotarget.dll" ``` - `/f`:指定证书文件路径 - `/p`:证书私钥密码 - `/t`:时间戳服务器地址确保签名长期有效 三、验证签名有效性 签名成后需验证是否成功: 1. 命令行验证: ```bash signtool verify /pa "C:pathtotarget.dll" ``` 成功提示:`文件的签名验证成功`。 2. 图形化验证: 右键DLL文件→属性→数字签名→选择签名→点击详细信息,显示“此数字签名正常”。 四、意事项
- 时间戳必须添加:若时间戳,证书过期后签名将失效。
- 私钥安全:PFX文件需加密存储,避免泄露。
- 算法选择:优先使用SHA256算法取代SHA1,命令中可通过`/fd SHA256`指定。 通过以上步骤,即可成DLL文件的数字签名,确保文件整性和发布者身份可信。
如何给DLL添加数字签名?
如何对DLL加数字签名
一、准备数字证书
数字签名需基于数字证书成,证书分为自签名证书测试用和CA机构签发证书正式环境。
