我正在生成一个自签名的SSL证书来保护我的服务器的管理部分,我不断从OpenSSL获取此消息:
无法写'随机状态'
这是什么意思?
这是在Ubuntu服务器上 . 我已升级libssl以修复the recent security vulnerability .
我正在生成一个自签名的SSL证书来保护我的服务器的管理部分,我不断从OpenSSL获取此消息:
无法写'随机状态'
这是什么意思?
这是在Ubuntu服务器上 . 我已升级libssl以修复the recent security vulnerability .
7 回答
对我来说问题是我在我的主目录中有.rnd但它由root拥有 . 删除它并重新发出openssl命令修复了这个问题 .
显然,我需要以root身份运行OpenSSL才能获得播种文件的权限 .
您应该设置$ RANDFILE环境变量和/或创建$ HOME / .rnd文件 . (OpenSSL FAQ) . (当然,你应该拥有该文件的权利 . 其他人的答案就是这个 . 但首先你应该有文件和对它的引用 . )
最高版本0.9.6 OpenSSL在文件“.rnd”的当前目录中编写了种子文件 . 在版本0.9.6a,您没有默认的种子文件 . OpenSSL 0.9.6b及更高版本的行为与0.9.6a类似,但如果尚未设置环境变量,则Windows系统上的HOME将使用默认值“C:\” .
如果默认种子文件不存在或太短,可能会出现“PRNG not seded”错误消息 .
$ RANDFILE环境变量和$ HOME / .rnd仅由OpenSSL命令行工具使用 . 使用OpenSSL库的应用程序提供了自己的配置选项来指定熵源,请查看随应用程序提供的文档 .
Windows平台上的另一个问题是,确保以管理用户身份运行命令提示符!
我不知道这次咬了我多少次......
我在Windows服务器上有同样的事情 . 然后我想通过改变
vars.bat
来解决这个问题:然后重新开始,一切都应该没问题 .
我知道这个问题在Linux上,但在Windows上我遇到了同样的问题 . 事实证明,您必须在“以管理员身份运行”模式下启动命令提示才能使其正常工作 . 否则你会得到相同的:无法写入“随机状态”错误 .
实际上,发生这种情况的最常见原因似乎是您的主目录中的.rnd文件由root而不是您的帐户拥有 . 快速修复:
有关更多信息,请参阅OpenSSL FAQ中的条目:
所以我会检查RANDFILE,HOME和权限,以便写入文件系统中的那些位置 .
如果一切似乎都井然有序,你可以尝试使用strace运行,看看究竟发生了什么 .