2017-06-08 17 views
0

今日SSL証明書を取得しましたが、httpsを通じてWebサイトにアクセスできるようにSSL証明書をドメインに追加しようとしていますが、問題が発生しています。ApacheサーバーにSSLを追加する

私たちはWindows上で動作しているapacheサーバーを持っています。

設定はポート80には完全に機能しますが、ポート443を設定に追加するとすべてが機能しなくなります。私は、次のVirtualHostの設定を追加した

Listen 80 

Apacheを起動するとき、私は取得エラーは、私が行の下に次の行

Listen 443 

に追加した

The requested operation has failed. 

です

<VirtualHost _default_:443> 

    DocumentRoot "c:/path/to/website" 

    ServerName example.com 
    ServerAlias example.com www.example.com 

    SSLEngine on 

    SSLCertificateFile "c:/path/to/cert/cert.crt" 

    SSLCertificateKeyFile "c:/path/to/cert/key.key" 

    SSLCACertificateFile "c:/path/to/cert/bundle.ca-bundle" 

</VirtualHost> 

しかし、これを追加した後でApacheサーバーを起動すると、起動せずエラーが発生します。

私はコードをコメントアウトし、問題をListen 443行に絞り込んだ。これを追加する際に考慮していないことはありますか?

これらはerror.logファイル内の最後の3行

[Thu Jun 08 18:15:31.909142 2017] [mpm_winnt:notice] [pid 66428:tid 712] AH00422: Parent: Received shutdown signal -- Shutting down the server. 
[Thu Jun 08 18:15:47.209776 2017] [mpm_winnt:notice] [pid 67332:tid 620] AH00364: Child: All worker threads have exited. 
[Thu Jun 08 18:15:48.067933 2017] [mpm_winnt:notice] [pid 66428:tid 712] AH00430: Parent: Child process exited successfully. 

編集

ある。これは、私がどのようにあなたの知らないhttpd.exe -e debug

(OS 10013)An attempt was made to access a socket in a way forbidden by its access permissions. : AH00072: make_sock: could not bind to address [::]:443 
(OS 10013)An attempt was made to access a socket in a way forbidden by its access permissions. : AH00072: make_sock: could not bind to address 0.0.0.0:443 
AH00451: no listening sockets available, shutting down 
AH00015: Unable to open logs 
+0

Apacheを起動したときに表示されるエラーは何ですか? –

+0

私はそれが "操作が完了できませんでした"と信じています...私はちょうど家に帰ってきたので、私は家に詰まったのですぐにチェックします(早急な返信を期待していなかった!!) –

+0

いいえ問題は、また、エラーメッセージで質問を更新してください –

答えて

0

を実行しているからの応答でありますhttpd.confファイルは、おそらくあなたが削除された/偶然にいくつかの値を変更したように見えます。

まず、httpd.confファイルを復元し、SSL設定なしでサービスを開始するだけです。

新しいファイルですべてのSSL設定を区切ります。という名前の新しいファイルhttpd-ssl.confが良い名前である可能性があります。新しいファイルを含めるには、この行を追加するには、メインのhttpd.confの最後にその後

、:

# Secure (SSL/TLS) connections 
Include conf/httpd-ssl.conf 

/変更メイン設定で誤って何かを削除避けるために、このように良い練習をし、エラーの可能性のあるソースを制限すると、エラーが含まれる新しいファイルに関連することがわかります。

新しいのconf/httpdの-ssl.confのはこのような何か(標準設定)になります。

# HTTPS port 
Listen 443 

<VirtualHost _default_:443> 

# General setup for the virtual host 
DocumentRoot "C:/your_httpd_path/htdocs" 
ServerName www.example.com:443 
ServerAdmin [email protected] 
ErrorLog "C:/your_httpd_path/logs/error.log" 
TransferLog "C:/your_httpd_path/logs/access.log" 

# SSL Engine Switch: 
SSLEngine on 

# Server Certificates: 

SSLCertificateFile "c:/path/to/cert/cert.crt" 
SSLCertificateKeyFile "c:/path/to/cert/key.key" 
SSLCACertificateFile "c:/path/to/cert/bundle.ca-bundle" 

<FilesMatch "\.(cgi|shtml|phtml|php)$"> 
    SSLOptions +StdEnvVars 
</FilesMatch> 

<Directory "C:/your_httpd_path/cgi-bin"> 
    SSLOptions +StdEnvVars 
</Directory> 

CustomLog "C:/your_httpd_path/logs/ssl_request.log" \ 
      "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" 

</VirtualHost> 

あなたはhttpd.exe -eデバッグを使用してみましたか?おそらく、このモードで役に立つものを見つけることができます。

更新日: Aha!あなたはエラーがある!これは443のどこかに重複している可能性があります。

あなたのファイルをメモ帳++でチェックし、 "443"に一致するすべての一致を検索できますか?おそらく既に443が設定されていて、もう一度追加しようとしましたか?次のように1行だけ入力する必要があります。

Listen 443 

おそらくそのポートで実行されていますか?

TCP [::]:443    [::]:0     LISTENING 

が次に何か他のものは、あなたの443ポートで実行されている:あなたが何かを持っている場合は

netstat -na | findstr "443" 

:に確認してください。とにかく、httpd confを変更して4443のような他のポートを設定することができます。つまり、現在443を使用しているプロセスをkillすることができます。

+0

これは私がやっていたことです。リスン443行を追加すると失敗する –

+0

新しいファイルを作成し、それをメインのhttpd.confに含めることを提案してください。apacheインストールのパスを変更することを忘れないでください。ログと証明書を入力してもう一度お試しください。 –

+0

私は詳細で私の答えを更新しました。 –

関連する問題