web-dev-qa-db-ja.com

CentOS 6とApacheにLet'sEncrypt証明書をインストールしようとしていますが、接続が機能しません

私はついに1996年以来アップしている私のウェブサイトにSSLを使用するというプレッシャーに屈しました…当時は高価でエラーが発生しやすく時間のかかる証明書を取得していました…今日は最後の2つだけです!

私のApache2サーバーのセットアップは、独自のRubyディスパッチャーを使用し、非静的URLを_mod_rewrite_で書き換えて、テンプレートやその他の動的な処理を行うFastCGIディスパッチャーに移動するため、非常に複雑です。等…

私はソフトウェアエンジニアですが、システム管理者はそれほど多くないので、すべてが機能するまでいじり回してから、サーバー構成を何年もそのままにしておきます。

数年前にサーバーをインストールしたとき、最小限のCentOSインストールから始めて、ほとんどのパッケージ(Ruby、Apache、MySQLなどを含む)を手動でインストールし、サーバーに必要なポートのみを開きました。

_publicspace.net_と_www.publicspace.net_の両方の証明書を取得しました

_Sudo /usr/local/bin/certbot-auto certonly --webroot --webroot-path /var/www/html
_

VirtualHostが定義されていなかったため、通常の_--Apache_バージョンは機能しませんでした。私のApache構成は、過去20年間で完成したパッチワークです。最終的に仮想ホスト定義を追加しました(そして、それが現在何をしているのかをほぼ理解しています)が、とにかく_--Apache_バージョンを実行できませんでした。そのため、証明書を手動で統合しています。

_httpd.conf_ファイルでSSL証明書を定義しようとしましたが、SSL仮想ホストが_/conf.d/ssl.conf_で既に定義されていることに気付くまでうまくいきませんでした。その後、メインの構成ファイルから自分のものを取り出して追加しました。代わりに、そのファイルへの証明書キー。

現在、すべてが正しく設定されているように見えますが、Webブラウザにページを表示できません。

_openssl s_client -connect publicspace.net:443                                  
_

与える:

_connect: Connection refused
connect:errno=61
_

リモートで実行された場合。ただし、サーバー自体から呼び出された場合は0 (ok)の戻りコードが返されます。ポートは閉じていますか?

Linuxファイアウォールで443ポートを開いたが、役に立たなかった。

_# cat /etc/sysconfig/iptables
# Generated by iptables-save v1.4.7 on Wed Oct 26 17:41:47 2016
*filter
:FORWARD ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state -m tcp --dport 22 --state NEW -j ACCEPT
-A INPUT -p tcp -m state -m tcp --dport 10000 --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp -m state --dport 80 --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp -m state --dport 443 --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp -m state --dport 873 --state NEW -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-Host-prohibited
-A INPUT -p tcp -m tcp -m state --dport 21 --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp -m state --dport 990 --state NEW -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-Host-prohibited
COMMIT
# Completed on Wed Oct 26 17:41:47 2016
# Generated by webmin
*mangle
:FORWARD ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
# Completed
# Generated by webmin
*nat
:OUTPUT ACCEPT [0:0]
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
# Completed
_

Httpdサーバーはそのポートでリッスンしており、s_clientでテストしたところ、ローカル接続は受け入れているがリモート接続は受け入れていないようです。

何が足りないのですか?

2
Frank R.

簡単なNmapサイトのスキャンpublicspace.netは次のことを示しています。

nmap publicspace.net -p22,80,443
Starting Nmap 7.70 ( https://nmap.org ) at 2019-06-20 12:28 EDT
Nmap scan report for publicspace.net (45.76.0.90)
Host is up (0.0027s latency).

PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
443/tcp closed https

そして、それは明らかにポート443が閉じていることを示しています。これは、ファイアウォールがポート443へのトラフィックを許可していないか、Apache自体がポート443でリッスンしていないことを意味している可能性があります。

では、Apache構成がポート443でリッスンしていることを確認しますか? Listen 443または一般的なApache構成に実際にssl.conf行がありますか?

また、更新されたIPtablesルール/フィルターを表示しましたが、これらのフィルターをIPtablesで再起動/リロードしましたか?サイトの管理に使用しているツールによっては、IPTablesのセットアップを再開/再読み込みしない限り、新しいIPtablesルール/フィルターは有効になりません。

1
JakeGould