使用OpenSSL,“无法写入’随机状态’”是什么意思?

使用OpenSSL,“无法写入’随机状态’”是什么意思?

Using OpenSSL what does “unable to write 'random state'” mean?

我正在生成一个自签名SSL证书来保护服务器的admin部分,并且不断从OpenSSL收到此消息:

unable to write 'random state'

这是什么意思?

这是在Ubuntu服务器上。 我已升级libssl以修复最近的安全漏洞。


实际上,发生这种情况的最常见原因似乎是您的主目录中的.rnd文件是由root而非您的帐户拥有的。快速修复:

1
sudo rm ~/.rnd

有关更多信息,这是OpenSSL FAQ中的条目:

Sometimes the openssl command line utility does not abort with a"PRNG not seeded" error message, but complains that it is"unable to write 'random state'". This message refers to the default seeding file (see previous answer). A possible reason is that no default filename is known because neither RANDFILE nor HOME is set. (Versions up to 0.9.6 used file".rnd" in the current directory in this case, but this has changed with 0.9.6a.)

因此,我将检查RANDFILE,HOME和写入文件系统中那些位置的权限。

如果一切似乎都正常,则可以尝试使用strace运行并查看到底发生了什么。


我知道这个问题是在Linux上,但是在Windows上我有同样的问题。原来,您必须在"以管理员身份运行"模式下启动命令提示符,它才能正常工作。否则,您将得到相同的结果:无法写入"随机状态"错误。


Windows平台上的另一个问题,请确保您以管理用户身份运行命令提示符!

我不知道这咬了我多少次...


显然,我需要以root用户身份运行OpenSSL,以使其具有对种子文件的权限。


我在Windows Server上也有同样的事情。然后我通过更改vars.bat来找出:

1
set HOME=C:\Program Files (x86)\OpenVPN\easy-rsa

然后从头开始重做,一切都应该没问题。


对我来说,问题是我的主目录中有.rnd,但它是root拥有的。删除它并重新发出openssl命令可以解决此问题。


您应该设置$ RANDFILE环境变量和/或创建$ HOME / .rnd文件。 (OpenSSL常见问题解答)。 (当然,您应该拥有该文件的权限。其他答案与此有关。但是首先,您应该拥有该文件及其引用。)

最高版本为0.9.6,OpenSSL将种子文件写入了当前目录中的" .rnd"文件中。在0.9.6a版本中,您没有默认的种子文件。 OpenSSL 0.9.6b及更高版本的行为与0.9.6a相似,但如果未设置环境变量,则Windows系统上的HOME将使用默认值" C:"。

如果默认的种子文件不存在或太短,则可能会出现" PRNG not seeded"错误消息。

$ RANDFILE环境变量和$ HOME / .rnd仅由OpenSSL命令行工具使用。使用OpenSSL库的应用程序提供了自己的配置选项来指定熵源,请查看应用程序随附的文档。


推荐阅读

    纯命令行linux服务器?

    纯命令行linux服务器?,密码,服务,系统,命令,终端,地址,百度,情况,状态,公共,

    linux下写入磁盘命令?

    linux下写入磁盘命令?,系统,管理,信息,情况,设备,电脑,命令,磁盘,数据,目录,L

    检查linux服务器命令?

    检查linux服务器命令?,系统,信息,状态,情况,时间,工具,网络,环境,服务,电脑,

    linux快速写入命令?

    linux快速写入命令?,地址,命令,生产,资料,数据,单位,文件,文本,控制台,字符

    linux命令进程状态?

    linux命令进程状态?,系统,状态,进程,命令,数据,管理,软件,名称,信息,参数,Lin

    linux状态监控命令?

    linux状态监控命令?,系统,情况,工具,状态,信息,实时,环境,命令,标准,分析,Lin

    linux网卡状态命令?

    linux网卡状态命令?,系统,网络,电脑,信息,状态,地址,设备,工具,技术指标,网

    linux服务器域名命令?

    linux服务器域名命令?,地址,信息,系统,网络,服务,环境,名称,网站,管理,电脑,l

    linux服务器命令框?

    linux服务器命令框?,系统,情况,状态,信息,数据,软件,指标,服务,在线,工具,lin

    linux写入退出命令?

    linux写入退出命令?,档案,状态,时间,信息,命令,环境,名字,电脑,编辑,文件,lin

    服务器linux命令教程?

    服务器linux命令教程?,系统,地址,密码,网络,设备,工作,服务,标准,连续,管理,

    linux服务器分区命令?

    linux服务器分区命令?,系统,管理,信息,设备,时间,命令,基础,首次,平均,情况,l

    文件写入linux命令?

    文件写入linux命令?,文件,命令,状态,系统,名称,时间,首次,数据,数字,内容,在l

    linux服务器上传命令?

    linux服务器上传命令?,服务,软件,平台,数据,工具,系统,手机,电脑,设备,官网,

    linux网络服务器命令?

    linux网络服务器命令?,地址,网络,系统,名称,信息,工具,状态,中心,灵活,基础,l

    linux网络服务器命令?

    linux网络服务器命令?,地址,网络,系统,名称,信息,工具,状态,中心,灵活,基础,l

    linux下文件写入命令?

    linux下文件写入命令?,系统,信息,文件,名字,电脑,软件,目录,命令,内容,指令,l

    linux服务器基本命令?

    linux服务器基本命令?,地址,系统,设备,网络,工作,标准,信息,电脑,命令,密码,l

    linux服务器下载命令?

    linux服务器下载命令?,服务,密码,系统,档案,工具,网络,公共,百度,地址,认证,l