암호 문구없이 RSA 키를 생성 할 수 있습니까?


83

Rails 프로젝트를 위해 Apache2 및 Passenger과 협력하고 있습니다. 테스트 목적으로 자체 서명 SSL 인증서 를 작성하고 싶습니다 .

sudo openssl rsa -des3 -in server.key -out server.key.new

위의 명령을 입력하면

writing RSA key
Enter PEM pass phrase:

암호 문구를 입력하지 않으면 아래 오류가 발생합니다.

unable to write key
3079317228:error:28069065:lib(40):UI_set_result:result too small:ui_lib.c:869:Yo
u must type in 4 to 1024 characters
3079317228:error:0906406D:PEM routines:PEM_def_callback:problems getting passwor
d:pem_lib.c:111:
3079317228:error:0906906F:PEM routines:PEM_ASN1_write_bio:read key:pem_lib.c:382

사람이 개입하지 않고 스크립트가 HTTP 서버를 시작하는 pass phrase방법을 잘 모르겠 기 때문에을주지 않고 RSA 키를 생성 할 수 있습니까? /etc/init.d/httpd).


6
명령 행은 openssl기존 키를 암호화하도록 지시 합니다. 그것은 당신이 원하는 것 이외의 것 같습니다.
David Schwartz

비공개 키 비밀번호 문구를 비 대화식으로 얻도록 Apache httpd 구성 할 수 있습니다. mod_ssl에 대한 문서를 참조하거나 많은 경우 제공된 / 패키지 구성 파일의 주석을 참조하십시오. 그러나 이것은 일반적으로 개인 키를 암호화되지 않은 상태로 두는 것보다 안전하지 않습니다.
dave_thompson_085

답변:


88

자체 서명 된 인증서를 생성하는 경우 다음과 같이 하나의 명령으로 키와 인증서를 모두 수행 할 수 있습니다.

openssl req  -nodes -new -x509  -keyout server.key -out server.cert

아, 그리고 @MadHatter 가 깃발을 생략하는 것에 대한 그의 대답 에서 말한 것 -des3.


14
내가 여기에 노드 지시어가 있습니다. (개인 키의 DES 암호화 없음)
jorfus

38

오프두고 -des3있는 OpenSSL에 대한 지시가 server.key.new 암호화하는 플래그 (덧붙여 말하자면, 전혀 새로운 키를하지 않은, - 그것은 정확하게은 server.key와 같은의를 암호 변경에서만 온 / 오프 제거) .


21

openssl req로부터 명령 @ 톰 H 의해 답변 에서 자체 서명 된 인증서 만들기 위해 올바른 server.cert포함합니다. 암호가없는 RSA 개인 키 server.key:

openssl req -nodes -new -x509 -keyout server.key -out server.cert

작동 방식은 다음과 같습니다. 생략 -des3같이 @MadHatter 의해 답변은 암호없이 개인 키를 만들려면이 경우에 충분하지 않습니다. 그것은 이다 이 목적을 위해 충분한 openssl rsa@MadHatter과에 의해 참조 ( "개인 키를 변환") 명령 openssl genrsa( "개인 키를 생성") 명령. openssl req여기서 명령을 하지 마십시오 . 추가로 필요합니다 -nodes( "No DES encryption of server.keyplease!").


17

사용 -nodes이 옵션을, 예를 들면 다음 개인 키가 암호화되지 않습니다 지정된 경우, 매개 변수를 :

openssl \
    req \
    -nodes \
    -newkey rsa:2048 \
    -keyout www.example.com.key \
    -out www.example.com.csr \
    -subj "/C=DE/ST=NRW/L=Berlin/O=My Inc/OU=DevOps/CN=www.example.com/emailAddress=dev@www.example.com"

7

openssl을 통해 다시 실행하십시오.

먼저 암호로 키를 생성하십시오

그때 openssl rsa -in server.key -out server.key


이것은 우분투 16.04에서 작동하지 않습니다
sweetfa

3
이 답변은 요청한 것이 아니기 때문에 명령에 입력이 필요하고 키를 생성하지 않기 때문에 다운 투표했습니다.
Don

사용자는 이미 키 생성 방법을 알고 있습니다. 이 답변은 그 지식을 기반으로하며 새로 생성 된 키를 가져 와서 다시 전달하는 것이 좋습니다. openssl 따라서 요청 된 목표를 달성하십시오 : 암호 문구없이 키 생성.
darethas

나를 위해 작동 opensslGitBash에서 윈도우 10. 정보 주셔서 감사합니다.
Green

0

다음 명령을 사용하여 암호화없이 비밀번호가없는 개인 키 파일을 생성하십시오 . 마지막 매개 변수는 개인 키의 크기입니다.

openssl genrsa -out my-passless-private.key 4096

1
이것은 암호가 아닙니다. 완전하고 완전히 암호가 충분합니다.
dave_thompson_085

매개 변수의 위치를 ​​실험하고있었습니다. 이제 괜찮습니다. 마지막 두 매개 변수의 위치를 ​​변경하고 명령을 테스트했습니다.
nix

이제 암호화되지 않은 파일을 생성 합니다. 위치 인수 만있는 옵션은 무시됩니다. 파일을보십시오; 암호화되지 않았습니다. Replace 4096 -des3로 바꾸면 4096 -sillywombat여전히 작동하며 여전히 암호화되지 않은 동일한 형식을 생성합니다 (물론 다른 키 값). 암호가없는 암호화 된 개인 키 파일을 가질 수있는 방법은 없으며, 암호가없는 암호화되지 않은 파일에 대한 올바른 솔루션은 6 년 전에 제공되었습니다.
dave_thompson_085

네 말이 맞아 @ dave_thompson_085. 마지막 매개 변수는 명령에 영향을 미치지 않습니다. 답변을 업데이트했습니다. 암호로 보호 된 개인 키 파일이 아닌 암호화 된 base64로 인코딩되지 않습니다.
nix
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.