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