首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Apache2.4中强制将https重定向到http

在Apache2.4中强制将https重定向到http
EN

Server Fault用户
提问于 2019-08-08 08:06:44
回答 1查看 1.7K关注 0票数 0

我正在尝试以下几种方法。我有一个领域,我在那里发表。此发布仅由http发布,但我需要https的所有请求将我重定向到http,因为我没有为此安装和配置ssl证书。

我尝试在documentroot的.htaccess文件中添加以下行:

代码语言:javascript
复制
RewriteEngine On
RewriteCond% {HTTPS} on
RewriteRule (. *) Http: //% {HTTP_HOST}% {REQUEST_URI} [R = 301, L]

但这并不意味着通过https进入的任何内容都会将我重定向到http。我会错过什么?

诚挚的问候。

编辑:

好的。

太好了,我想我能更好地理解它。若要将https重定向到http,必须在apache服务器上生成并存储ssl证书。

作为测试,我使用openssl工具创建了一个自签名证书。

代码语言:javascript
复制
openssl req -x509 -nodes -days 365 -newkey rsa: 204 .....

我已经正确地生成了它。

下一步已经启用了默认的-ssl.cnf站点,我在该站点中添加了前面生成的ssl证书数据的路径。

在这一步中,我需要做什么操作来启用从https到http的重定向,例如,我的wordpress实例。

下面是我默认的-ssl.conf文件

代码语言:javascript
复制
ServerName www.mydomain.org
ServerAdmin webmaster @ localhost
DocumentRoot / var / www / html/wordpress

FollowSymLinks options
AllowOverride None


Options -Indexes + FollowSymLinks + MultiViews
Allow to cancel all

ErrorLog $ {APACHE_LOG_DIR} /error.log
Record Level Warning
CustomLog $ {APACHE_LOG_DIR} /ssl_access.log combined
SSLEngine on
SSLCertificateKeyFile /etc/apache2/sslcert/apache.key
SSLCertificateFile /etc/apache2/sslcert/apache.crt
#SSLCACertificateFile /etc/ssl/certs/bundle.crt
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
# MSIE 7 and later versions should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

问候

EN

回答 1

Server Fault用户

发布于 2019-08-08 08:18:11

如果没有ssl证书,这是无法工作的。原因如下:

当浏览器连接到服务器时,安全层在浏览器发送HTTP请求(例如: GET /HTTP 1/1)之前验证连接(包括证书上的名称(S)和浏览器请求的名称)。

HTTP对话框对于http和https都是一样的,但是加密是在开始之前协商的。

对于HTTP1.1,所有请求都应该具有宿主请求的主机:报头专门化,Apache将从请求中的Host: header和URI的组合中计算出完整的URI。

如果无法启动HTTP会话,则无法获得请求,因此无法以任何方式响应请求。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/978436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档