CA & HTTPS 与 平滑升级

本文详细介绍了加密原理,包括对称加密、非对称加密和哈希算法的应用,以及CA与HTTPS的关系,重点讲解了私有CA的生成和部署,以及Nginx的平滑升级过程。
摘要由CSDN通过智能技术生成

一、加密原理

1、对称加密:

对称加密使用相同的密钥来加密和解密数据,密钥必须保密并安全地共享给合法的通信方。常见的对称加密算法包括 DES 和 AES。

2、非对称加密:

非对称加密包含两套密钥,公钥和私钥。公钥用于加密数据,私钥用于解密数据,公钥可以对外公布,私钥必须保密。常见的非对称加密算法包括 RSA 和 ECC。

3、哈希算法:

哈希算法是将任意长度的输入数据转换为固定长度的输出,相同的输入始终产生相同的哈希值,即使输入数据略微改变,哈希值也会截然不同。常见的哈希算法包括MD5、SHA-256等。

二、CA & HTTPS

1、简介:

(1) CA:Certificate Authority 证书颁发机构,它是数字证书颁发和管理的机构或实体。CA 的主要责任是验证和确认公钥与特定实体(如网站、个人或组织)的身份,并为其签发数字证书,数字证书主要应用在 HTTPS 协议中。

(2) HTTPS:HTTP + SSL,是一种安全传输数据的通信协议,HTTPS 通过在HTTP 通信过程中使用加密技术来保护数据的机密性和完整性。

2、私有 CA

(1) 概念:

私有 CA 是组织内部自定义的数字证书,主要用于内部网络系统,而不是公网。

(2) 生成证书及密钥文件

① 准备存放证书和密钥的目录:mkdir -p /etc/nginx/ssl

② 生成私钥:

openssl genrsa 1024 > /etc/nginx/ssl/server.key

这段代码使用 OpenSSL 工具生成一个 RSA 私钥,指定私钥长度为 1024 位,并重定向到指定文件 (.key)

③ 使用私钥生成证书签名请求:

openssl  req  -new  -key  /etc/nginx/ssl/server.key  >  /etc/nginx/ssl/server.csr

这段代码使用 OpenSSL 工具创建一个证书签名请求(Certificate Signing Request,CSR),CSR 包含了与证书申请相关的信息,它通常会被提交给证书颁发机构(CA),以便获得一个数字证书。

● req:这是 OpenSSL 的子命令,用于处理证书请求和相关操作 ;-new:创建一个新的证书签名请求。

● -key /etc/nginx/ssl/server.key:指定私钥文件的路径,该私钥将与 CSR 相关联。

● > /etc/nginx/ssl/server.csr:将生成的 CSR 内容重定向至指定的位置。

④ 生成数字证书:

openssl  req  -x509  -days  365  -key  /etc/nginx/ssl/server.key  -in  /etc/nginx/ssl/server.csr >  /etc/nginx/ssl/server.crt

● -x509:生成自签名数字证书(不经过公共证书颁发机构 (CA) 签名的证书);

   -days 365:证书的有效期为 365 天

● -key /etc/nginx/ssl/server.key:指定密钥文件;

● -in /etc/nginx/ssl/server.csr:指定证书文件;

● > /etc/nginx/ssl/server.crt:生成的数字证书保存路径

(3) 私有 CA 部署

① 创建目录

编写配置文件并进行域名解析

server {

        listen 443 ssl;

        server_name www.b.com;

        ssl_certificate /etc/nginx/ssl/server.crt;

        ssl_certificate_key /etc/nginx/ssl/server.key;

        location / {

                root /usr/share/nginx/html/b;

                index index.html index.htm;

        }

}

指定证书文件和私钥文件路径:

ssl_certificate /etc/nginx/ssl/server.crt;

ssl_certificate_key /etc/nginx/ssl/server.key;

② 查看 443 端口是否启动

查看测试网页,是私有 CA,证书签名不安全,火狐浏览器会进行风险提醒。

三、nginx 平滑升级

1、概念:

Nginx平滑升级(Smooth Upgrade)是指在不中断正在运行的 Nginx 服务器的情况下,将 Nginx 软件本身或其配置文件进行升级。

2、操作流程(1.24.0 平滑升级到 1.25.2)

① 查看 nginx 当前版本:

② 解压新的安装包,编译:

./configure + nginx 原有编译参数 && make

● ./configure 命令用于配置 Nginx 的编译选项,指定了用户、用户组、安装目录以及要启用的模块等信息;

● make 命令会根据前面配置的选项,开始编译 Nginx 源代码。

● 报错信息及解决办法

./configure: error: C compiler cc is not found

安装 gcc 编译器:

yum -y install gcc gcc-c++ autoconf automake make

./configure: error: the HTTP rewrite module requires the PCRE library.

安装 PCRE:

yum -y install pcre-devel openssl openssl-devel

③ 备份旧的 nginx 可执行文件:

mv  /usr/sbin/nginx  /usr/sbin/nginx_$(date +%F)

④ 复制新的 nginx 可执行文件:

查看新的可执行文件存放的位置:

复制到原路径下:

测试新版本的 nginx 是否正常:

/usr/sbin/nginx  -t:-t 是一个命令行选项,表示进行配置文件的测试,运行这个命令时,Nginx 将读取配置文件并检查其语法和结构是否正确。

⑤ 向 nginx 发送平滑重载信息:

kill  -USR2  `cat /var/run/nginx.pid`

这个命令的作用是向 nginx 主进程发送 USR2 信号来触发 nginx 的平滑重载,平滑重载操作允许在不中断当前正在处理的连接的情况下,重新加载Nginx的配置文件。

● kill -USR2:发送 USR2 信号,USR2 是 nginx 的信号类型,用于触发平滑重载操作;

● cat /var/run/nginx.pid 是一个子命令,用于读取Nginx主进程的PID(进程ID)文件中的内容,并将其作为参数传递给 kill 命令。

nginx.pid.oldbin 文件是在执行 nginx 平滑升级时创建的。这个文件的作用是在升级过程中保留旧版本的 Nginx 主进程的进程 ID(PID),以便在升级成功后能够进行回滚操作。

kill -WINCH `cat /var/run/nginx.pid.oldbin`

kill -HUP `cat /var/run/nginx.pid.oldbin`

kill -QUIT `cat /var/run/nginx.pid.oldbin`

WINCH 信号用于触发 Nginx 主进程执行平滑重载操作;

HUP 信号用于请求 Nginx 主进程重新加载其配置文件;

QUIT 信号它会等待正在处理的连接完成,然后停止 Nginx 服务。

⑥ 查看 nginx 是否升级成功:

可以看到此时的 nginx 已由 1.24.0 升级到 1.25.2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值