《HTTP和HTTPS:网络安全的“超级英雄”!》

一、概述

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,以保护用户数据和隐私。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值