https双向认证

 

https ssl tls  加密通信过程

 

1.公钥和私钥【非对称加密】

公钥加密的数据只有私钥可以解密,私钥加密的数据只有公钥可以解,公钥是不安全的,在通信链路上会相互发送,可能被黑客获取,私钥存放在用户主机上。

A-》B

用A的私钥加密,签名,保证发送方的真实性。

再用B的公钥加密,只有B能解开,保证数据安全性。

 

对称加密用一个密码,容易被破解,战争期间用一个必须人为传送,送命很常见。

非对称加密,都拥有公钥和自己的私钥,先用自己私钥解密再用对方公钥解密即可。

公钥和私钥都可以用来加密数据,相反用另一个解开,公钥加密数据,然后私钥解密的情况被称为加密解密,私钥加密数据,公钥解密一般被称为签名和验证签名.

https认证传输服务端公钥,然后将密钥用公钥加密,对方用密钥解密得到密码。以后用词密码通信加解密即可。【对称加解密】

详解:

https://blog.csdn.net/zxh2075/article/details/79967227

https://blog.csdn.net/udeankyd/article/details/81059704

https://www.cnblogs.com/darksir/p/3704198.html

 

单向双向证书自定义CA

https://www.cnblogs.com/dreamingodd/p/7357029.html

https://blog.csdn.net/weixin_30531261/article/details/80891360

2.单向和双向认证

https://blog.csdn.net/qq_25406669/article/details/80596664

单向认证【客户端校验服务端证书,需要服务端配置证书】

双向认证【服务端也需要校验客户端证书,需要在客户端配置证书】

 

服务端配置证书:

server {
  listen 443;
  server_name test.com www.test.com;
  root html;
  index index.html index.htm;

  ssl on;                                     #开启ssl
  ssl_certificate  /PATH/TO/test.com.crt;    #服务器证书位置
  ssl_certificate_key /PATH/TO/test.com.key;  #服务器私钥
  ssl_client_certificate /home/zhangyong/key/ca.crt;     #CA证书用于验证客户端证书的合法性
 
  ssl_verify_client       on;                      #开启对客户端的验证
  ssl_session_timeout 5m;                        #session有效期,5分钟
 
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers 'AES128+EECDH:AES128+EDH:!aNULL';       #加密算法
  ssl_prefer_server_ciphers on;
 
  location / {
    try_files $uri $uri/ =404;
  }   

 

 

客户端配置证书。

proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

proxy_ssl_ciphers "RC4-SHA";

proxy_ssl_session_reuse on

proxy_ssl_name $sp_host;

proxy_ssl_server_name on;

set $with_ca_cert 1;

proxy_ssl_verify on;

proxy_ssl_verify_depth 5;

proxy_ssl_trusted_certificate /home/test/client_ca.crt;

 

 

 

 

 

 

你可能感兴趣的:(https认证)