
어떤 이유로 Apache가 시작되지 않습니다. 서버 재부팅을 시도했지만 소용이 없었습니다. 새벽 2시쯤 됐는데 내 뇌가 튀겨졌어. 다음은 아파치 로그입니다. 이 문제를 일으키는 구성, 인증서 또는 키를 건드리지 않았으므로 무슨 일이 일어났는지 알 수 없습니다. 여기에 첫 번째 줄이 있지만 이는 가짜이지만 확인하기 위해 virtualhosts 파일을 지정한 정확한 위치에 키가 있습니다.
[Wed Mar 04 00:13:51.898515 2015] [ssl:error] [pid 4307] AH02203: Init: Private key not found
[Wed Mar 04 00:13:51.899365 2015] [ssl:error] [pid 4307] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Wed Mar 04 00:13:51.899381 2015] [ssl:error] [pid 4307] SSL Library Error: error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error
[Wed Mar 04 00:13:51.899391 2015] [ssl:error] [pid 4307] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Wed Mar 04 00:13:51.899402 2015] [ssl:error] [pid 4307] SSL Library Error: error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error (Type=RSA)
[Wed Mar 04 00:13:51.899413 2015] [ssl:error] [pid 4307] SSL Library Error: error:04093004:rsa routines:OLD_RSA_PRIV_DECODE:RSA lib
[Wed Mar 04 00:13:51.899422 2015] [ssl:error] [pid 4307] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Wed Mar 04 00:13:51.899432 2015] [ssl:error] [pid 4307] SSL Library Error: error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error (Type=PKCS8_PRIV_KEY_INFO)
가상 호스트:
# Optionally load the headers module:
#LoadModule headers_module modules/mod_headers.so
LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so
SSLCertificateFile /etc/ssl/certs/foobar.org.ssl.crt
SSLCertificateKeyFile /etc/ssl/private/foobar.org.ssl.key
SSLCertificateChainFile /etc/ssl/certs/sub.class1.server.ca.pem
SSLCACertificateFile /etc/ssl/certs/ca.pem
SSLCompression Off
SSLHonorCipherOrder On
SSLSessionCache shmcb:/etc/apache2/logs/ssl_gcache_data(512000)
SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS:!AES256
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
SSLSessionCacheTimeout 300
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName foobar.org
# ServerAlias foobar.org
DirectoryIndex index.html index.php
DocumentRoot /var/www/foobar.org/public_html/
LogLevel warn
ErrorDocument 404 /404.php
# ErrorDocument 500 /500.html
ErrorLog /var/www/foobar.org/log/error.log
CustomLog /var/www/foobar.org/log/access.log combined
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
Header always set Strict-Transport-Security "max-age=15768000;includeSubDomains"
</VirtualHost>
ls 명령 출력:
-rw-rw-r-- 1 brandon brandon 1767 Mar 4 00:02 foobar.org.ssl.key
-rw-r----- 1 root ssl-cert 1704 Apr 20 2013 ssl-cert-snakeoil.key
답변1
여기에는 몇 가지 중요한 문제가 있습니다. Apache가 내뿜는 오류는 개인 키가 유효한 ASN.1로 구문 분석되지 못했다는 것을 알려줍니다. 이는 키 어딘가에 공백과 같은 외부 데이터가 있음을 의미합니다. 둘째, 귀하의 권한이 너무 느슨합니다. 개인 키는 루트가 소유해야 하며 640 또는 -rw-r----과 유사한 권한이 있어야 합니다.
답변2
전송하는 동안 키 파일 인코딩을 변경했을 수 있습니다.
rm /etc/pki/tls/certs/your_server.key
cp /your_server.key /etc/pki/tls/certs/
service httpd start
답변3
chmod 600 ssl.key 명령을 통해 SSL 키 파일에 600 권한을 부여해야 합니다. 때로는 보안 정책으로 인해 이런 일이 발생했습니다. 권한을 변경하고 Apache 서비스를 시작하면 작동합니다.