linux之Apache服务超文本传输安全协议
- 什么是超文本传输安全协议
现象:访问百度网站时,会发现域名开头是“https”
超文本传输安全协议(Hypertext Transfer Protocol Secure,缩写:HTTPS)是一种透过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。
- http与https的区别
http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
- https设置
安装:
yum install mod_ssl -y
查看文件并将端口添加至防火墙:
cd /etc/httpd/conf.d
ls
systemctl restart httpd
nestat -antlupe |grep httpd
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --reload
安装插件并生成认证文件:
yum search ssl
yum install crypto-utils.x86_64 -y
genkey www.cc.com
进行图形界面:
等待生成
这里打开一个shell随意字符产生加密会加快进度
因为进行认证是需要收费的,这里实验选择No
输入认证信息
设置完毕会产生两个相关认证文件
将文件路径复制到ssl配置文件中:
vim /etc/httpd/conf.d/ssl.conf
编写如下:
101 SSLCertificateFile /etc/pki/tls/certs/www.cc.com.cert
109 SSLCertificateKeyFile /etc/private/certs/www.cc.com.key
systemctl restart httpd
打开浏览器添加安全认证:
查看证书及相关信息:
注意:为了不影响实验效果,打开浏览器请ctrl+shift+del 清除浏览器缓存
- 设定Apache虚拟主机的网页重写
设置步骤:
编写虚拟主机配置文件:
vim /etc/httpd/conf.d/login.conf #在副配置目录中编写配置文件
编写如下:
<VirtualHost *:443> #443端口的虚拟主机
ServerName login.cc.com #指定的的服务名称
DocumentRoot /virtweb/login/html #默认发布目录
SSLEngine on #安全认证功能开启
SSLCertificateFile /etc/pki/tls/certs/www.cc.com.crt #认证文件
SSLCertificateKeyFile /etc/pki/tls/private/www.cc.com.key #认证钥匙文件
</VirtualHost>
<VirtualHost *:80> #80端口的虚拟主机
ServerName login.cc.com #指定服务名称
RewriteEngine on #网页重写功能开启
RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301] #设定重写规则
/VirtualHost>
^(/.*)$ #客户在浏览器地址中输入的所有字符
https:// #强制客户加密访问
%{HTTP_HOST} #客户请求主机
$1 #“1”表示(/.*)的值
[redirect=301] #永久转换301;临时重写 302
mkdir -p /virtweb/login/html
vim /virtweb/login/html/index.html
systemctl restart httpd ##重新启动服务
vim /etc/hosts ##本地解析
测试:
打开浏览器输入 login.cc.com 进行访问
会自动重写成 https://login.cc.com/
第一次需要添加证书
END