Apache 2.4の設定に問題があります。入場https://subdomain.my-domain.comこのhttp 400は常に返されます。
間違った要求あなたのブラウザはこのサーバーが理解できない要求を送信しました。原因:SSL対応サーバーポートに通常のHTTPを送信しています。代わりにこのURLにアクセスするには、HTTPSスキームを使用してください。
私のサイトはhttpsを介して直接アクセスするため、httpからhttpsへのリダイレクトは必要ありません。以下は私のApacheの設定です。証明書の妥当性を確認しないことがわかります。今は自己署名されていますが、今後は変わります。
##################################################################
### ###
### Global Settings ###
### ###
##################################################################
DocumentRoot /var/ebc/apache2/www/htdocs
<Location /fwcheck.html>
<RequireAll>
Require all granted
</RequireAll>
</Location>
##################################################################
### ###
### Global SSL Settings ###
### ###
##################################################################
SSLProtocol ALL -SSLv2 -SSLv3
SSLProxyProtocol ALL -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:HIGH:!MD5:!aNULL:!EDH
SSLCompression off
SSLSessionTickets off
# OCSP Stapling, only in httpd 2.3.3 and later
SSLUseStapling on
SSLStaplingResponderTimeout 5
SSLStaplingReturnResponderErrors off
SSLStaplingCache shmcb:/var/ebc/apache2/sslstaplingcache(128000)
##################################################################
### ###
### Virtual Hosts ###
### ###
##################################################################
<VirtualHost 10.173.144.43:80>
ErrorLog /var/ebc/apache2/log/error.log
CustomLog /var/ebc/apache2/log/access.log vhost_combined
##################################################################
### ###
### Send everything to https except firewall check ###
### vhost config only for port 443 necessary. ###
### No further config for port 80. ###
### ###
##################################################################
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !fwcheck.html
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
##################################################################
</VirtualHost>
<VirtualHost 10.173.144.43:443>
ServerName subdomain.my-domain.com
ErrorLog /var/ebc/apache2/log/error.log
CustomLog /var/ebc/apache2/log/access.log vhost_combined
##################################################################
### ###
### SSL Settings ###
### ###
##################################################################
RequestHeader set ClientProtocol HTTPS
SSLEngine On
SSLProxyEngine On
SSLCertificateFile /var/ebc/apache2/ssl/subdomain.my-domain.com.crt
SSLCertificateKeyFile /var/ebc/apache2/ssl/subdomain.my-domain.com.key
SSLCACertificateFile /var/ebc/apache2/ssl/subdomain.my-domain.com.crt
ProxyRequests off
ProxyPreserveHost on
# Disable certificate checks
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
# HSTS (15768000 seconds = 6 months)
Header always set Strict-Transport-Security "max-age=15768000"
##################################################################
### ###
### Locations ###
### ###
##################################################################
DocumentRoot /var/ebc/apache2/www/htdocs/prod
<Location />
Options None
<RequireAll>
Require all granted
</RequireAll>
</Location>
<Location /web-status>
<RequireAll>
Require all denied
</RequireAll>
</Location>
<Location /balancer-manager>
<RequireAll>
Require all denied
</RequireAll>
</Location>
##################################################################
</VirtualHost>
なぜこれがうまくいかないのかわかりません。誰でも私にヒントを与えることができますか?
答え1
問題が解決しました。上記の私のApacheの設定は正しいです。問題は誤って設定されたファイアウォールです。ファイアウォール設定を直接変更していないため、実際のソリューションを公開することはできませんが、上記のように上記のApache設定は機能します。
答え2
接続がインターフェイス 10.173.144.43:443 に到達しないため、VirtualHost では処理されません。これは、SSLが有効になっていないマスターサーバーの構成に影響します。
どのローカルインターフェイスが使用されているか気にしない場合は、VirtualHostで*を使用してください。
これで、一部のインバウンド要求が指定されたインターフェイス/ IPを使用するようにファイアウォールを変更しましたが、localhostを使用してコマンドラインでテストするとすぐに動作が停止することがあります。
答え3
を介してサーバーにアクセスしてみましたかtelnet
?その場合、セキュリティページ(httpsなど)では正しく機能しません。
OpenSSLツールバーなど、この目的のために特別に設計されたツールを使用する必要があります。
次のコマンドセットを試してください。
openssl s_client -connect <server>:<port>
GET / HTTP/1.1