web-dev-qa-db-ja.com

sslモジュールを有効にしてssl証明書を設定すると、Apache 2.4.9が失敗する

Apacheは、ssl証明書を設定しようとした後、次のエラーをスローします。

[ssl:emerg] [pid 30907] AH02572: Failed to configure at least one certificate and key for localhost:443
[ssl:emerg] [pid 30907] SSL Library Error: error:140A80B1:SSL routines:SSL_CTX_check_private_key:no certificate assigned
[ssl:emerg] [pid 30907] AH02312: Fatal error initialising mod_ssl, exiting.

MAC OS:Yosemite、PHP 5.5.20、Apache 2.4.9を使用しています。

これらの手順に従って、( http://www.akadia.com/services/ssh_test_certificate.html )から私のssl証明書を生成しました

cd /etc/Apache2/
Sudo mkdir certs                                        
cd certs                                                
Sudo openssl genrsa -des3 -out server.key 1024          
Sudo openssl req -new -key server.key -out server.csr

  Country Name (2 letter code) [GB]:US
  State or Province Name (full name) [Berkshire]:California 
  Locality Name (eg, city) [Newbury]:LA
  Organization Name (eg, company) [My Company Ltd]:Company
  Organizational Unit Name (eg, section) []:
  Common Name (eg, your name or your server's hostname) []:dev.test.local
  Email Address []:[email protected]
  Please enter the following 'extra' attributes
  to be sent with your certificate request
  A challenge password []:
  An optional company name []:

Sudo cp server.key server.key.org     
Sudo openssl rsa -in server.key.org -out server.key
Sudo openssl x509 -req -days 730 -in server.csr -signkey server.key -out server.crt  

次に、Apache構成ファイル用に次の設定を行います。

etc/Apache2/httpd.conf:

LoadModule ssl_module libexec/Apache2/mod_ssl.so
LoadModule socache_shmcb_module libexec/Apache2/mod_socache_shmcb.so
Include /private/etc/Apache2/extra/httpd-ssl.conf

etc/Apache2/extra/httpd-ssl.conf:

Listen 443
SSLPassPhraseDialog  builtin
<VirtualHost _default_:443>
SSLEngine on
Mutex sysvsem default # Added after seeing mutex issues for Apache 2.4, http://stackoverflow.com/questions/13969272/Apache-sslmutex-issue

etc/Apache2/extra/httpd-vhosts.conf:

<VirtualHost *:443>

    ServerName dev.test.local
    DocumentRoot "/Users/username/Sites/test/public"

    <Directory "/Users/username/Sites/test/public">
         Options Indexes FollowSymLinks MultiViews
         AllowOverride All
         Order allow,deny
         allow from all
    </Directory>

    SSLEngine on       
    SSLCertificateFile    /etc/Apache2/certs/server.crt
    SSLCertificateKeyFile /etc/Apache2/certs/server.key

</VirtualHost>

Apache config testを再起動して実行すると、問題がないように見えます。

Sudo apachectl restart
Sudo apachectl configtest
[Tue Jan 06 13:56:01.480270 2015] [so:warn] [pid 31636] AH01574: module php5_module is already loaded, skipping
Syntax OK

助けていただければ幸いです。必要に応じてさらに情報を提供させていただきます。

11
Lipika

私は同じ問題に出くわしました。今私はそれを解決しました。

含まれています

/private/etc/Apache2/extra/httpd-ssl.conf 

httpd.conf内。

したがって、「httpd-ssl.conf」に次のキーを設定する必要があります

SSLCertificateFile "path to your crt"
SSLCertificateKeyFile "path to your key"

お役に立てば幸いです。

4
Jeremy Zhu

MacOS High Sierraバージョン10.13.6にアップグレードした直後にこの問題に遭遇しました。 SSLを使用した仮想ホストは、アップグレード前は問題なく動作していました。次に、今日、Apache Webサーバーを起動しようとすると、次のエラーが発生しました。

[Fri Jul 20 10:51:06.021778 2018] [ssl:emerg] [pid 2236] AH02572: Failed to configure at least one certificate and key for work.localweb.com:80
[Fri Jul 20 10:51:06.022024 2018] [ssl:emerg] [pid 2236] SSL Library Error: error:140A80B1:SSL routines:SSL_CTX_check_private_key:no certificate assigned
[Fri Jul 20 10:51:06.022037 2018] [ssl:emerg] [pid 2236] AH02312: Fatal error initialising mod_ssl, exiting.
AH00016: Configuration Failed

私のApacheバージョンを確認してください。現在は2.4.33です。どうやらこのバージョンでは、SSLCertificateFileおよびSSLCertificateKeyFileエントリを仮想ホスト自体に配置する必要があります。そこで、extra/httpd-ssl.confからエントリをコピーして、構成したすべてのSSL仮想ホストに配置しました。

<VirtualHost *:443>
  ServerAdmin [email protected]
  ServerName work.localweb.com
  SSLCertificateFile "/private/etc/Apache2/server.crt"
  SSLCertificateKeyFile "/private/etc/Apache2/server.key"
  ......
</VirtualHost>

その後、起動が再び機能します。

3
GJN

Apache 2.4.33にアップデートした後、同じエラーが発生しました。 SSLCertificateFileSSLCertificateKeyFile<VirtualHost>ブロック内にある必要がありますが、以前はそうでなかったようです。

2
Coder

私も同じ問題を抱えていました。私の場合、他の人の一部が述べたように、extra/httpd-ssl.confも含めました。上記のように、このファイルにエントリがあることを確認してください

SSLCertificateFile "/usr/local/etc/Apache24/ssl.crt/mydomaincertificate.crt"

SSLCertificateKeyFile "/usr/local/etc/Apache24/ssl.key/myprivatekey.key"

同じエントリがメインドメインのextra/httpd-vhosts.confにありますが。また、httpd.confで「ServerName」エントリが証明書の名前と一致することを確認する必要がありました。

これはOPには役立たないが、SSLのセットアップ後にこのエラーを検索する私のような人に役立つかもしれない

1
Andrew

Apache 2.4.33にアップデートした後、この問題に遭遇しました。

そうしなければならなかった <VirtualHost></VirtualHost> httpd-vhosts.confファイルのブロック。私はこれを削除しました:

<VirtualHost *:443>
    ServerName "<your server name>"
    DocumentRoot "<your path>"
</VirtualHost>

apacheを再起動すると動作しました。

1
James Stewart

新しい訪問者を助けることを期待して。

ログファイルに同じエラー行がありました。

私の間違いは含めることでした

SSLEngine on

VirtualHostブロックの外、.confファイル、SSLProtocolSSLCipherSuiteSSLHonorCipherOrder...の一般的な値.

1
ondelettes