首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何让OpenSSL在Windows Vista上编写RANDFILE?

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

Stack Overflow用户
提问于 2010-02-09 22:25:12
回答 4查看 35.3K关注 0票数 17

当我运行时:

代码语言:javascript
复制
openssl genrsa -out mykey.key 2048

我得到以下错误:

代码语言:javascript
复制
unable to write 'random state'
    e is 65537 (0x10001)

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

EN

回答 4

Stack Overflow用户

发布于 2010-06-17 08:26:53

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

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

代码语言:javascript
复制
set RANDFILE=.rnd

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

票数 62
EN

Stack Overflow用户

发布于 2010-02-09 22:31:14

我发现这个可能会有帮助: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/openssl-users@openssl.org/msg51344.html

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

票数 4
EN

Stack Overflow用户

发布于 2013-05-01 21:23:29

除了Windows7,我也遇到了同样的问题。很容易解决的是,我创建了一个名为HOME的系统环境变量,并将其设置为.rnd文件所在的目录。这解决了这个问题,因为OpenSSL不知道我的.rnd文件在哪里(因为我没有),如果要创建它,它也不知道把它放在哪里。只要我用目录设置了我的环境变量HOME (c:\就可以了!)我在OpenSSL中重新运行了我的密钥代,它立刻就工作了。为了验证,我检查了我创建的密钥,它有正确的内容。我还检查了设置HOME环境变量的目录,结果发现那里有一个.rnd文件!希望这对某些人有帮助:-)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2229723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档