Loading...

linux中Apache服务之https超文本传输安全协议

–>

1、https 超文本传输安全协议

  • 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。
  • 为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

yum install mod_ssl.x86_64 -y #安装ssl模块
ls /etc/httpd/conf.d/ #模块安装成功之后自动生成ssl.conf文件在子配置目录中
systemctl restart httpd #重启服务

netstat -antlupe |grep http #查看httpd服务需要的端口
firewall-cmd --permanent --add-port=443/tcp #在防火墙中添加该端口
firewall-cmd --reload #重新加载防火墙配置

生成认证文件:
yum install crypto-utils.x86_64 -y #安装提供生成认证文件的工具
genkey www.toto.com #使用工具提供的命令genkey 生成认证
执行之后按照以下步骤选择相关选项

这里需要稍等一会

敲击键盘随机获取加密字符

只为实验,选择不发送给CA进行认证

编写证书信息

完成后可查看到生成了认证文件:

vim /etc/httpd/conf.d/ssl.conf

101 SSLCertificateFile /etc/pki/tls/certs/www.toto.com.crt    #指定认证文件

109 SSLCertificateKeyFile /etc/pki/tls/private/www.toto.com.key

systemctl restart httpd #重启服务

查看效果:访问测试 https://www.toto.com 查看是否生成专属认证

2、设定https虚拟主机并设定网页重写

vim /etc/httpd/conf.d/login.conf #在副配置目录中编写配置文件

<VirtualHost *:443> #443端口的虚拟主机
ServerName login.toto.com #指定的的服务名称
DocumentRoot /virtdir/login/html #默认发布目录
SSLEngine on #安全认证功能开启
SSLCertificateFile /etc/pki/tls/certs/www.toto.com.crt #认证文件
SSLCertificateKeyFile /etc/pki/tls/private/www.toto.com.key #认证钥匙文件

<VirtualHOst *:80>     #80端口的虚拟主机
        ServerName      login.toto.com      #指定服务名称
        RewriteEngine   on       #网页重写功能开启
        RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]     #设定重写规则
</VirtualHost>

systemctl restart httpd #重新启动服务

^(/.*)$ #客户在浏览器地址中输入的所有字符
https:// #强制客户加密访问
%{HTTP_HOST} #客户请求主机
$1 #“1”表示(/.*)的值
[redirect=301] #永久转换301;临时重写 302

创建虚拟主机发布目录以及发布文件

测试端对在本地解析文件中对 login.toto.com 进行解析
使用 login.toto.com 进行访问 会自动重写成 https://login.toto.com/
第一次需要添加证书

本文来源 互联网收集,文章内容系作者个人观点,不代表 本站 对观点赞同或支持。如需转载,请注明文章来源,如您发现有涉嫌抄袭侵权的内容,请联系本站核实处理。

© 版权声明

相关文章