加密 p12 证书

加密 p12 证书

我正在尝试遵循此文档(请参阅创建代码签名证书部分)以加密 p12 文件,但我总是收到相同的警告。

未知选项“Cert.p12”

难道我做错了什么?这是我正在运行的命令

openssl enc -aes-256-cbc -a -salt -k -in "Cert.p12" -out "Cert.p12.encrypted"

答案1

您的命令有错误。该-k选项需要密码。

man enc页面:

-k 密码 派生密钥的密码。这是为了与以前版本的 OpenSSL 兼容。被 -pass 参数取代。

正如您所看到的,该选项已被该选项取代-pass。因此,对您来说更好的交互式命令是(请注意缺少该-k选项):

openssl enc aes-256-cbc -a -salt -in "Cert.p12" -out "Cert.p12.encrypted"

此时它将提示输入密码。如果您必须在脚本中包含密码(这很危险),请使用该-k选项或较新的-pass pass:<your password>.请阅读man opensslPASS PHRASE ARGUMENTS部分,了解更安全的密码传递方式。

请注意,您可以删除enc,它是在您指定密码时隐含的,并且-salt默认情况下处于启用状态。因此,您可以使用:

openssl aes-256-cbc -a -in "Cert.p12" -out "Cert.p12.encrypted"

默认选项openssl是加密,因此您不需要指示它这样做。但是,要解密,您需要添加-d选项:

openssl aes-256-cbc -d -a -in "Cert.p12.encrypted" -out "Cert.p12.copy"

相关内容