アップデート:yumアップデートをロールバックしようとしましたが、問題は解決されませんでした。また、SSLなしで単一の仮想ホストでサーバーを実行し、httpを介してサイトにアクセスしてみました。まだ作業していませんが、SSLエラーが消えたため、SSL問題の原因を取り除いたようです。デバッグレベルのロギングを有効にしてすべてのログを再確認しましたが、何も役に立ちませんでした。
ファイアウォールを停止し、サイトが正常に戻った。さて、大丈夫です。しかし、ファイアウォールを修正する必要があります。 JSBillingsは、自分の意見で私のVPSを持つコンテナの種類に関するいくつかの問題と、ファイアウォールに関する既知の問題を指摘しました。もっと徹底的に研究する必要があります。
問題をまとめると、Apacheは実行されますが(systemctl status httpdを実行すると実行中としてマークされます)、ページは提供されません。リモート要求がhttpd要求ログを見逃しました。リモートコンピュータから接続しようとするファイアウォールログには何も表示されません。
興味深い事実:同じ仮想ホスト上でリンクを実行して自分のドメインの1つを指すと、「検索できません:SSLエラー」が発生します。ループバックまたはサーバーIPへのリンクを指定すると仮想ホストが発生するため、これを無効にして再試行します。結果はアルファベット順に次の仮想ホストです。デスクトップ上のブラウザをサーバーIPとして指定すると、ドメイン名にアクセスしようとしたときと同様にタイムアウトが発生します。
また、httpバージョンへのリンクを指定しようとしましたが、httpsにリダイレクトされているようです(これは上記と同じエラーになります)。ログに成功したリンク要求を表示できますが、失敗したリンク要求は表示できません。
私のホスティングやDNSに問題がある可能性がありますか?それとも、仮想ホストモジュールが故障しているのでしょうか? SSLを原因として除外したようですが、これが問題であるという証拠がまだ見えます(リンクエラー)。それとも全く違うのですか?
yumを更新して昨日再起動するまで、すべてが数ヶ月間働いたことに注意してください。
背景/構成
PHPとMariaDBでCentOS 7とApache 2.4.6を実行するVPSがあります。私はWebホスティング設定を使用して、それぞれ固有のドメイン名を持つ4つの小さなサイトをホストしています。実際のドメイン名の代わりにdomain1.comを使用します。仮想ホストファイルの例:
<VirtualHost *:80>
ServerName domain1.com
-other typical settings...
RewriteEngine on
RewriteCond %{SERVER_NAME} =domain1.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
また、リストする必要がないディレクトリ設定もあります。
数ヶ月前、私はCertbot(Letsencrypt)を使ってSSLを設定しました。仮想ホストファイルを追加し、元のホストファイル(上記)にリダイレクトします。それ以来、私は証明書を何度も更新しました。
今日の午後に実行、更新、再起動するまで、すべてがうまくいきました。
HTTPD、SSL、またはTLSを含むyumログエントリは次のとおりです。
Apr 29 13:17:41 Updated: httpd-tools-2.4.6-93.el7.centos.x86_64
Apr 29 13:18:29 Updated: httpd-2.4.6-93.el7.centos.x86_64
Apr 29 13:20:55 Updated: 1:mod_ssl-2.4.6-93.el7.centos.x86_64
Apr 29 13:18:39 Installed: gnutls-3.3.29-9.el7_6.x86_64
SSLエラーログ (実際のドメイン名を「domain.com」に変更しました)(このエントリは今日のアップデートからのものです)
[Wed Apr 29 16:47:40.447536 2020] [ssl:warn] [pid 4945] AH01909: RSA certificate configured for domain1.com:443 does NOT include an ID which matches the server name
[Wed Apr 29 16:48:26.901356 2020] [ssl:warn] [pid 485] AH01909: RSA certificate configured for server.domain1.com:443 does NOT include an ID which matches the server name
これらの警告を調査しましたが、警告の原因について明確な結論を出すことはできません。ただし、これは警告にすぎないため、問題は発生しないでください。しかし、これが問題について私が持っている唯一の手がかりです。
HTTPDエラーログ (更新する前にログでこのような内容を見ました)
[Wed Apr 29 16:48:27.061664 2020] [ssl:warn] [pid 485] AH02292: Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)
[Wed Apr 29 16:48:32.016207 2020] [mpm_prefork:notice] [pid 485] AH00163: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.2.30 configured -- resuming normal operations
[Wed Apr 29 16:48:32.016265 2020] [core:notice] [pid 485] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'
[Wed Apr 29 17:04:52.428739 2020] [mpm_prefork:notice] [pid 485] AH00170: caught SIGWINCH, shutting down gracefully
[Wed Apr 29 17:04:53.548204 2020] [suexec:notice] [pid 1182] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Wed Apr 29 17:04:53.554485 2020] [ssl:warn] [pid 1182] AH02292: Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)
[Wed Apr 29 17:04:53.599697 2020] [lbmethod_heartbeat:notice] [pid 1182] AH02282: No slotmem from mod_heartmonitor
[Wed Apr 29 17:04:53.605746 2020] [ssl:warn] [pid 1182] AH02292: Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)
[Wed Apr 29 17:04:53.646755 2020] [mpm_prefork:notice] [pid 1182] AH00163: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.2.30 configured -- resuming normal operations
[Wed Apr 29 17:04:53.646797 2020] [core:notice] [pid 1182] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'
HTTP 要求ログには、更新後の新しいエントリは含まれません。
SSHにホスト名を入力すると、「サーバー」が返されます。
SSL構成ファイル次の2つの関心のある行があります。
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
証明書を確認すると、CN = serverと表示されます。
Cerbotは/ etc / letsencryptに証明書をインストールします。これは私の4つのドメイン名に対応します。
私のもの所有者ファイル:(実際のドメイン名を隠すように編集)
127.0.0.1 localhost.localdomain localhost localhost4.localdomain4 localhost4
# Auto-generated hostname. Please do not remove this comment.
190.97.167.205 server.domain1.com server domain2.com domain3.com domain4.monster
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
同じボックスでリンクを実行しても問題が発生するため、これはファイアウォールの問題ではないと思いますが、ファイアウォールログの次のエントリはビューには適していません。
2020-04-29 16:48:18 WARNING: AllowZoneDrifting is enabled. This is considered an insecure configuration option. It will be removed in a future release. Please consider disabling it now.
2020-04-29 16:48:18 WARNING: ipset not usable, disabling ipset usage in firewall.
2020-04-29 16:48:20 WARNING: Failed to load nf_conntrack module: modprobe: ERROR: could not find module by name='nf_conntrack'
modprobe: ERROR: could not insert 'nf_conntrack': Function not implemented
modprobe: ERROR: Error running install command for nf_conntrack
modprobe: ERROR: could not insert 'nf_conntrack': Operation not permitted
2020-04-29 16:48:20 ERROR: Failed to read file "/proc/sys/net/netfilter/nf_conntrack_helper": [Errno 2] No such file or directory: '/proc/sys/net/netfilter/nf_conntrack_helper'
2020-04-29 16:48:20 WARNING: Failed to get and parse nf_conntrack_helper setting
2020-04-29 16:48:20 WARNING: ebtables not usable, disabling ethernet bridge firewall.
私が試したこと
- すべてのドメインに対してcertbotを再実行する
- domain1に対してのみcertbotを再実行する
- Yum Update(再) - パッケージをインストールする必要はありません。
- サーバーを削除するには、ホストファイルを編集します。サーバー - 上記のように、一部のシステムプロセスはそれを元の状態に復元します。
- domain1 仮想ホスト構成の SSL エントリをコメントアウトして http://... に移動します。
- ssl.confの証明書行をコメントアウトしました。 Apacheが起動しないので、もう一度入れました。
- PHPの代わりにHTMLページに移動 - 同じ結果。
アンインストールと再インストールについて考え始めましたが、ここに何かが欠けている可能性があることを願っています。この問題の解決にご協力いただきありがとうございます。
ありがとうございます!