【问题标题】:How to fix "unable to write 'random state' " in openssl如何在 openssl 中修复“无法写入‘随机状态’”
【发布时间】:2012-09-12 12:05:21
【问题描述】:

使用此命令生成私钥时

genrsa -out my-prvkey.pem 1024

它会抛出如下错误

将“屏幕”加载到随机状态 -done 生成 RSA 私有 密钥,1024 位长模数 ....................................+++++++ .........................+++++++++++ 无法写入“随机状态”e 是 65537 (0*10001)

这会在创建公共证书时产生任何问题。我在 Windows 中运行这个命令。谁能帮我解决这个问题?

【问题讨论】:

标签: windows openssl


【解决方案1】:

最快的解决方案是:将环境变量RANDFILE设置为可以写入“随机状态”文件的路径(当然要检查文件访问权限),例如。在您的命令提示符中:

set RANDFILE=C:\MyDir\.rnd
openssl genrsa -out my-prvkey.pem 1024

更多解释: Windows 上的 OpenSSL 尝试按以下顺序保存“随机状态”文件:

  1. 路径取自 RANDFILE 环境变量
  2. 如果设置了 HOME 环境变量,则:${HOME}\.rnd
  3. C:\.rnd

我很确定,在您的情况下,它最终会尝试将其保存在 C:\.rnd 中(并且由于缺乏足够的访问权限而失败)。不幸的是,OpenSSL 不会打印实际尝试在任何错误消息中使用的路径。

【讨论】:

  • 抱歉,它已关闭,伙计......这是一个很好的问题,谷歌首先提出了它。
  • 这也很有效,无需以管理员身份运行。 (虽然只设置HOME 就足够了。)
  • 如果你使用 PowerShell,你会想要使用 $env:RANDFILE = 'C:\MyDir\.rnd'(在 PowerShell 中,setSet-Variable 的别名,与环境变量无关!)
【解决方案2】:

您也可能需要以管理员身份运行控制台。在 Windows 7 上,启动控制台窗口时按住 ctrl+shift

【讨论】:

  • 我觉得这可能应该是一个国家,除非你知道这是一个解决办法,但你的散文建议不然
  • 您还可以通过点击开始、键入 cmd、右键单击 cmd.exe 并以管理员身份运行来获得对 cmd 的管理员访问权限。 :)
【解决方案3】:

只需在命令行中输入这一行:

set RANDFILE=.rnd

【讨论】:

  • 我已经在 Windows 10 上安装了 openssl,我已经在命令提示符下运行了上面的命令。 openssl 仍然给出相同的错误,OpenSSL> genrsa -out key.pem Loading 'screen' into random state - done 生成 RSA 私钥,512 位长模数...... .....................++++++++++++++。 ......++++++++++++++ 无法写入“随机状态”e 是 65537 (0x10001)
【解决方案4】:

或者这个在windows powershell中

$env:RANDFILE=".rnd"

【讨论】:

    【解决方案5】:

    我没有找到 .rnd 文件的位置,所以我以管理员身份运行了 cmd,它的运行就像一个魅力。

    【讨论】:

      【解决方案6】:

      【讨论】:

        猜你喜欢
        • 2010-09-10
        • 2015-04-29
        • 1970-01-01
        • 2017-06-16
        • 1970-01-01
        • 2023-03-08
        • 2016-11-09
        • 2019-05-02
        • 2022-09-23
        相关资源
        最近更新 更多