Windows vista 如何让OpenSSL在Windows Vista上编写文件?

Windows vista 如何让OpenSSL在Windows Vista上编写文件?,windows-vista,openssl,Windows Vista,Openssl,当我跑步时: openssl genrsa -out mykey.key 2048 我得到以下错误: unable to write 'random state' e is 65537 (0x10001) 我的谷歌搜索表明这是某种Vista权限问题。如何允许Vista编写此文件,或者如何配置openssl以绕过此文件?我发现这可能会有所帮助: 此外,这里: 这里有一个关于如何让它在vista中工作的建议 找到cmd.exe的位置,右键单击并以管理员身份运行将HOME变量添加到环境变量

当我跑步时:

openssl genrsa -out mykey.key 2048
我得到以下错误:

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

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

我发现这可能会有所帮助:

此外,这里:

这里有一个关于如何让它在vista中工作的建议


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

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

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

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

set RANDFILE=.rnd

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

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

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

解决方案:

创建一个名为RANDFILE且值为%USERPROFILE%.rnd的系统变量


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

它不允许我更改cmd.exe的权限。这也解决了我在Windows 7上的问题。的可能重复项