一、概述
HTTP(超文本传输协议)和HTTPS(安全超文本传输协议)是两种用于在网络上传输数据的协议。他们都是应用层协议,建立在TCP/IP协议之上,用于客户端和服务端之间的通信。
二、区别概述
2.1、HTTP(超文本传输协议)
HTTP是互联网上应用最为广泛的网络协议,用于客户端(如浏览器)与服务器之间传输超文本数据。
2.1.1、工作原理
(1)客户端发起请求:客户端(如浏览器)通过URL向服务器发送请求。
(2)服务器响应:服务器接收到请求后,根据请求的内容返回相应的响应数据(如HTML页面、图片等)。
(3)连接关闭:请求和响应完成后,连接关闭。
2.1.2、特点
(1)无状态:每次请求和响应之间是独立的,服务器不会保存客户端请求之间的状态信息。
(2)明文传输:数据以明文形式在网络中传输,容易被窃听和篡改。
(3)简单高效:协议简单,易于理解和实现,适合快速开发和部署。
2.1.3、请求和响应格式
2.1.3.1、请求格式
GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0
Accept: text/html
2.1.3.2、响应格式
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1234<html>...</html>
2.1.4、适用场景
(1)低敏感性数据传输:如公开的网页内容、新闻资讯等。
(2)快速开发和部署:适合对安全性要求不高的场景。
2.2、HTTPS(安全超文本传输协议)
HTTPS是HTTP的加密版本,通过在HTTP的基础上加入SSL/TLS(安全套接层/传输层安全)协议来实现数据的加密传输。
2.2.1、工作原理
(1) 客户端发起请求:客户端向服务端发送一个例如(www.example.com)的请求。
(2)服务端响应:服务器首先会给客户端发送自己的公钥和证书。
(3)客户端验证证书:客户端浏览器会去CA机构验证证书的合法性,如果不合法则会报出不安全提示;如果合法则会产生一个随机数R。
(4)客户端加密:基于证书合法的情况,客户端会用公钥对随机数R进行加密,回传给服务端。
(5)服务端解密/加密:服务端会用私钥对回传的数据进行解密,得到随机数R。并以随机数R为密钥对运用对称加密算法,对传输的数据进行加密,回传给客户端。
(6)客户端解密:客户端以随机数R为密钥对,运用对称加密算法对收到的数据进行解密,得到数据。

