HTTPS通信安全及证书管理

https://blog.csdn.net/weixin_33729196/article/details/92270606

 

HTTPS基础

  • 基于安全套接字协议(TLS/SSL)之上的HTTP通信协议
  • 可用于抵御 窃听、篡改、冒充、劫持 攻击,实现 身份验证、信息加密、完整性校验
  • 其在TCP协议三次握手之后增加了四次握手

PKI体系原理

  1. CA机构审核服务商身份信息后利用私钥签名其证书请求来签发证书
  2. 客户端利用CA机构公钥校验服务商证书上的签名从而验证其身份

SSL/TLS

SSL/TLS 是 PKI 体系的一种实现

  • TLS: 传输层安全协议(Transport Layer Security),基于RSA加密算法
  • SSL:TLS的上一代产品,已废弃

SSL/TLS通信流程

  1. 客户端请求建立加密通信等 +随机数1
  2. 服务器返回证书(内含非对称加密公钥)等 +随机数2
  3. 客户端校验证书并从中取出公钥,通知服务端握手结束等 +公钥加密随机数3
  4. 服务端私钥解密随机数3,并通知客户端握手结束等
  5. 两端各自基于三个随机数生成对称加密秘钥session key,通信进入常规http协议并用session key加密

证书概要

证书是CA为服务商签发的身份认证凭据

  • 浏览器默认已内置了常用 CA根证书(CA的自签名证书)
  • 我们可选用免费的CA机构 Let's Encrypt 签发的证书
  • 证书可通过信任链传递有效性
  • 证书内容包括
    • CA私钥签名、CA公钥、签发机构、域名、申请者等
    • 可能存在的信任链(如果不是CA根证书签发的话)
  • 证书主要分两类:
    • 自签名证书
    • CA证书(可用于签名其他证书)
  • 有两种方式吊销证书:
    • CRL 文件
    • OCSP
  • 证书格式

常规证书签发

openssl genrsa -out domain.key 4096  # 网站先生成 rsa加密的私钥
openssl req -new -key domain.key -out domain.csr  # 基于 网站私钥 生成 证书请求csr
 
# csr证书请求 被签名后 转换为证书
# 证书可由商业CA机构签发 或 以下方式自行签发3种证书:
openssl x509 -req -in domain.csr -signkey domain.key -out domain.crt  # 基于网站私钥 签发 自签名证书
openssl x509 -req -in domain.csr -signkey domain.key -extensions v3_ca -out domain_ca.crt  # 基于网站私钥 签发 自签名CA证书
openssl x509 -req -in next_domain.csr -CA domain_ca.crt -CAkey domain_ca.key -CAcreateserial -extensions v3_usr -out next_domain_ca.crt  # 基于 CA证书、CAkey 签发 派生域名的CA证书

 

你可能感兴趣的:(网络)