33、nginx-CA和https(http+ssl(安全套接字))私有CA--网站加密(443 ssl https)-加密密钥key、证书请求文件csr、加密证书crt

算法:将原有的值通过一些算法来进行加密

  对称算法(加密和解密的过程用的钥匙是相同的):AES\DES\3DES

  非对称算法(加密和解密的过程中使用的钥匙是不一样的):DH\RSA

  hash算法:MD5

=========================================SSL 安全套接字===========================================================

一份 SSL 证书包括:

  ·公共密钥:公共密钥用于加密信息

  ·私用密钥:私用密钥用于解译加密的信息

概念:SSL 证书 [1] 就是遵守 SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。
    :只有颁发了ssl证书的网站才能在用户(客户端)访问的时候进行身份信息、密码等个人信息的加密(保密)
    :通过激活SSL协议,实现数据信息在客户端和服务器之间的加密传输,可以防止数据信息的泄露,保证了双方传递信息的安全性,而且用户可以通过服务器证书验证他所访问的网站是否是真实可靠

可以这样理解,我有一个箱子,一把锁和一把钥匙,我把箱子和开着的锁给别人,他写了信放箱子里,锁上,然后传递回我手上的途中谁都是打不开箱子的,只有我可以用原来的钥匙打开,这就是SSL

#而这个过程中‘我’是服务端、‘别人’是客户端、钥匙是私钥(解密用)、锁是公钥(公钥谁都可以用)、箱子是数据传输、信就是证书请求文件(csr)-信上写着别人的私密信息

 

================================私有CA==========================================================================

CA(证书颁发机构 -Certificate  Authority):

私有CA:基于https的协议工作中的一种虚拟机、要构建这样的网站需要mode_ssl模块的支持、且需要提供两个文件:证书文件和私钥文件、证书文件是标识这个网站服务器的身份的、私钥文件主要用来实现服务器端对数据进行加密,然后再网站中传输的。证书在生产生活中需要到对应的机构去申请、在实验环境中本应该搭建一台证书服务器

=============================================================================

1、生产密钥文件和证书文件:key(密钥)、csr(证书请求文件、用户生成证书)、crt(证书)

1、创建一个目录放密钥文件:mkdir -p /etc/nginx/ssl
2、生成私钥:openssl genrsa 1024 > /etc/nginx/ssl/server.key    //实验openssl生成基于rsa数学算法长度为1024bit的密钥、文件必须以.key结尾
==========================================================================
Generating RSA private key, 1024 bit long modulus
...++++++
................++++++
e is 65537 (0x10001)

=============================================================================
3、使用密钥文件server.key生成用户证书:openssl req  -new  -key /etc/nginx/ssl/server.key > /etc/nginx/ssl/server.csr       //证书文件要以csr结尾    req是申请、-new一个新的  -key密钥
============================================================================================================
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN     //这里询问的是国籍 
State or Province Name (full name) []:GZ   //省会
Locality Name (eg, city) [Default City]:GZ   //城市
Organization Name (eg, company) [Default Company Ltd]:self_group    //起源组织
Organizational Unit Name (eg, section) []:CLOUD     //组织单位
Common Name (eg, your name or your server's hostname) []:nginx.linux.com    //你的名字或者服务器的名字
Email Address []:303977143@qq.com    //邮件地址
A challenge password []:123456      //证书打开的时候需要的密码(可以为空)
An optional company name []:123456    //再确认密码

==============================================================================================================
4、查看密钥文件和证书文件:ls /etc/nginx/ssl/
======================================
server.csr  server.key
======================================

5、申请生成加密证书crt:openssl req -x509 -days 365 -key /etc/nginx/ssl/server.key -in /etc/nginx/ssl/server.csr > /etc/nginx/ssl/server.crt           //-x509证书的格式、固定的;days证书的有效期,生产生活中时间不同,价格不同;key指定密钥文件;in指定证书申请文件

6、查看证书:ls /etc/nginx/ssl/

2、私有CA的https部署实战:

1、创建目录:[root@localhost ~]# mkdir /home/xiaoixn
2、创建index.html文件:[root@localhost ~]# echo "xiaoxin ssl web" > /home/xiaoixn/index.html
3、配置一个加密网站:vim /etc/nginx/conf.d/xiaoxin.conf
=======================================
server {
        listen 443 ssl;                                          //监听443端口  使用加密方式
        server_name www.xiaoxin.com;

        ssl_certificate /etc/nginx/ssl/server.crt;              //加密证书
        ssl_certificate_key /etc/nginx/ssl/server.key;     //加密密钥

        location / {
                root /home/xiaoxin;
                index index.html;
        }
}
=========================================
4、重启nginx服务
5、查看端口是否有443端口:ss -tunlp | grep nginx
6、访问网页:https://www.xiaoxin.com/

 

 

 

posted @ 2024-06-04 18:05  little小新  阅读(9)  评论(0编辑  收藏  举报