一、网站传输协议
-
http
-
80/tcp
-
数据以明文的方式传输
-
-
https
-
443/tcp
-
数据以加密的方式传输
-
二、安全性保障
-
数据安全性————-对称加密算法
-
加密、解密、
-
-
数据完整性————-hash算法
-
校验算法、MD5/SHA hash哈希算法
-
-
身份的真实性保障———–证书
-
客户端访问百度服务器时,确保访问的确实是百度,而不是恶意的钓鱼网站
-
三、数据安全性的保障
通过加密算法确保数据的安全
发送方发送数据前要加密、接收方解密
1、对称加密算法
-
加密数据时,使用的密钥、解密的密钥是一样的
-
典型的对称加密算法,安全性从低到高排序,
-
DES
-
3DES
-
AES
-
加密数据
-
opensll enc:加密命令
-
-e:给数据加密
-
-d:给数据解密
-
-des:加密算法
-
-in:给哪个数据进行加密
-
-out:加密后的数据另存为
[root@localhost ~]# openssl enc -e -des -in /opt/file01 -out /opt/file01_s enter des-cbc encryption password: Verifying - enter des-cbc encryption password:
解密数据
# openssl enc -d -des -in /opt/file01_s -out /opt/file01 enter des-cbc decryption password:
2、非对称加密算法
加密解密数据时用的算法是不一样的
使用密钥对{公钥、私钥}
-
公钥加密
-
私钥解密
-
典型的非对称加密算法
-
公钥对和私钥对用什么数学算法生成
-
RSA:常用,安全性高,数学算法较复杂,但加密时间长
-
DSA:安全性低,但加密时间快
-
3、实际使用
-
使用对称算法加密真实数据,使用非对称加密算法加密对称算法的密钥
四、数据完整性保证
1、校验算法
-
MD5
-
只要数据内容本身没有改变,不管是第几个校验码都是一样的
-
校验码本身就是数据的加密
-
-
SHA
-
这两个算法统称为hash(哈希)算法
发送数据时,使用校验算法对数据进行校验,生成校验码,同时将数据+校验码发送出去
接收方接收数据,使用相同的校验算法再次进行校验,对比校验码
五、身份的真实性
1、密钥对
-
数据加密(客户端与服务器之间)
-
公钥加密、私钥解密
-
-
验证签名(CA证书颁发机构)
-
私钥签名、公钥验证签名
-
流程:
电商服务器生成证书申请【.csr文件】, 同时将电商服务器的公钥放入证书申请;将证书申请发送给CA
CA审批信息, 通过后CA会使用自己的私钥进行签名;相当于签署证书【.crt】
客户端访问电商服务器时,服务器会将证书信息发送给客户端
客户端通过CA的公钥验证证书,验证通过后可获取电商服务器的公钥
客户端选取对称算法、生成对称算法密钥对,使用非对称加密公钥加密,发送给服务器、服务器解密
利用对称加密算法进行真实数据交互
六、配置基于https协议的虚拟主机
1、配置私有CA
-
生成密钥对
-
先创建CA服务器需要的数据库文件
[root@ca ~]# touch /etc/pki/CA/index.txt [root@ca ~]# echo 01 > /etc/pki/CA/serial
-
创建CA服务器需要的密钥
[root@ca ~]# openssl genrsa -out /etc/pki akey.pem 1024 Generating RSA private key, 1024 bit long modulus ..++++++ .....++++++ e is 65537 (0x10001)
-
-
生成自签证书
[root@ca ~]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3650
2、在Web-server上申请证书
-
在web-server创建密钥
安全套接字(Secure Socket Layer,SSL)协议是Web浏览器与Web服务器之间安全交换信息的协议,提供两个基本的安全服务:鉴别与保密。
[root@web_server ~]# mkdir /etc/httpd/ssl [root@web_server ~]# openssl genrsa -out /etc/httpd/ssl/www.linux.com.key 2048
-
创建证书申请
-
注意:申请证书的国家地区省份需要与CA对应一致,否则不能颁发证书
-
[root@localhost ~]# openssl req -new -key /etc/httpd/ssl/www.linux.com.key -out /etc/httpd/ssl/www.linux.com.csr
-
将证书申请发送给CA
[root@web_server ~]# rsync -av /usr/local/nginx/ssl/www.linux.com.csr root@192.168.140.11:/tmp/
3、CA签署证书
[root@ca ~]# openssl ca -in /tmp/www.linux.com.csr -out /etc/pki/tls/certs/www.linux.com.crt -days 3650
-
查看生成的证书
[root@ca ~]# ls /etc/pki/tls/certs/ ca-bundle.crt ca-bundle.trust.crt make-dummy-cert Makefile renew-dummy-cert www.linux.com.crt
-
查看签发证书数量
[root@ca ~]# cat /etc/pki/CA/serial 02
-
查看签发证书数据库信息
[root@ca ~]# cat /etc/pki/CA/index.txt V 310619060654Z 01 unknown /C=cn/ST=bj/O=bj/OU=bj/CN=www.linux.com/emailAddress=bj@qq.com
4、将证书发送给web-server
[root@ca ~]# rsync -av /etc/pki/tls/certs/www.linux.com.crt root@192.168.140.10:/etc/httpd/ssl
5、在web-server安装mod_ssl模块
[root@localhost ~]# yum install -y mod_ssl
6、创建网页目录,测试文件
[root@localhost ~]# mkdir /linux [root@localhost ~]# vim /linux/index.html <h1> www.linux.com </h1>
7、配置ssl虚拟主机
[root@localhost ~]# vim /etc/httpd/conf.d/ssl.conf .................... <VirtualHost _default_:443> # General setup for the virtual host, inherited from global configuration DocumentRoot "/linux" ServerName www.linux.com:443 SSLCertificateFile /etc/httpd/ssl/www.linux.com.crt SSLCertificateKeyFile /etc/httpd/ssl/www.linux.com.key <Directory "/linux"> Require all granted </Directory> [root@localhost ~]# httpd -t AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message Syntax OK [root@localhost ~]# systemctl restart httpd [root@localhost ~]# netstat -antp | grep http tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 7144/httpd tcp6 0 0 :::443 :::* LISTEN 7144/httpd
8、测试访问
七、配置https自动跳转
浏览器默认访问服务器用http协议
跳转到加密主机需要修改配置文件
具体修改哪个配置文件就要看单独写主机名的时候,默认跳转到了哪个网页,跳转到哪个主机,就修改哪个主机的配置文件
1、增加三行配置
-
开启重定向功能
RewriteEngine On
-
%{HTTP_HOST}
-
httpd中的变量,表示的是客户端访问服务器时候写的是什么主机名
-
-
[NC]
-
忽略大小写;
-
RewriteCond %{HTTP_HOST} www.linux.com [NC]
-
^/
-
写的主机名最右边是以/开头的,进行跳转
-
-
[L]
-
立即
-
RewriteRule ^/ https://www.linux.com [L]
原文链接:https://blog.csdn.net/ljh451321/article/details/122568721