最近(可能是在 yum 更新某些内容之后),我的一台运行 Apache2.4.37 的 CentOS7 服务器开始出现以下错误。
apachectl configtest
(38)Function not implemented: AH00141: Could not initialize random number generator
htpasswd -c -m ./htpasswd test
htpasswd: Unable to generate random bytes: Function not implemented
显然随机数生成器存在一些问题,但我从未见过这个问题,也不知道它是什么。过去几天我一直在谷歌搜索,但只找到几个类似的问题没有答案。我确认了这一点,它确实/dev/random
存在/dev/urandam
,而且似乎可以正常工作。
我查看了 Apache 和 htpasswd 的源代码,并推测apr_generate_random_bytes
apr 下的 misc/unix/rand.c 中的函数失败了。这可能的原因是什么?