我正在生成一个自签名SSL证书来保护我服务器的管理部分,我不断从OpenSSL收到此消息:
无法写'随机状态'
这是什么意思?
这是在Ubuntu服务器上.我已升级libssl以修复最近的安全漏洞.
实际上,发生这种情况的最常见原因似乎是主目录中的.rnd文件由root而不是您的帐户拥有.快速修复:
sudo rm ~/.rnd
有关更多信息,请参阅OpenSSL FAQ中的条目:
有时openssl命令行实用程序不会以"PRNG not seded"错误消息中止,但会抱怨它"无法写入'随机状态'".此消息引用默认种子文件(请参阅上一个答案).可能的原因是没有默认文件名是已知的,因为RANDFILE和HOME都没有设置.(在这种情况下,当前目录中的版本高达0.9.6使用了".rnd"文件,但这已经改变为0.9.6a.)
所以我会检查RANDFILE,HOME和权限,以便写入文件系统中的那些位置.
如果一切似乎都井然有序,你可以尝试使用strace运行,看看到底发生了什么.
我知道这个问题在Linux上,但在Windows上我遇到了同样的问题.事实证明,您必须在"以管理员身份运行"模式下启动命令提示才能使其正常工作.否则你会得到相同的:无法写入"随机状态"错误.
Windows平台上的另一个问题是,确保以管理用户身份运行命令提示符!
我不知道这次咬了我多少次......
显然,我需要以root身份运行OpenSSL才能获得播种文件的权限.
我在Windows服务器上有同样的事情.然后我想通过改变vars.bat
它是:
set HOME=C:\Program Files (x86)\OpenVPN\easy-rsa
然后重新开始,一切都应该没问题.
对我来说问题是我在我的主目录中有.rnd但它由root拥有.删除它并重新发出openssl命令修复了这个问题.