手把手教你apache设定https
Posted 与文萱小叔叔一起学Linux
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手把手教你apache设定https相关的知识,希望对你有一定的参考价值。
网上有很多这方面的教程 但是都不太容易看懂 且都杂乱无章 到最后 不知道都说的些什么。遇到一些错误大多都是相互抄袭。
今天我也写一写这方面的内容 希望能对你真正有用 。
https由http+openssl构成 实现加密传输
简单地说 默认用户不输入http或https时 会自动跳转到https。就需要配置两个虚拟机。一个80端口,一个443端口
先下载各套件吧
下载apr: wget -c http://mirrors.advancedhosters.com/apache//apr/apr-1.6.5.tar.gz -P /opt
下载apr-util:wget -c http://mirrors.advancedhosters.com/apache//apr/apr-util-1.6.1.tar.gz -P /opt
下载apache2.4:wget -c http://mirrors.hust.edu.cn/apache//httpd/httpd-2.4.37.tar.gz -P /opt
安装关联套件:yum install -ygcc gcc-c++ openssl opens-devel openldap openldap-devel
进入到/opt
cd / opt
拆包apr 并进入apr-1.65文件夹进行准备预编译
tar apr-1.6.5.tar.gz
cd apr-1.65
必须做这一步 否则无法正常预编译
vim configure
查找RM='$RM' 将其修改为 RM='$RM -f' 并存储
./configure --prefix=/usr/local/apr
编译并安装:make && make install
切换到上级文件夹 拆包 apr-util-1.6.1.tar.gz
cd ../;tar -zxf apr-util-1.6.1.tar.gz
进入到apr-util-1.6.1文件夹
cd apr-util-1.6.1
预编译: ./configure--prefix=/usr/local/apr-util --with-apr=/usr/local/apr
编译并安装 make && makeinstall
切换到上级文件夹 拆包 httpd-2.4.37.tar.gz
cd ../;tar -zxf httpd-2.4.37.tar.gz
进入到httpd-2.4.37文件夹
cd httpd-2.4.37
预编译apache2.4
./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-rewrite --enable-ssl--with-mpm=prefork --with-proxy --with-headers --with-expires --enable-session --with-ldap
注意:如果你采用的是 yum install -y apr apr-util apr-devel apr-util-devel 安装的 apache的编译参数选项不要添加 --with-apr --with-apr-util 。一般情况下通过yum 安装 apr 与apr-util相关套件是没有问题的。如果启动apache遇到apr-util相关的错误,你该考虑编译安装apr与apr-util了。如果你在编译apr-util遇到了一些错误,你也别到处找答案了,你直接降低一个版本使用1.5.x的就可以
编译并安装程序
make && make install
生成cert文件夹
mkdir /usr/local/apache2.4/conf/cert
用于存放你申请的SSL证书 SSL证书需要验证你的域名。参照阿里云申请SSL
不论你是哪里买的域名你都可以在阿里云申请免费版的签证 。最后将 证书上传到 cert文件夹里
生成80 443端口的虚拟机范本 wenxuan.conf
vim /usr/local/apache2.4/conf/extra/wenxuan.conf
原始码如下:
#####这是80端口虚拟机开始######
<VirtualHost *:80>
#绑定的网站域名
ServerNamewenxuan.503e.net
#绑定的网站别名
ServerAliaswenxuan.503e.net
#开启重写引擎 Rewite是重写的意思 Engine是引擎的意思
RewriteEngine On
#编写重写规则 同样 Rewrite是重写的意思 Rule是规则的意思 ^以什么开始 ^(.*)$这部分是正则 前期不理解 先固定记下来吧 这部分指的是域名后面带的路径
RewriteRule^(.*)$ https://wenxuan.503e.net$1 [R=301,L]
</VirtualHost>
#####这是80端口虚拟机范本结束
####监听端口443
Listen 443
####这是443端口的虚拟机范本开始######
<VirtualHost*:443>
#绑定的网站的域名
ServerNamewenxuan.503e.net
#网站程序的存放路径
DocumentRoot"/usr/local/apache2.4/htdocs"
CustomLog "/usr/local/apache2.4/logs/wenxuan.log" combined
ErrorLog "/usr/local/apache2.4/logs/wenxuan_error.log"
#开启SSL引擎
SSLEngine On
#Certificate是证书的意思 说清楚三个文件的存放路径即可
SSLCertificateFile"/usr/local/apache2.4/conf/cert/1572326_wenxuan.503e.net_public.crt"
SSLCertificateKeyFile"/usr/local/apache2.4/conf/cert/1572326_wenxuan.503e.net.key"
SSLCertificateChainFile"/usr/local/apache2.4/conf/cert/1572326_wenxuan.503e.net_chain.crt"
</VirtualHost>
####这是443端口的虚拟机范本结束######
最终效果图图示如下:
备份httpd.conf
cp /usr/local/apache2.4/conf/httpd.conf{,.bak}
使用vi或vim编辑 /usr/local/apache2.4/conf/httpd.conf
引用你编写的范本文件
Include conf/extra/wenxuan.conf
添加一行 ServerName localhost:80
找到两个关键词 分别是mod_ssl mod_rewrite 。怎么找 vim httpd.conf 直接拿输入 /输入关键词 比如 /mod_ssl 回车即可找到 将前面的#删掉。以同样的方式找到mod_rewrite 删掉前面的#
LoadModule ssl_modulemodules/mod_ssl.so
LoadModulerewrite_module modules/mod_rewrite.so
最后存储。
最后如何知道配置文件没问题?
/usr/local/apache2.4/bin/httpd -t
或
/usr/local/apache2.4/bin/apachectl -t
如果提示
Syntax OK表示没问题。
最后启动apache :
/usr/local/apache2.4/bin/httpd -k start
或
/usr/local/apache2.4/bin/apachectl start
在浏览器输入你绑定的域名 即可看到效果:
图示如下是文萱申请了两个域名证书。
文萱原创 如有不足请指正 谢谢
联络先:imwenxuan@gmail.com
部落格:http://www.503e.net
以上是关于手把手教你apache设定https的主要内容,如果未能解决你的问题,请参考以下文章
手把手教你安装 FastAdmin 到虚拟主机 (phpStudy)
三教你搞懂渐变堆叠面积图《手把手教你 ECharts 数据可视化详解》
一基础折线图详解《手把手教你 ECharts 数据可视化详解》