[openssl] OpenSSL을 사용하면 ” ‘무작위 상태’를 쓸 수 없습니다”는 무엇을 의미합니까?

서버의 관리자 섹션을 보호하기 위해 자체 서명 된 SSL 인증서를 생성하고 있으며 OpenSSL에서이 메시지를 계속받습니다.

‘무작위 상태’를 쓸 수 없습니다

이것은 무엇을 의미 하는가?

이것은 우분투 서버에 있습니다. 최근의 보안 취약점을 해결하기 위해 libssl을 업그레이드했습니다 .



답변

실제로,이 문제가 발생하는 가장 일반적인 이유는 홈 디렉토리의 .rnd 파일이 계정이 아닌 루트가 소유하고 있기 때문입니다. 빠른 수정 사항 :

sudo rm ~/.rnd

자세한 내용은 OpenSSL FAQ 의 항목입니다 .

때때로 openssl 명령 행 유틸리티가 “PRNG not seeded”오류 메시지와 함께 중단되지 않지만 “random state”를 쓸 수 없음을 불평합니다. 이 메시지는 기본 시드 파일을 나타냅니다 (이전 답변 참조). 가능한 이유는 RANDFILE이나 HOME이 설정되어 있지 않기 때문에 기본 파일 이름이 알려져 있지 않기 때문입니다. (이 경우 최대 0.9.6 버전은 현재 디렉토리에서 “.rnd”파일을 사용했지만 0.9.6a로 변경되었습니다.)

따라서 RANDFILE, HOME 및 파일 시스템의 해당 위치에 쓸 수있는 권한을 확인합니다.

모든 것이 정상인 것처럼 보이는 경우 strace로 실행하여 정확히 무슨 일이 일어나고 있는지 볼 수 있습니다.


답변

이 질문은 Linux에 있지만 Windows에서는 동일한 문제가 있음을 알고 있습니다. “관리자 권한으로 실행”모드에서 명령 프롬프트를 시작해야 작동합니다. 그렇지 않으면 ‘무작위 상태’오류를 쓸 수 없습니다.


답변

Windows 플랫폼의 또 다른 문제는 관리자 권한으로 명령 프롬프트를 실행하고 있는지 확인하십시오!

이게 몇 번이나 물 렸는지 모르겠어요 …


답변

분명히 시드 파일에 대한 권한을 갖기 위해 OpenSSL을 루트로 실행해야했습니다.


답변

나는 Windows 서버에서 같은 것을 가지고있었습니다. 그런 다음 vars.bat어느 것을 변경하여 알아 냈습니다 .

set HOME=C:\Program Files (x86)\OpenVPN\easy-rsa

처음부터 다시 실행하면 모든 것이 잘되어야합니다.


답변

내 문제는 내 홈 디렉토리에 .rnd가 있지만 루트가 소유하고 있다는 것입니다. 그것을 삭제하고 openssl 명령을 다시 발행하면이 문제가 해결되었습니다.


답변

$ RANDFILE 환경 변수를 설정하거나 $ HOME / .rnd 파일을 작성해야합니다. ( OpenSSL FAQ ). (물론, 당신은 그 파일에 대한 권리를 가져야합니다. 다른 사람들의 대답은 그것에 관한 것입니다. 그러나 먼저 파일과 그에 대한 참조가 있어야합니다.)

버전 0.9.6까지 OpenSSL은 “.rnd”파일의 현재 디렉토리에 시드 파일을 썼습니다. 버전 0.9.6a에는 기본 시딩 파일이 없습니다. OpenSSL 0.9.6b 이상은 0.9.6a와 유사하게 작동하지만 환경 변수가 설정되지 않은 경우 Windows 시스템에서 HOME에 기본값 “C : \”를 사용합니다.

기본 시딩 파일이 없거나 너무 짧은 경우 “PRNG not seeded”오류 메시지가 발생할 수 있습니다.

$ RANDFILE 환경 변수 및 $ HOME / .rnd는 OpenSSL 명령 행 도구에서만 사용됩니다. OpenSSL 라이브러리를 사용하는 응용 프로그램은 엔트로피 소스를 지정하기위한 자체 구성 옵션을 제공합니다. 응용 프로그램과 함께 제공되는 설명서를 확인하십시오.