apache下https配置以及http强制转发到https下

apache下https配置

准备工作

证书准备好,我用的是阿里云
进入控制台,安全下CA证书
点击下载证书,附上阿里云教程,我没成功
证书

配置

1、找到Apache安装目录
apache

由于我的服务器系统是Ubuntu,没有httpd.conf文件,故在apache2.conf(主要配置)下进行位置,也可以自己新建http.conf然后引入到apache2.conf

2、将下载的证书放到服务器上

这里我新建了cert文件夹

3、编辑apache2.conf

底部加入以下代码(目录可能因操作环节,安装不同而不同)

LoadModule ssl_module            /usr/lib/apache2/modules/mod_ssl.so

#监听443端口,https默认端口为443
Listen 443
<VirtualHost *:443>

    ServerName www.abc.com(你的域名)

    ServerAlias www.abc.com(你的域名)

    ProxyPreserveHost On

    ProxyRequests Off

    ProxyPass / http://localhost:8089/

    ProxyPassReverse / http://localhost:8089/

    # 添加 SSL 协议支持协议,去掉不安全的协议
   SSLProtocol all -SSLv2 -SSLv3
   # 修改加密套件如下
   SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
   SSLHonorCipherOrder on
   # 证书公钥配置
   SSLCertificateFile cert/public.pem
   # 证书私钥配置
   SSLCertificateKeyFile cert/214745469340830.key
   # 证书链配置,如果该属性开头有 '#'字符,请删除掉
   SSLCertificateChainFile cert/chain.pem

< /VirtualHost>

大功告成,打开浏览器,带上你的https域名访问吧。

http强制转发到https下

添加 .htaccess文件

默认情况下,apache的80端口网站目录是/var/www/html
我们在/var/www/html下创建 .htaccess文件
添加以下内容

RewriteEngine on    
RewriteCond %{SERVER_PORT} !^443$  
RewriteCond %{REQUEST_URI} !^/tz.php  
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R]

遇到的坑

刚开始的想法是,既然http的默认端口是80,https的默认端口是443,那么当不以https访问的时候,我将代理转发到同服务器443端口上。

#<VirtualHost *:80>

#    ServerName abc.com

#    ServerAlias abc.com

#    ProxyPreserveHost On

#    ProxyRequests Off

#    ProxyPass / http://localhost:443/

#    ProxyPassReverse / http://localhost:443/

#</VirtualHost>

结果是:刚一开始是成功的,过了几秒apache拦截掉了,再也无法访问成功

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值