如何解决“在openssl中无法写入”随机状态“

同时使用此命令生成私钥

genrsa -out my-prvkey.pem 1024 

它抛出像下面的错误

  Loadind 'screen' into random state -done Generating RSA private key,1024 bit long modulus .........................................+++++++ ...........................+++++++++ unable to write 'random state' e is 65537 (0*10001) 

这在创build公共证书时会出现问题

我在Windows上运行这个命令

谁能帮我解决?

最快的解决scheme是:将环境variablesRANDFILE设置为可以写入“随机状态”文件的path(当然,检查文件访问权限)。 在您的命令提示符下:

 set RANDFILE=C:\MyDir\.rnd openssl genrsa -out my-prvkey.pem 1024 

更多解释:Windows上的OpenSSL尝试按以下顺序保存“随机状态”文件:

  1. 取自RANDFILE环境variables的path
  2. 如果设置HOME环境variables,则: $ {HOME} \。rnd
  3. C:\ RND

我敢肯定,在你的情况下,它最终试图将其保存在C:\。rnd (并失败,因为缺乏足够的访问权限)。 不幸的是,OpenSSL不会打印实际尝试在任何错误消息中使用的path。

也可能是您需要以pipe理员身份运行控制台。 在Windows 7上,启动控制台窗口时按住Ctrl + Shift

只需在命令行中input以下行:

 set RANDFILE=.rnd 

或者在Windows PowerShell中

 $env:RANDFILE=".rnd"