![Apache 从 http 重定向到 https-SSL 握手失败:HTTP 在 HTTPS 端口上使用](https://linux22.com/image/725736/Apache%20%E4%BB%8E%20http%20%E9%87%8D%E5%AE%9A%E5%90%91%E5%88%B0%20https-SSL%20%E6%8F%A1%E6%89%8B%E5%A4%B1%E8%B4%A5%EF%BC%9AHTTP%20%E5%9C%A8%20HTTPS%20%E7%AB%AF%E5%8F%A3%E4%B8%8A%E4%BD%BF%E7%94%A8.png)
我在 Debian 9 上安装了 Moodle(电子学习系统)Web 应用程序,并使用 Apache Web 服务器。它是 bitnami 设备,但唯一的区别是文件夹结构。几个月前,我配置了从 http 到 https 的重定向。最近我将 Moodle 更新到最新版本,重定向停止工作。我尝试让它工作了几天,但没有成功。
我在 Apache 日志中打开了调试模式。当我输入http://elearning.mymoodlesite.com在网络浏览器中,我收到了糟糕的请求错误。
错误请求 您的浏览器发送了此服务器无法理解的请求。原因:您正在向启用 SSL 的服务器端口发送纯 HTTP 请求。请使用 HTTPS 方案访问此 URL。
在 Apache 的 access_log 文件中“获取/HTTP/1.0” 400 362错误
这是bitnami.conf,我根据这个修改了配置https://docs.bitnami.com/aws/components/apache/#how-to-force-https-redirection-for-an-application:
# Default Virtual Host configuration.
<IfVersion < 2.3 >
NameVirtualHost *:80
NameVirtualHost *:443
</IfVersion>
<VirtualHost _default_:80>
DocumentRoot "/opt/bitnami/apache2/htdocs"
**RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule / https://elearning.mymoodlesite.com/$1 [R,L]**
<Directory "/opt/bitnami/apache2/htdocs">
Options -Indexes
AllowOverride All
<IfVersion < 2.3 >
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.3 >
Require all granted
</IfVersion>
</Directory>
# Error Documents
ErrorDocument 503 /503.html
# Bitnami applications installed with a prefix URL (default)
Include "/opt/bitnami/apache2/conf/bitnami/bitnami-apps-prefix.conf"
</VirtualHost>
# Default SSL Virtual Host configuration.
<IfModule !ssl_module>
LoadModule ssl_module modules/mod_ssl.so
</IfModule>
Listen 443
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH !aNULL !eNULL !LOW !3DE$
SSLPassPhraseDialog builtin
SSLSessionCache "shmcb:/opt/bitnami/apache2/logs/ssl_scache(512000)"
SSLSessionCacheTimeout 300
<VirtualHost _default_:443>
DocumentRoot "/opt/bitnami/apache2/htdocs"
SSLEngine on
SSLCertificateFile "/opt/bitnami/apache2/conf/mymoodlesite.pem"
SSLCertificateKeyFile "/opt/bitnami/apache2/conf/mymoodlesite.key"
<Directory "/opt/bitnami/apache2/htdocs">
Options -Indexes
AllowOverride All
<IfVersion < 2.3 >
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.3 >
Require all granted
</IfVersion>
</Directory>
# Error Documents
ErrorDocument 503 /503.html
# Bitnami applications installed with a prefix URL (default)
Include "/opt/bitnami/apache2/conf/bitnami/bitnami-apps-prefix.conf"
</VirtualHost>
# Bitnami applications that uses virtual host configuration
Include "/opt/bitnami/apache2/conf/bitnami/bitnami-apps-vhosts.conf"
我尝试了 RewriteRule,改变了
重写规则 /https://elearning.mymoodlesite.com/$1 [右,左]
到
重写规则 ^/(.*)https://elearning.mymoodlesite.com/$1 [右,左]
和其他一些组合,但没有帮助。
当我输入时,apache error_log 中的完整记录http://elearning.mymoodlesite.com:
[2018 年 8 月 13 日星期一 10:51:30.664911] [ssl:info] [pid 13931:tid 140708832802560] [客户端 195.168.40.226:44320] AH01964:已建立与子 149 的连接(服务器 elearning.mymoodlesite.com:443)
[2018 年 8 月 13 日星期一 10:51:30.665158] [ssl:info] [pid 13931:tid 140708832802560] [客户端 195.168.40.226:44320] AH01996:SSL 握手失败:HTTP 在 HTTPS 端口上通话;尝试发送 HTML 错误页面
[2018 年 8 月 13 日星期一 10:51:30.665210] [ssl:info] [pid 13931:tid 140708832802560] SSL 库错误:错误:1407609C:SSL 例程:SSL23_GET_CLIENT_HELLO:http 请求——将 HTTP 传输到 HTTPS 端口!?
[2018 年 8 月 13 日星期一 10:51:30.665329] [headers:debug] [pid 13931:tid 140708832802560] mod_headers.c(900):AH01503:headers:ap_headers_error_filter()
[2018 年 8 月 13 日星期一 10:51:30.852250] [ssl:info] [pid 13931:tid 140708824409856] [客户端 195.168.40.226:44326] AH01964:已建立与子 150 的连接(服务器 elearning.mymoodlesite.com:443)
[2018 年 8 月 13 日星期一 10:51:30.852356] [ssl:info] [pid 13931:tid 140708824409856] [客户端 195.168.40.226:44326] AH01996:SSL 握手失败:HTTP 在 HTTPS 端口上通话;尝试发送 HTML 错误页面
[2018 年 8 月 13 日星期一 10:51:30.852377] [ssl:info] [pid 13931:tid 140708824409856] SSL 库错误:错误:1407609C:SSL 例程:SSL23_GET_CLIENT_HELLO:http 请求——将 HTTP 传输到 HTTPS 端口!?
[2018 年 8 月 13 日星期一 10:51:30.852426] [headers:debug] [pid 13931:tid 140708824409856] mod_headers.c(900):AH01503:headers:ap_headers_error_filter()