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/