目录

一、SSL

Ⅰ、概述

Ⅱ、SSL证书

Ⅲ、HTTPS

Ⅳ、SSL工作原理

二、创建SSL证书

Ⅰ、安装openssl

 Ⅱ、生成证书

 三、nginx配置

Ⅰ、nginx打补丁添加模块

 Ⅱ、nginx.conf配置

四、访问


一、SSL

Ⅰ、概述

SSL(Security Socket Layer)是一个安全协议,为基于TCP(Transmission Control Protocol)的应用层协议提供安全连接,SSL介于TCP/IP协议栈第四层和第七层之间。主要提供私密性、完整性和身份验证;我们常见的就是 SSL为HTTP(Hypertext Transfer Protocol)协议提供安全连接。SSL协议是一种在两个机器之间提供安全通道的协议,它具有保护数据传输以及识别通信机器的功能

Ⅱ、SSL证书

SSL证书是数字证书的一种,由权威数字证书机构(CA)验证网站身份后颁发,可实现浏览器和网站服务器数据传输加密。网站安装SSL证书后会在浏览器显示安全锁标志,数据传输协议从http(传统协议) 升级为 https(加密协议)

Ⅲ、HTTPS

安全的原理是基于HTTP+TCL/SSL协议组合实现的,所以HTTP和HTTPS的主要区别本质在于TCL/SSL安全协议上的区别。HTTPS是一种安全的协议,通过密钥交换算法 - 签名算法 - 对称加密算法 - 摘要算法确保安全

默认443端口

Ⅳ、SSL工作原理

1、浏览器发送一个https的请求给服务器;
2、服务器要有一套数字证书,可以自己制作,也可以向组织申请,这套证书其实就是一对公钥和私钥;
3、服务器会把公钥传输给客户端;
4、客户端(浏览器)收到公钥后,会验证其是否合法有效,无效会有警告提醒,有效则会生成一串随机数,并用收到的公钥加密;
5、客户端把加密后的随机字符串传输给服务器;
6、服务器收到加密随机字符串后,先用私钥解密(公钥加密,私钥解密),获取到这一串随机数后,再用这串随机字符串加密传输的数据(该加密为对称加密,所谓对称加密,就是将数据和私钥也就是这个随机字符串通过某种算法混合在一起,这样除非知道私钥,否则无法获取数据内容);
7、服务器把加密后的数据传输给客户端;
8、客户端收到数据后,再用自己的私钥解密。

二、创建SSL证书

Ⅰ、安装openssl

yum install -y openssl openssl-devel

 Ⅱ、生成证书

创建一个证书存放目录

mkdir -p /etc/nginx/ssl_key

创建私钥、生成证书

openssl genrsa -idea -out server.key 2048
openssl req -days 3650 -x509 -sha256 -nodes -newkey rsa:2048 -keyout server.key -out server.crt

win nginx安装ssl模块 nginx的ssl模块_win nginx安装ssl模块

         req 表示证书输出的请求

        -days 3650 时间=10 年

        -x509 签发x509格式证书命令

        -newkey  此选项创建一个新的证书请求和一个新的私钥。

        -key密钥

        -new表示新的请求

        -out输出路径

win nginx安装ssl模块 nginx的ssl模块_nginx_02

win nginx安装ssl模块 nginx的ssl模块_服务器_03

 三、nginx配置

手工编译安装nginx:nginx-1.22.0手工编译安装

Ⅰ、nginx打补丁添加模块

cd /opt/nginx-1.22.0/
#nginx安装包目录

nginx -V
#查看是否安装了SSL模块,*如果显示没有此命令,作如下操作
vim /etc/profile
PATH=$PATH:/usr/local/nginx/sbin
export PATH

source /etc/profile

#如果没有,进行打补丁操作
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module \  
--add-module=/opt/nginx/nginx-module-vts-master \  
--with-http_ssl_module  
#监控模块
#ssl模块

make
#注意不要进行make install

systemctl stop nginx
cp ./objs/nginx /usr/local/nginx/sbin/
#复制并进行覆盖,如果需要保留前版本,注意先进行备份转移

 Ⅱ、nginx.conf配置

vim /usr/local/nginx/conf/nginx.conf

#-----省略部分内容-----
server {
        listen       443 ssl;                                #SSL 访问端口为443
        server_name  www.lvjiapeng.com;                      #证书绑定域名
        charset utf-8;
        access_log  /var/log/nginx/nginx.log;                #日志文件
        ssl_certificate /etc/nginx/ssl_key/server.crt;       #证书文件位置
     	ssl_certificate_key /etc/nginx/ssl_key/server.key;   #私钥文件位置
      	
location / {
            root   html;
            index  index.html index.htm;
        }
      }

#-----省略部分内容-----
server {
     listen   80;
     server_name www.lvjiapeng.com;
     rewrite .* https://$server_name$1 redirect;
      }

#-----省略部分内容-----

---wq

四、访问

win nginx安装ssl模块 nginx的ssl模块_nginx_04