【问题标题】:How do I make OpenSSL write the RANDFILE on Windows Vista?如何让 OpenSSL 在 Windows Vista 上写入 RANDFILE?
【发布时间】:2011-01-14 20:13:15
【问题描述】:

当我跑步时:

openssl genrsa -out mykey.key 2048

我收到以下错误:

unable to write 'random state'
    e is 65537 (0x10001)

我的谷歌搜索表明这是某种 Vista 权限问题。如何让 Vista 编写此文件或如何配置 openssl 以绕过它?

【问题讨论】:

标签: windows-vista openssl


【解决方案1】:

根本问题是 OpenSSL 配置文件中的 RANDFILE 变量在 Windows 上被忽略。这是一个long-standing problem,自 OpenSSL v1.0a 版本起继续存在,无论目标 Windows 平台是 x86 还是 x64。

不过,有一个非常简单的解决方案。只需使用常规环境变量来设置 RANDFILE 值,例如

set RANDFILE=.rnd

因为这个值是短暂的,所以必须为每个新的 DOS 机器重新发布,或者在批处理文件中编写脚本。

【讨论】:

  • 这也解决了我在 Windows 7 上的问题。
【解决方案2】:

我发现这可能会有所帮助:Using OpenSSL what does "unable to write 'random state'" mean?

另外,这里:http://adamyoung.net/OpenSSL-unable-to-write-random-state

http://www.mail-archive.com/openssl-users@openssl.org/msg51344.html 这里有一个关于如何让它在 vista 中工作的建议。

找到cmd.exe所在的位置,右键以管理员身份运行

【讨论】:

  • 它不允许我更改 cmd.exe 的权限
【解决方案3】:

我有同样的问题,但对于 Windows 7。很容易解决,我创建了一个名为 HOME 的系统环境变量并将其设置为我想要我的 .rnd 文件所在的目录。这解决了这个问题,因为 OpenSSL 不知道我在哪里.rnd 文件是(因为我没有),如果要创建它,它不知道把它放在哪里。一旦我用一个目录设置了我的环境变量 HOME(c:\ 很好!)我在 OpenSSL 中重新运行了我的密钥生成,它直接工作了。为了验证,我检查了我创建的密钥,它有正确的内容。我还检查了我设置我的 HOME 环境变量的目录,你瞧,一个 .rnd 文件就在那里!希望这可以帮助某人:-)

【讨论】:

    【解决方案4】:

    HOME 变量添加到您的环境变量中。

    【讨论】:

      【解决方案5】:

      问题是脚本缺少某些访问权限或找不到文件。

      解决办法:

      创建一个名为 RANDFILE 和值 %USERPROFILE%.rnd

      的系统变量

      注意 %USERPROFILE%,是一个系统变量,它会自动插入您的用户配置文件的路径。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-12-14
        • 2017-02-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-12
        相关资源
        最近更新 更多