ubuntu中apache的ssl证书配置及url重写
一、https原理
借用网上的图(图片来源: https://www.cnblogs.com/xiohao/p/9054355.html ),用到了对称加密和非对称加密.
二、ubuntu的apache中ssl证书配置
我们得到的证书一般为以下三个文件
- xx.cn.key
- xx.cn_chain.crt
- xx.cn_public.crt
网上有很多配置方法,本人只讲自己最习惯的方法
1 合并xx.cn_public.crt和xx.cn_chain.crt 文件,生成 xx.cn.pem文件, 注意: public的内容在上面,然后在下一行开始chain,如下
2 配置ssl模块
sudo a2enmod ssl
3 在我们的虚拟主机配置文件 xx.conf (目录在/etc/apache2/sites-available/)下部分添加配置,如下
<IfModule mod_ssl.c>
<VirtualHost *:>
ServerName www.xx.cn
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/xx/ ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on
SSLCertificateFile /etc/apache2/cert/minimgr/xx.cn.pem
SSLCertificateKeyFile /etc/apache2/cert/minimgr/xx.cn.key <FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
</IfModule>
4 重启apache
sudo service apache2 restart
到此,我们的ssl证书就配置完成了,在浏览器输入https://www.xx.cn即可正常访问
三、url重写
① 如果我们想要直接输入www.xx.cn便可以自动访问https://www.xx.cn,免得每次输入https特别麻烦,怎么办呢?
直接修改上述 xx.conf 文件(80+443端口虚拟主机配置文件,目录在/etc/apache2/sites-available/). 在80端口的配置部分最下方,添加如下
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)?$ https://%{SERVER_NAME}$1 [L,R]
这样,我们就能实现http自动转向https,当我们输入www.xx.cn便可以自动访问https://www.xx.cn.
② 如果我们希望我们的某个页面不会自动转https时,比如我们实行了计划任务,在本机每2分钟访问一次www.xx.cn/sync.php,我们完全信任这次访问,没必要用https(https更消耗资源),那么我们
对此访问增加例外,操作如下
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/sync.php
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)?$ https://%{SERVER_NAME}$1 [L,R]
这里进行说明的是, RewriteCond条件在不申明的情况下为and关系,当需要用到or关系时,需要在末尾加 [OR]
这时,当我们访问www.xx.cn便可以自动访问https://www.xx.cn.而当我们访问www.xx.cn/sync.php时,却不做任何重定向
ubuntu中apache的ssl证书配置及url重写的更多相关文章
- ubuntu16.04服务器apache的ssl证书配置
背景:在腾讯云申请的免费证书1年,服务器ubuntu 16.04版本,我的是多域名 1.ssl模块的安装 sudo a2enmod ssl //开启apache ssl模块 a2ensite defa ...
- 阿里云服务器Centos上Apache安装SSL证书配置Https
首先我们先去阿里云申请一个免费的SSL证书(https://common-buy.aliyun.com/?spm=5176.7968328.1266638..5e971232BzMSp5&co ...
- linux ssl证书配置(apache)
1. 前提是 已通过第三方 申请到 .crt .key 和 .ca-bundle 文件 2. 将三个文件拷贝到linux服务器上 任意一个指定的目录 3. 找到要编辑的apache配置 Apache主 ...
- 最新阿里云服务器免费SSL证书配置HTTPS的两种方法(图文教程二)
在大家学习如何利用免费SSL证书配置网站HTTPS之前,我们先要搞清楚为什么要开启HTTPS,这个绿色的小锁真的有用吗?所谓的HTTPS其实是(安全套接字层超文本传输协议)是以安全为目标的HTTP通道 ...
- Apache服务器安装SSL证书
Apache服务器安装SSL证书 在证书控制台下载Apache版本证书,下载到本地的是一个压缩文件,解压后里面包含_public.crt文件是证书文件,_chain.crt是证书链(中间证书)文件,. ...
- [转帖]一个ip对应多个域名多个ssl证书配置-Nginx实现多域名证书HTTPS
一个ip对应多个域名多个ssl证书配置-Nginx实现多域名证书HTTPS https://home.cnblogs.com/u/beyang/ 一台服务器,两个域名 首先购买https,获取到CA证 ...
- 安卓访问https错误,访问http可以,可能是nginx ssl证书配置有问题
开发中遇到react-native生成的android访问UAT和开发环境的http api都可以,但是访问生产环境的https就报错,还有就是第三方webhook调用你https网站的api也可能会 ...
- 阿里云负载均衡SSL证书配置
阿里云负载均衡SSL证书 转载请注明地址:http://www.cnblogs.com/funnyzpc/p/8908461.html 好久了呢,距上篇博客的这段时间中:考试.搬家.工作赶工.业务考察 ...
- 阿里云负载均衡SSL证书配置(更新)
阿里云负载均衡及应用防火墙SSL证书配置 转载请注明地址:http://www.cnblogs.com/funnyzpc/p/8908461.html 好久了呢,距上篇博客的这段时间中:考试.搬家.工 ...
随机推荐
- @vue/cli 3.x 版本配置productionGzip提高性能
第一步:安装插件 npm i -D compression-webpack-plugin 第二步:引入.在文件vue.config.js里导入compression-webpack-plugin,并添 ...
- linux面试常见
https://www.cnblogs.com/wanghuaijun/p/7421008.html 一.填空题:1. 在Linux系统中,以 文件 方式访问设备 .2. Linux内核引导时,从文件 ...
- C++入门经典-例6.7-字符串比较
1:strcmp函数,用于比较两个字符串.格式如下: strcmp(字符数组名1,字符数组名2) 按照ASCII码,按顺序比较两个数组中的字符,并由函数返回值返回比较结果的执行过程. (1)各自选中自 ...
- MyOD C语言代码实现
Myod C语言实现 一.题目要求 1 复习c文件处理内容 2 编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能 main与其他分开,制作静态库和动态库 编写Ma ...
- DS博客作业08—课程总结
1.当初你是如何做出选择计算机专业的决定的? 开始时我选择的专业就是网络/物联网,计算机专业是一个充满创造性的专业 2.对比开篇博客,哪些方面还存在哪些不足? 这个人就像戏台上的老将军,全身插满fla ...
- SpringMVC详解一、@RequestMapping注解与Controller接收参数
SpringMVC详解一.@RequestMapping注解与Controller接收参数 https://blog.csdn.net/mxcsdn/article/details/80719258 ...
- DeepFaceLab参数详解之Batch-Size的使用和取值!
Batch-Size简称BS. 这是一个非常常见的参数,所有模型都具备的一个参数. 这其实是深度学习中的一个基础概念.要说理论可以说出一大堆,大家可以先简单的理解为一次处理的图片张数.为了防止吓跑小白 ...
- redhat下配置SEED DVS6446开发环境2
---恢复内容开始--- 1.rpcbind步骤 linux包:portmap安装包 libgssglue-0.1-8.1.el6.i686.rpm libtirpc-0.2.1-1.el6.i68 ...
- Windows下C/C++内存泄露检测机制
1.概述 在Windows下微软给我们提供了一个十分强大的C/C++运行时库,这个运行时库中包含了很多有用的功能.而众多强大功能之一就是内存泄露的检测. C/C++提供了强大的内存管理功能,不过随之而 ...
- SpringMVC restful风格下载文件,文件后缀被截掉
原文:https://blog.csdn.net/wisdomhealth/article/details/78400421 @RequestMapping("/file/{filename ...