2012-02-21 1 views
29

Nginx에서 SSL을 설정하려고합니다. 그것은 작동하지 않으며, nginx가 컴파일 된 OpenSSL 라이브러리에서 전달되는 오류 로그에 다음 오류가 표시됩니다. 그 라이브러리가 뭔지 모르겠지만, 버전 0.8.54의 nginx이고, 우분투 리눅스에서 apt-get을 사용하여 설치했습니다.Nginx 오류 로그에 "SSL_CTX_use_PrivateKey_file" "비밀번호를 가져 오는 데 문제가 있습니까"라는 내용이 표시됩니까?

2012/02/21 07:06:33 [emerg] 4071#0: 
SSL_CTX_use_PrivateKey_file("/exequias/certs/exequias.com.key") failed (SSL: 
error:0906406D:PEM routines:PEM_def_callback:problems getting password error: 
0906A068:PEM routines:PEM_do_header:bad password read error:140B0009:SSL routines: 
SSL_CTX_use_PrivateKey_file:PEM lib) 

개인 키 파일의 파일 사용 권한이 nginx가 파일을 읽을 수 없도록합니다. openssl rsa으로 생성 된 RSA 비공개 키입니다.

어떤 아이디어가 원인 일 수 있습니까?

답변

17

알 겠어 ... nginx와 함께 사용되는 개인 키 파일은 이 아니야에 암호가 있어야합니다. 나는 암호문을 제거하고 효과가 있었다.

+0

passhprase를 제거하는 방법? – crossle

+0

기억이 안납니다 -'openssl'을 사용하여 새로운 개인 키를 생성했을 수도 있고, 암호 문구를 사용하지 않아도됩니다. –

+0

감사합니다. 나는 passhprase를 기억합니다. – crossle

46

키 암호 구문 제거 : 그들은 인증서와 키가 함께있는 경우

openssl rsa -in key.pem -out newkey.pem 

을 :

openssl rsa -in mycert.pem -out newcert.pem 
openssl x509 -in mycert.pem >>newcert.pem 

출처 : http://www.madboa.com/geek/openssl/#key-removepass

+2

고마워요! 나는 R'lyeh에 있었다. 넌 내 정신을 구 했어. – divs1210

+1

당신을 환영합니다 :-) 나는 당신 말 들었어요. 이 답변을 작성한 지 2 년이되었는데 이제는 이것에 대해 기억하지 못합니다. D #insanityrealized –

+0

첫 번째 명령을 보내 주셔서 감사합니다. 이제 모든 것이 작동합니다! – Aminos

1

문제는 오래된 조금 지금, 실제로 nginx를 적어도 버전 1.2 이후 시작시 묻는 암호를 지원합니다. 그러나이 기능은 debian에서 최신 버전 인 nginx 1.6 버전 8에서 제거 되었기 때문에 여전히 관련이 있습니다. 그 이유는 passphrase 입력이 nginx의 systemd 스크립트에 구현되지 않았고 아파치 용 이었기 때문입니다. 수동으로 nginx를 시작하는 것은 간단하게 작동하며, 수동 개입이 필요하기 때문에 문제가되지 않습니다. 여기서는 systemd를 사용하지 않습니다.

참조 : https://forum.nginx.org/read.php?2,262900,262931#msg-262931

4

당신은 암호로가 .crt 파일을 생성 할 수 있으므로이

server { 
    ssl_password_file /path-to-your-passphrase/ssl.pass; 
} 

같은 Nginx에의 conf에있는 당신의 .KEY에 같은 암호와가 .crt 파일을 지정해야하기 때문에 Nginx Doc

를 참조하거나 당신이 당신의 인증서 파일의 암호가 필요하지 않은 경우 단지 다음과 같은 파일을 생성 할 수 ssh-keygen 도구를 사용

0123을
ssh-keygen -t rsa 
+0

아마도 이것은 nginx> = 1.7.3 –

+0

에서 작동합니다. @JosephCoco 네가 옳다. 내 대답을 편집해야합니다. – sudoz

+0

완벽 : 엄지 손가락 : – Will