2010-02-09 87 views
16

当我运行:如何让OpenSSL在Windows Vista上编写RANDFILE?

openssl genrsa -out mykey.key 2048 

我得到以下错误:

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

我的谷歌搜索表明,这是某种形式Vista权限问题造成的。我怎样才能让Vista写这个文件,或者我如何配置openssl来解决它?

+0

可能的重复[使用openssl什么是“无法写入随机状态”的意思?](http://stackoverflow.com/questions/94445/using-openssl-what-does-unable-to-write-随机状态的意思) – jww 2014-08-13 12:59:11

回答

4

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

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

对于如何得到它在Vista这里工作http://www.mail-archive.com/[email protected]/msg51344.html的建议。

找到CMD.EXE的位置,单击右键并以管理员身份运行

+0

它不允许我更改cmd.exe的权限 – Iain 2010-02-09 14:36:21

+0

我以管理员身份运行 - 没有工作。 – Iain 2010-02-09 14:43:30

+0

我作为管理员运行,它的工作表示感谢! – 2011-09-30 05:20:08

0

一个HOME变量添加到您的环境变量。

58

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

虽然有一个令人愉快的简单解决方案。仅仅使用常规的环境VAR设置RANDFILE值,像

set RANDFILE=.rnd 

因为这个值是短暂的,它必须重新发布了每一个新的DOS窗口,或者在一个批处理文件脚本。

+3

这也解决了我在Windows 7上的问题。 – 2011-08-09 16:46:00

+1

谢谢Mr. Judoman – 2012-09-03 07:54:05

+0

是的,Windows 8.1。 – wchoward 2015-03-11 18:16:33

2

我有同样的问题,但对于Windows 7.很容易解决,我创建了一个称为HOME的系统环境变量,并将其设置为我想要我的.rnd文件的目录。这解决了问题,因为OpenSSL不知道在哪里我的.rnd文件是(因为我没有),如果它创建它,它不知道该把它放在哪里。只要我设置我的环境变量HOME与一个目录(C:\很好!)我重新在OpenSSL中的密钥生成,它的工作直截了当。为了验证,我检查了我创建的密钥并且它有适当的内容。我也检查了我设置我的HOME环境变量的目录,并且注意到一个.rnd文件被放在那里!希望这可以帮助某人:-)

0

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

解决办法:

名为RANDFILE和值%USERPROFILE%.rnd创建系统变量

通知的%USERPROFILE%,是一个系统变量自动插入您的用户个人资料的路径。

相关问题