Ubuntu Server 18.04에서 OpenVPN을 사용하여 VPN 서버를 설정하려고 하는데 EasyRSA를 사용하여 PKI CA를 구축하고 싶습니다.
따라서 루트로 연결되어 있는 동안 /etc/openvpn/easy-rsa
. ./clean-all
및 에서는 모든 것이 잘 작동 ./build-dh
하지만 실행하려고 하면 ./pkitool --initca
다음 오류가 발생합니다.
Can't load /root/.rnd into RNG
140171234709952:error:2406F079:random number generator:RAND_load_file:Cannot open file:../crypto/rand/randfile.c:88:Filename=/root/.rnd
openssl 구성 파일( /etc/openvpn/easy-rsa/openssl-1.0.0.cnf
)에서 다음 줄에 도달하려고 시도하는 이유를 나타내는 다음 줄을 찾았습니다 /root/.rnd
.
RANDFILE = $ENV::HOME/.rnd
내가 온라인에서 읽고 이해한 바에 따르면 .rnd
openssl이 난수를 생성하는 데 사용하는 시드입니다. 이상한 점은 이 오류가 발생하더라도 RSA 개인 키가 스크립트에 의해 생성된다는 것입니다. 씨앗이 부족하기 때문에 무작위가 아닌 것이 두렵습니다.
그래서 내 문제는 이 파일이 내 시스템에 존재하지 않고, 내 유일한 다른 사용자가 아닌 /root/
에 없으며, 아무것도 반환하지 않는다는 것입니다. 아무것도 반환하지 않습니다./home/user/
find / -name ".rnd"
find / -iname "*.rnd"
그리고 나는 그것을 어떻게 만들 수 있는지조차 모릅니다. 아니면 내가 이것을 모두 잘못 이해한 것인지도 모릅니다.
답변1
이 오류가 발생하더라도 RSA 개인 키는 스크립트에 의해 생성됩니다.
파일이 존재할 필요는 없습니다. OpenSSL은 처음 이후에는 자체적으로 생성합니다.
씨앗이 부족하기 때문에 무작위가 아닌 것이 두렵습니다.
OS는 또는 /dev/urandom
같은 시스템 호출을 통해 자체 RNG를 사용하여 시드를 제공합니다 . 추가로 아무것도 제공할 필요가 없습니다.getentropy()
CryptGenRandom()
나는 이 파일이 OS에 좋은 CSPRNG가 부족했던 시절, 아마도 Linux의 품질이 좋지 않은 것으로 간주되었을 때(그리고 "엔트로피 계산"으로 인해 매우 느리게 데이터를 생성했던) .rnd
시절부터 남은 것이라고 추측합니다 . 이제는 더 이상 그렇지 않으며 homedir의 일부 파일에 저장된 시드에 전적으로 의존하는 것은 실제로/dev/urandom
/dev/random
더 적은안전한.
답변2
예상 경로에 하나 생성
cd ~/; openssl rand -writerand .rnd
답변3
OpenSSL은 처음 이후에는 자체적으로 생성합니다.
실제로는 그렇지 않습니다. 스크립트를 몇 번 실행해도, 명령을 직접 사용하려고 해도 openssl rand
절대 생성되지 않습니다.
하지만 당신 말이 옳았습니다. 서로 다른지 확인하기 위해 두 개의 키를 생성했습니다.
도움을 주셔서 감사합니다.
답변4
/etc/ssl/openssl.conf에서 RANDFILE 줄을 확인하세요. 더