如何让OpenSSL在Windows Vista上编写RANDFILE?

Iai*_*ain 17 openssl windows-vista

当我跑:

openssl genrsa -out mykey.key 2048
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

unable to write 'random state'
    e is 65537 (0x10001)
Run Code Online (Sandbox Code Playgroud)

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

小智 62

根本问题是Windows上忽略OpenSSL配置文件中的RANDFILE变量.这是一个长期存在的问题是继续存在的OpenSSL的版本1.0a版本,无论目标Windows平台是x86或x64.

但是,有一个非常简单的解决方案.仅使用常规环境变量来设置RANDFILE值

set RANDFILE=.rnd
Run Code Online (Sandbox Code Playgroud)

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

  • 这也解决了我在Windows 7上的问题. (3认同)

Joh*_*ker 4

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

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

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

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