Apache2 SSL 證書錯誤
我買了一個證書。在檢查域。他們給了我兩個文件**.crt和.ca-bundle和.key**。我將它們移至“/etc/ssl/g/”。我使用“a2enmod ssl”啟用了 SSL,並使用“sudo service apache2 restart”重新啟動了 apache,直到那時沒有錯誤。
然後我編輯了 default-ssl.conf:
<VirtualHost *:443> ServerName mrgrimod.de DocumentRoot "/var/www/html" SSLEngine on SSLCertificateFile /etc/ssl/g/g.crt SSlCertificateKeyFile /etc/ssl/g/g.key </VirtualHost>
然後我嘗試使用“sudo service apache2 restart”重新啟動 apache,但它無法重新啟動並溢出該錯誤:
Job for apache2.service failed. See 'systemctl status apache2.service' and 'journalctl -xn' for details.
apache 錯誤日誌包含以下幾行:
Fri Mar 30 17:03:50.143429 2018] [ssl:error] [pid 10598:tid 3074262784] AH02579: Init: Private key not found [Fri Mar 30 17:03:50.143530 2018] [ssl:error] [pid 10598:tid 3074262784] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag [Fri Mar 30 17:03:50.143557 2018] [ssl:error] [pid 10598:tid 3074262784] SSL Library Error: error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error [Fri Mar 30 17:03:50.143578 2018] [ssl:error] [pid 10598:tid 3074262784] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag [Fri Mar 30 17:03:50.143599 2018] [ssl:error] [pid 10598:tid 3074262784] SSL Library Error: error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error (Type=RSA) [Fri Mar 30 17:03:50.143620 2018] [ssl:error] [pid 10598:tid 3074262784] SSL Library Error: error:04093004:rsa routines:OLD_RSA_PRIV_DECODE:RSA lib [Fri Mar 30 17:03:50.143640 2018] [ssl:error] [pid 10598:tid 3074262784] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag [Fri Mar 30 17:03:50.143660 2018] [ssl:error] [pid 10598:tid 3074262784] SSL Library Error: error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error (Type=PKCS8_PRIV_KEY_INFO) [Fri Mar 30 17:03:50.143674 2018] [ssl:emerg] [pid 10598:tid 3074262784] AH02311: Fatal error initialising mod_ssl, exiting. See /var/log/apache2/error.log for more information [Fri Mar 30 17:03:50.143704 2018] [ssl:emerg] [pid 10598:tid 3074262784] AH02564: Failed to configure encrypted (?) private key server1.server1.de:443:0, check /etc/ssl/ssl.key/server.key
您可以在重新啟動服務之前使用該命令
apachectl -t
檢查任何語法錯誤。如果沒有發現錯誤apache
,該命令應該輸出。Syntax OK
.conf
在我們確定錯誤所在之前,您應該包含有關您的文件的更多詳細資訊。無論如何,這是啟用 SSL 支持的配置範例:
<VirtualHost *:443> ServerName example.com DocumentRoot "/var/www/html" SSLEngine on SSLCertificateFile /etc/httpd/ssl/mycert.pem SSlCertificateKeyFile /etc/httpd/ssl/mycert.pem SSLProtocol ALL -SSLv2 -SSLv3 SSLHonorCipherOrder On SSLCipherSuite HIGH:!aNULL:!MD5 </VirtualHost>
要啟用 SSL,配置文件必須至少包含以下選項:
SSLEngine On:開啟對 SSL 的支持。
SSLCertificateFile:您提供的簽名證書的位置。
SslCertificateKeyFile:在您的系統上生成的密鑰文件。
此外,許多瀏覽器需要一種方法來證明對您站點的請求是合理的,即使用配置選項包含鏈文件 - 稱為 bundle 的文件
SSLCertificateChainFile
我建議以下參考:Apache how-to:https ://httpd.apache.org/docs/2.4/en/ssl/ssl_howto.html
要驗證您的證書,您可以使用以下命令並檢查 Cert 的模數和密鑰文件的結果,它必須相同。
openssl x509 -noout -modulus -in /etc/ssl/g/g.crt
openssl rsa -noout -modulus -in /etc/ssl/g/g.key
此外,您可以檢查目錄 /etc/ssl/g/ 上的文件權限只是為了測試您可以 chmod -R 777 /etc/ssl/g 內容並重新啟動 apache 服務