You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Ansible生成自签名OpenSSL证书时私钥密码错误的原因

Ansible x509_certificate 私钥密码错误原因及解决

出现Wrong or empty passphrase provided for private key错误,核心原因是私钥密码在生成和证书签名阶段的传递不匹配,或者模块参数使用不当,具体分以下几种情况:

1. 密码参数传递不一致

你用openssl_privatekey生成带密码ansible的私钥后,在x509_certificate任务中必须通过privatekey_passphrase参数传入完全相同的密码。如果这个参数缺失、拼写错误(比如大小写错误),模块会尝试无密码读取加密私钥,直接触发密码错误。

官方示例未使用密码,是因为示例生成的是无密码私钥,不需要额外传递密码参数,和你的场景完全不同。

2. 私钥文件权限问题

加密私钥文件的权限如果过于宽松(比如0644),Ansible在读取时可能会因为安全限制出现异常,间接导致密码验证失败。必须确保私钥文件权限为0600,仅所有者可读写。

3. 私钥生成时的加密算法问题

如果生成私钥时未指定加密算法(比如cipher: aes256),部分OpenSSL版本可能会默认使用弱加密或不加密,导致后续用密码读取时出错。


修复步骤示例

  1. 正确生成带密码的私钥:
- name: 创建带密码的OpenSSL私钥
  openssl_privatekey:
    path: /etc/ssl/private/example.key
    passphrase: ansible
    cipher: aes256
    mode: 0600
  1. 生成自签名证书时正确传递密码:
- name: 生成自签名TLS证书
  x509_certificate:
    path: /etc/ssl/certs/example.crt
    privatekey_path: /etc/ssl/private/example.key
    privatekey_passphrase: ansible
    provider: selfsigned
    subject:
      commonName: example.com
  1. 验证私钥密码有效性(在目标主机执行):
openssl rsa -in /etc/ssl/private/example.key -check

输入密码ansible,若能输出私钥校验信息,说明密码本身无问题。

内容的提问来源于stack exchange,提问作者Richard Rublev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 08:12:56