Apache SSL 오류 : 개인 키를 찾을 수 없습니다


8

우분투 14.04에서 아파치를 실행하고 SSL을 구현하려고합니다. 도움을 주시면 감사하겠습니다.

default-ssl.conf에는 다음이 있습니다.

SSLCertificateFile      /etc/apache2/ssl/domain.crt 
SSLCertificateKeyFile   /etc/apache2/ssl/domain.csr

아파치를 다시 시작할 때 /var/log/apache2/error.log의 오류 메시지는 다음과 같습니다.

[Sun Feb 01 19:31:06.443226 2015] [ssl:error] [pid 30927] AH02203: Init: Private key not found
[Sun Feb 01 19:31:06.443408 2015] [ssl:error] [pid 30927] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Sun Feb 01 19:31:06.443424 2015] [ssl:error] [pid 30927] SSL Library Error: error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 er$
[Sun Feb 01 19:31:06.443435 2015] [ssl:error] [pid 30927] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Sun Feb 01 19:31:06.443447 2015] [ssl:error] [pid 30927] SSL Library Error: error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error (Ty$
[Sun Feb 01 19:31:06.443458 2015] [ssl:error] [pid 30927] SSL Library Error: error:04093004:rsa routines:OLD_RSA_PRIV_DECODE:RSA lib
[Sun Feb 01 19:31:06.443468 2015] [ssl:error] [pid 30927] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Sun Feb 01 19:31:06.443479 2015] [ssl:error] [pid 30927] SSL Library Error: error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error (Ty$
[Sun Feb 01 19:31:06.443487 2015] [ssl:emerg] [pid 30927] AH02311: Fatal error initialising mod_ssl, exiting. See /var/log/apache2/error.log for more inf$

이 문제를 어떻게 해결 했습니까?
Srinivas

답변:


6

경고 : 인터넷에 개인 키를 게시하지 마십시오. 다른 컴퓨터, 워크 스테이션 등에 복사하지 마십시오. 가능한 한 개인 정보를 유지해야합니다.

SSLCertificateKeyFile에는 개인 키가 필요합니다. 이 키는 일반적으로 CSR 이전에 또는 동시에 생성됩니다. 다음을 포함하는 줄로 시작하는 파일을 검색하십시오.BEGIN PRIVATE KEY

CSR (인증서 서명 요청)은 인증서 서명을 요청할 때만 필요합니다. 그 후에는 버릴 수 있습니다.

개인 키를 분실 한 경우 새 개인 키를 생성 한 다음 새 CSR을 생성하고 CA (인증 기관)에 CSR에 다시 서명하도록 요청해야합니다.


1

여기 문제가 있습니다 :

SSLCertificateKeyFile   /etc/apache2/ssl/domain.csr

실수로 인증서 서명 요청 (CSR) 파일을 여기에 넣습니다. 대신 CSR을 생성하는 데 사용한 개인 키 파일을 넣어야합니다. 이 개인 키 파일은 비밀번호로 보호되어서는 안됩니다. 그렇지 않으면 Apache를 다시 시작할 때마다 비밀번호를 입력해야합니다.

다음 세대 세대의 이점을 위해 OpenSSL을 사용하여 CSR을 생성하는 방법에 대한 간단한 요약이 있습니다 ( 우분투 문서 에서 유용한 자습서를 참조하십시오 ).

1) 서버 키를 생성하십시오.

openssl genrsa -des3 -out server.key 2048

비밀번호를 지정해야합니다.

2) 암호가없는 개인 키를 만들려면 프롬프트가 표시되면 위에서 사용한 암호를 입력하십시오.

openssl rsa -in server.key -out server.key.insecure
mv server.key server.key.SECURE
mv server.key.insecure server.key

3) 비밀번호가없는 개인 키를 사용하여 CSR을 생성하십시오.

openssl req -new -key server.key -out mydomain.org.csr

"mydomain.org"는 도메인 일 수 있습니다. 대화식으로 몇 가지 질문에 대답해야합니다. 완료되면 mydomain.org.csr파일을 인증 기관에 보냅니다 . *.crt파일 또는 파일을 다시 가져옵니다 *.pem. 그들이 당신을 주었다고 가정 해 봅시다 mydomain.org.crt. 인증서로 비밀번호없이 비밀번호없는 키 파일을 키로 설치하십시오 (위치는 Ubuntu 14.04에 유효하며 다른 시스템의 다른 위치에있을 수 있습니다. Apache2 문서를 확인하십시오).

sudo cp mydomain.org.crt /etc/ssl/certs
sudo cp server.key /etc/ssl/private/mydomain.org.key

그리고 마지막으로 Apache2 구성을 편집하십시오 ( default-ssl.conf).

    SSLEngine on
    SSLCertificateFile      /etc/ssl/certs/mydomain.org.crt
    SSLCertificateKeyFile   /etc/ssl/private/mydomain.org.key

도움이 되었기를 바랍니다.


1

나는 누군가이 질문에 이미 답했다는 것을 알고 있지만,이 오류가 발생했을 때 나에게 무슨 일이 있었는지 다른 사람들에게 알리고 싶었다.

내 원인으로 실수로 인증서 번들에 SSLCertificateChainFile 대신 SSLCertificateFile이있었습니다. 이 오류는 계속 나타나고 루프를 던졌습니다. 개인 키가 잘못되었다고 계속 생각했습니다.


0

이 게시물이 오래되었다는 것을 알고 있지만 Google 검색에서 오류에 대한 첫 번째 링크 인 "초기 : 개인 키를 찾을 수 없음"이므로 더 추가해야한다고 생각했습니다.

나는 이것이 전에 일어난 것을 보았고 나쁜 개인 키로 판명되었습니다. strace를 사용하여 마지막 개인 키 아파치가로드하려고 시도했습니다. ssl 디렉토리와 httpd.conf에서 제거하면 문제없이 Apache가 다시 시작되었습니다.

잘못된 SSL 키 : -rw-r ----- 1 root 754974732 1.7K 1987 년 5 월 31 일 /var/cpanel/ssl/installed/keys/c129e_4ed23_b7c0d7f821952179fc8006506ab06b72.key

잘못된 키를 추적하는 데 사용되는 명령 : strace -f -v -s 1024 -o strace.log service httpd start

환경 : OS : CentSO 6.9 제어판 : cPanel 11.64 Apache 버전 2.2

tl;dr: Find the bad private key that Apache is trying to load and backup it up and remove it from Apache's configuration file.

이게 도움이 되길 바란다!


서버 결함에 오신 것을 환영합니다. 게시물에서 향상된 형식을 사용할 수 있습니다. 는 IS 나쁜 SSL 키 : ... 단락은 아마도 견적? 또한 TL; DR은 형식을 지정할 필요 가 없습니다 code. 기여해 주셔서 감사합니다.
나는 말한다 Reinstate Monica

0

나는 이것에 대해 내 바퀴를 조금 돌리고 있었지만 완전한 개인 키 파일이 있는지 확인하십시오. 내 두 줄이 누락되었습니다.

개인 키를 확인하는 명령은 다음과 같습니다.

openssl rsa -in /etc/httpd/certs/server.key -check

/etc/httpd/certs/server.key를 서버의 개인 키에 대한 전체 경로로 바꾸십시오. 모두 정상이면 다음과 같습니다.

RSA key ok

그것이 누군가와 btw에게 도움이되기를 바랍니다. 내 서버는 Apache / 2.4.6의 CentOS 7.6이었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.