私はついに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でテストしたところ、ローカル接続は受け入れているがリモート接続は受け入れていないようです。
何が足りないのですか?
簡単な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ルール/フィルターは有効になりません。