无法将 /root/.rnd 加载到 RNG

Asm*_*sma 17 openssl client-certificates ssl-certificate

我想使用 Windows Open SSL 生成服务器证书。

当我运行此命令行时,出现此错误。我该怎么办?

命令

:
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
Run Code Online (Sandbox Code Playgroud)

错误:

Can't load ./.rnd into RNG 10504:error:2406F079:random number generator:RAND_load_file:Cannot open file:crypto\rand\randfile.c:98:Filename=./.rnd

我也尝试找到 openssl 配置文件,但不,我没有那个文件。

小智 38

尝试删除或注释RANDFILE = $ENV::HOME/.rnd/etc/ssl/openssl.cnf

  • 似乎很安全:[OpenSSL问题:“无法将./.rnd加载到RNG中”](https://github.com/openssl/openssl/issues/7754#issuecomment-444063355)。 (6认同)

DAB*_*DAB 17

我在 Ubuntu 18.04 上使用 OpenVPN Road Warrior 脚本时遇到了这个问题。

解决方案是手动创建文件,之后脚本完美运行。

首先cd到正确的目录。然后通过调用 openssl 自行创建文件,并告诉它使用rand生成随机字节并使用-writerand选项写入名为.rnd的文件,如下所示

cd /etc/openvpn/easy-rsa/pki
openssl rand -writerand .rnd
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅 openssl 手册页https://www.openssl.org/docs/man1.1.1/man1/openssl-rand.html

  • 这似乎是最简单的解决方案,对我有用!我不想修改我不太了解的配置文件。 (2认同)

Bid*_*tra 8

原因:“-rand”选项默认告诉您在操作系统中的某个位置使用随机文件 .rnd。由于用户问题使用不存在的 .rnd 文件!!!!

解决方法:如果.rnd 文件不存在,则添加-writerand 以写入。

例如:

root@CentOS:/usr/local/etc/openldap/private # openssl genrsa -rand -genkey -out cert.key 2048
Can't load -genkey into RNG
546983936:error:2406F079:random number generator:RAND_load_file:Cannot open file:/usr/src/crypto/openssl/crypto/rand/randfile.c:98:Filename=-genkey
Run Code Online (Sandbox Code Playgroud)

添加-writerand后

root@CentOS:/usr/local/etc/openldap/private # openssl genrsa -writerand -genkey -out cert.key 2048
Generating RSA private key, 2048 bit long modulus (2 primes)
...........................+++++
..............+++++
e is 65537 (0x010001)
root@CentOS:/usr/local/etc/openldap/private # 
Run Code Online (Sandbox Code Playgroud)

我自己也会再次遇到这个错误。当然,我会先检查 StackOverflow(R6000 哈哈)!