openssl 中的 ~/.rnd 文件是什么以及如何用它生成一个新的私钥?

Bla*_*ard 8 openssl ssl-certificate

当我尝试运行以下命令来发出一个新的私钥时,我用它来通过 SSL 托管我的 Web 应用程序:

openssl genrsa -out example.key 2048
Run Code Online (Sandbox Code Playgroud)

出现以下错误:

unable to write 'random state'  
e is 65537 (0x10001)
Run Code Online (Sandbox Code Playgroud)

在网上挖掘之后,我找到了一个解决方案,它指示您删除该~/.rnd文件,该文件可能归root.

sudo rm ~/.rnd
Run Code Online (Sandbox Code Playgroud)

但是,我发现~/.rnd如果您openssl使用sudo.

所以我的问题是:

  • 它是什么~/.rnd以及为什么它存在于我的环境中?

  • 哪个是发布新私钥的更好方法?

wom*_*ble 11

~/.rnd文件由国有root如果你曾经运行一个命令,修改~/.rndroot通过在非登陆状态须藤(即没有-i)。至于~/.rnd文件是什么,它包含 OpenSSL 随机数生成器的种子值。我可以找到关于它的最低最差文档是RAND_read_file(3)手册页

  • fwiw,最新(“master”)版本的联机帮助页可在 https://www.openssl.org/docs/manmaster/man3/RAND_load_file.html 获得 (3认同)