2.2.2、特点
(1)安全性高:数据通过SSL/TLS加密,防止数据被窃听和篡改。
(2)身份验证:通过数字证书验证服务器的身份,防止中间人攻击。
(3)完整性保护:数据在传输过程中不会被篡改。
(4)兼容性好:与HTTP协议兼容,只需在HTTP的基础上进行加密。
2.2.3、请求和响应格式
HTTPS的请求和响应格式与HTTP相同,但数据在传输过程中是加密的,无法被中间设备直接读取。
2.2.4、适用场景
(1)敏感数据传输:如银行交易、在线支付、个人隐私信息等。
(2)保护用户隐私:防止用户数据被第三方窃取。
(3)提升网站可信度:使用HTTPS的网站在浏览器中显示为“安全”网站,提升用户信任度。
2.3、HTTP与HTTPS主要区别展示
|
特性 |
HTTP |
HTTPS |
|
协议 |
超文本传输协议 |
安全超文本传输协议 |
|
端口 |
80 |
443 |
|
传输方式 |
明文传输,数据不加密 |
加密传输,数据通过SSL/TLS加密 |
|
安全性 |
低,数据容易被窃听和篡改 |
高,数据加密,防中间人攻击 |
|
性能 |
略高,无需加密和解密操作 |
略低,需要进行SSL/TLS握手和数据加密 |
|
成本 |
无额外成本 |
需要购买SSL证书 |
|
适用场景 |
适合低敏感性数据传输 |
适合好敏感性数据传输 |
三、HTTPS集群部署演示
3.1、服务器配置
服务器web01 10.0.0.7 172.16.1.7
服务器web02 10.0.0.8 172.16.1.8
负载均衡服务器lb 10.0.0.6 172.16.1.6
数据库服务器mysql 10.0.0.51 172.16.1.51
3.2、获取证书
(1)购买证书
(2)自己充当CA机构生成假证书(本次演示以此为例)
3.3、生成假证书(在负载均衡服务器)
3.3.1、创建证书存放目录
mkdir /etc/nginx/ssl_key
3.3.2、创建假证书并生成密码
openssl genrsa -idea -out server.key 2025
3.3.3、生成自签证书同时去掉私钥密码
openssl req -days 36500 -x509 \
-sha256 -nodes -newkey rsa:2025 -keyout server.key -out server.crt
3.3.4、生成证书形式
-rw-r--r-- 1 root root 1371 Dec 17 12:23 server.crt #公钥
-rw------- 1 root root 1675 Dec 17 12:22 server.key #私钥
3.4、在负载均衡服务器上配置 (搭建wp网站)
3.4.1、安装Nginx官方仓库
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
3.4.2、下载安装Nginx
yum -y install nginx
3.4.3、编辑配置文件
vim /etc/nginx/conf.d/lb.conf
upstream lb {
server 172.16.1.7:80;
server 172.16.1.8:80;
}
server {
listen 443 ssl;
server_name www.wp.com;
root /app/wp;
location / {
index index.php index.html;
}
location ~ \.php$ {
proxy_pass http://lb;
proxy_set_header HOST $http_host;
}
}
server {
listen 80;
server_name www.wp.com;
return 302 https://$server_name$request_uri;
}
3.4.4、检查配置文件语法正确性
nginx -t
3.4.5、启动Nginx并加入开机自启动
systemctl start nginx
systemctl enable nginx
3.5、服务器配置网站
3.5.1、安装Nginx官方仓库
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
3.5.2、下载安装Nginx
yum -y install nginx
3.5.3、创建启动用户
groupadd -g 666 www
useradd -u 666 -g 666 -M -s /sbin/nologin www
3.5.4、修改Nginx启动用户
vim /etc/nginx/nginx.conf
user www;
worker_processes auto;error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
3.5.5、启动Nginx并加入开机自启动
systemctl start nginx
systemctl enable nginx
3.5.6、安装PHP服务
yum -y install php php-bcmath php-cli php-common php-devel php-embedded php-fpm php-gd php-intl php-mbstring php-mysqlnd php-opcache php-pdo php-process php-xml php-json
3.5.7、修改PHP配置文件
vim /etc/php-fpm.d/www.conf
同步启动用户与Nginx保持一致 www用户
24:user = www
26:group = www
修改监听方式
38:listen = 127.0.0.1:9000
3.5.8、启动PHP服务并加入开机自启动
systemctl start php-fpm
systemctl enable php-fpm
3.5.9、编辑网站配置文件
vim /etc/nginx/conf.d/wp.conf
server {
listen 80;
server_name www.wp.com;
root /app/wp;
location / {
index index.php index.html;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
3.5.10、检查配置文件语法正确性
nginx -t
3.5.11、重启Nginx服务
systemctl restart nginx
3.5.12、创建代码目录
mkdir -p /app/wp
3.5.13、上传代码到代码目录文件并解压
/app/wp
tar zxf wordpress-5.0.3-zh_CN.tar.gz
3.5.14、修改代码目录的属主和属组
chown -R www.www /app/wp
3.6、数据库服务器配置
3.6.1、安装数据库
yum -y install mariadb-server
3.6.2、启动数据库并加入开机自启动
systemctl start mariadb-server
systemctl enable mariadb-server
3.6.3、设置数据库登录密码
mysqladmin password 'lyx123.com'
3.6.4、登录数据库
mysql -uroot -plyx123.com
3.6.5、创建远程登录数据库用户
grant all on *.* to lyx@'%' identified by 'lyx123.com';
3.6.6、创建网站数据库
create database wordpress;
3.7、本地hosts解析
10.0.0.7 www.wp.com
3.8、浏览器访问
3.9、访问后将服务器web01中的代码同步到服务器web02
rsync -avz --delete /app/wp root@10.0.0.8:/app/wp
3.10、本地hosts解析
10.0.0.6 www.wp.com
四、总结
随着网络安全意识的提高,HTTPS的使用越来越广泛,许多网站已经全面转向HTTPS,以保护用户数据和隐私。
1158

被折叠的 条评论
为什么被折叠?



