Apache SSL 構成 接続が拒否されました connect:errno=111

Apache SSL 構成 接続が拒否されました connect:errno=111

古い OpenSuse サーバーで SSL を設定しようとしています:

openSUSE 11.4 (x86_64)
VERSION = 11.4
CODENAME = Celadon

Apache SSL モジュールを有効にしました:

apache2ctl -M
Loaded Modules:
 core_module (static)
 mpm_prefork_module (static)
 http_module (static)
 so_module (static)
 actions_module (shared)
 alias_module (shared)
 auth_basic_module (shared)
 authn_file_module (shared)
 authz_host_module (shared)
 authz_groupfile_module (shared)
 authz_default_module (shared)
 authz_user_module (shared)
 autoindex_module (shared)
 cgi_module (shared)
 dir_module (shared)
 env_module (shared)
 expires_module (shared)
 include_module (shared)
 log_config_module (shared)
 mime_module (shared)
 negotiation_module (shared)
 setenvif_module (shared)
 ssl_module (shared)
 userdir_module (shared)
 php5_module (shared)
 reqtimeout_module (shared)
 deflate_module (shared)
 headers_module (shared)
 rewrite_module (shared)
Syntax OK

そして、SSL 証明書を提供する仮想ホストを構成し (vhost-ssl.template をコピーして編集し、名前を https.xxxxxxxx.conf に変更)、Apache を再起動しました。

接続しようとすると、次のエラーが発生します:

openssl s_client -connect localhost:443
connect: Connection refused
connect:errno=111

インストールされている openssl のバージョンは次のとおりです。

OpenSSL 1.0.1p 9 Jul 2015 (Library: OpenSSL 1.0.0c 2 Dec 2010)

役に立つなら、これが私の iptables 設定です:

iptables -L -vn
Chain INPUT (policy ACCEPT 4641 packets, 815K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 1691 packets, 4745K bytes)
 pkts bytes target     prot opt in     out     source               destination   

ローカルホストで 443 ポートに接続できない理由を教えてください。

編集:

これは Apache と追加の https.xxxxxxx.conf ファイルの問題であると思われます:

httpd2 -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
         default server xxxxxxxx.it (/etc/apache2/vhosts.d/xxxxxxxx.conf:3)
         port 80 namevhost xxxxxxxx.it (/etc/apache2/vhosts.d/xxxxxxxx.it.conf:3)
         port 80 namevhost XXX.XXX.XXX.XXX (/etc/apache2/vhosts.d/xxxxxxxx.it.conf:9)

私の listen.conf では、SSL モジュールが有効になっている場合は 443 を listen する必要があるようです。

Listen 80


<IfDefine SSL>
    <IfDefine !NOSSL>
        <IfModule mod_ssl.c>

            Listen 443

        </IfModule>
    </IfDefine>
</IfDefine>

これは netstat の出力です:

netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name   
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      8105/mysqld         
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1847/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2179/master         
tcp        0      0 :::80                   :::*                    LISTEN      13330/httpd2-prefor 
tcp        0      0 :::21                   :::*                    LISTEN      1930/vsftpd         
tcp        0      0 :::22                   :::*                    LISTEN      1847/sshd           
tcp        0      0 ::1:25                  :::*                    LISTEN      2179/master   

SSLモジュールを有効にするために/etc/sysconfig/apache2ファイルを変更しました

APACHE_SERVER_FLAGS="SSL"

今では、ローカルでもリモートでもボットが正しく応答するようです:

openssl s_client -connect localhost:443
CONNECTED(00000003)
depth=3 C = SE, O = AddTrust AB, OU = AddTrust External TTP Network, CN = AddTrust External CA Root
verify return:1

ブラウザから取得してからまだ問題があります:

This site can’t be reached
xxxxxxxx.it unexpectedly closed the connection.
Try:

Checking the connection
Checking the proxy and the firewall
Running Network Diagnostics
ERR_CONNECTION_CLOSED

しかし、私はこの問題は関連していないと考えています

答え1

ついに解決しました! デフォルトの Apache listen.conf には、マシンに割り当てられた IP アドレスのエントリがありませんでした。 なるほど。 「listen 80」でマシンのすべての IP アドレスがカバーされると思っていました。

関連情報