【问题标题】:How to specify CA private key password for client certificate creation using OpenSSL如何为使用 OpenSSL 创建客户端证书指定 CA 私钥密码
【发布时间】:2015-08-06 05:46:36
【问题描述】:

我正在构建一个命令行脚本,以使用 OpenSSL“迷你 CA”功能创建客户端证书。

我有一个 CA 证书用密码加密的 CA 私钥。有了这些东西,我正在尝试创建客户端证书并偶然发现了命令行语法。 如何为 CA 的私钥指定密码?

到目前为止,我已经...

openssl x509
  -req
  -in client.csr
  -signkey client.key
  -passin pass:clientPK
  -CA client-ca.crt
  -CAkey client-ca.key 
  -CAkeypassin pass:client-caPK <-- does not work
  -CAcreateserial
  -out client.crt
  -days 365

查看突出显示的参数。我期待这样的事情,但我在文档中的任何地方都找不到它。

更正

只是为了记录。 -signkey 参数用于自签名证书。 CA 无权访问客户端的私钥,因此不会使用它。相反,-passin 参数指的是 CA 的私钥。

openssl x509
  -req
  -in client.csr
  -CA client-ca.crt
  -CAkey client-ca.key 
  -passin pass:CAPKPassword
  -CAcreateserial
  -out client.crt
  -days 365

【问题讨论】:

标签: command-line openssl x509 ca


【解决方案1】:

使用-passin pass,如下所示。

 openssl x509
      -req
      -in client.csr
      -signkey client.key
      -passin pass:clientPK
      -CA client-ca.crt
      -CAkey client-ca.key 
      -passin pass:secret <-- try this
      -CAcreateserial
      -out client.crt
      -days 365

【讨论】:

  • 你是对的。我在添加-signkey 参数时犯了一个错误,因此那里已经标有-passin 参数的密码指的是客户端的私钥——这实际上对CA 不可用。
  • “passin”参数各部分的含义是什么?什么是“通过”,什么是“秘密”?
  • 逐字“通过”表示密码在命令行中给出,密码应替换为实际密码。有一些选项可以为 file/fd 提供密码,有关详细信息,请参阅man openssl
  • 多次出现“passin”参数是否正常/有意?第一个不是简单地被第二个替换了吗?
猜你喜欢
  • 2019-04-30
  • 2016-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-12
  • 2020-06-01
相关资源
最近更新 更多