서버의 관리자 섹션을 보호하기 위해 자체 서명 된 SSL 인증서를 생성하고 있으며 OpenSSL에서이 메시지를 계속받습니다.
'무작위 상태'를 쓸 수 없습니다
이것은 무엇을 의미 하는가?
이것은 우분투 서버에 있습니다. 최근의 보안 취약점을 해결하기 위해 libssl을 업그레이드했습니다 .
서버의 관리자 섹션을 보호하기 위해 자체 서명 된 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로 실행하여 정확히 무슨 일이 일어나고 있는지 볼 수 있습니다.
sudo
일을했고 효과가있었습니다. 그러나 .rnd
자체 서명 된 인증서를 작성한 후에도 $ HOME에 루트 가 소유 한 디렉토리 가 여전히있는 이유는 무엇입니까?
/var/www/.rnd
하고 이를 통해 해결할 수 있습니다 www-data
. ( /var/www
이 www-data
폴더는 대부분의 시스템에있는 홈 폴더 라고 가정합니다 .로 www-data
홈 폴더를 확인할 수 있습니다 cat /etc/passwd | grep www-data
)
이 질문은 Linux에 있지만 Windows에서는 동일한 문제가 있음을 알고 있습니다. "관리자 권한으로 실행"모드에서 명령 프롬프트를 시작해야 작동합니다. 그렇지 않으면 '무작위 상태'오류를 쓸 수 없습니다.
set RANDFILE=.rnd
실행 하기 전에 openssl
입니다.
$env:RANDFILE=".rnd"
이보다는 set RANDFILE=.rnd
.
Windows 플랫폼의 또 다른 문제는 관리자 권한으로 명령 프롬프트를 실행하고 있는지 확인하십시오!
이게 몇 번이나 물 렸는지 모르겠어요 ...
나는 Windows 서버에서 같은 것을 가지고있었습니다. 그런 다음 vars.bat
어느 것을 변경하여 알아 냈습니다 .
set HOME=C:\Program Files (x86)\OpenVPN\easy-rsa
처음부터 다시 실행하면 모든 것이 잘되어야합니다.
set HOME=.
$ 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 라이브러리를 사용하는 응용 프로그램은 엔트로피 소스를 지정하기위한 자체 구성 옵션을 제공합니다. 응용 프로그램과 함께 제공되는 설명서를 확인하십시오.
sudo chown user:user ~/.rnd
모든 것이 해결되었습니다.