web-dev-qa-db-ja.com

ポート443がすでに使用されている理由を特定するにはどうすればよいですか?

Windows7マシンでApache2.4.10を実行していて、SSL接続を追加しようとしています。ポート80の接続は正常に機能し、ポート443を追加しようとしています。httpd.confにListen 443が追加されると、起動に失敗します。

c:\Apache24\bin> httpd.exe -k start
(OS 10048)Only one usage of each socket address (protocol/network address/port) is normally permitted.  : AH00072: make_sock: could not bind to address [::]:443
(OS 10048)Only one usage of each socket address (protocol/network address/port) is normally permitted.  : 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

netstatを使用したチェックでは、最初にChromeポート443を使用していることが明らかになったので、Chromeを終了し、タイムアウトが経過した後、ポートは現在netstatを使用して空にしますが、Listen 443が存在する場合でもサーバーは起動に失敗します:

c:\Apache24\bin> netstat -ano | grep 443

誰がすでにポート443を使用していて、Apacheサーバーがそのポートを使用するのをブロックしているのかを確認するにはどうすればよいですか?

3
WilliamKF

この問題は、2つのListen 443ディレクティブがあり、1つは追加したものともう1つはincludeを介したものであるため、Apacheがそれ自体と競合しているようです。

<IfModule ssl_module>
#Include conf/extra/httpd-ssl.conf
Include conf/extra/httpd-sni.conf
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>

conf/extra/httpd-ssl.confに、競合する行が表示されます。

Listen 443 https

追加したListen 443を削除すると、問題が解決しました。

9
WilliamKF

c:\ Apache24\bin> netstat -ano | grep 443

次のように、すべてのprocessIdバインド443が一覧表示されます。

 TCP    xxx:xxx     xxx:443      ESTABLISHED     4332
 TCP    xxx:xxx     xxx:443      ESTABLISHED     7164

次に実行します:

c:\ Apache24\bin>タスクリスト| grep -e "4332" -e "7164"

すべてのプロセスをID別に一覧表示します。お気に入り:

MyPopo.exe                    4332 Console                    1     87,424 K
firefox.exe                   7164 Console                    1    522,576 K
1
user918888

SysinternalsのTcpviewは、どのプログラムがポートを使用しているかなど、ネットワーク関連のすべてのものを表示します。

http://live.sysinternals.com
0
NuTTyX