博客
关于我
HTTPS通信安全及证书管理
阅读量:264 次
发布时间:2019-03-01

本文共 1445 字,大约阅读时间需要 4 分钟。

HTTPS基础

HTTPS是基于安全套接字协议(TLS/SSL)之上的HTTP通信协议

其核心优势在于能够抵御窃听、篡改、冒充、劫持等多种攻击方式,通过身份验证、信息加密以及完整性校验来保障通信安全

相比HTTP协议,HTTPS在TCP协议的三次握手之后增加了四次握手过程,从而实现了加密通信

PKI体系原理

PKI体系是公钥基础设施的简称,其核心功能是通过数字证书来管理公钥的分发与信任

在PKI体系中,信任方通常由受可信的证书颁发机构(CA机构)签名并分发

具体流程如下:CA机构审核申请方的身份信息后,利用其私钥对服务商的证书请求进行签名

服务商证书中包含CA机构的公钥,这样客户端可以利用CA机构的公钥来验证服务商证书上的签名,从而确认服务商的身份

SSL/TLS协议

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

TLS是传输层安全协议的最新版本,基于RSA加密算法进行通信加密

SSL是TLS的上一代产品,已被废弃

SSL/TLS通信流程

SSL/TLS通信过程可分为以下几个阶段:

  • 客户端发送加密通信请求及随机数1
  • 服务器返回证书(包含非对称加密公钥)及随机数2
  • 客户端验证证书真实性,并从中提取公钥,通知服务器握手结束等,同时发送随机数3加密后的数据
  • 服务器利用私钥解密随机数3,并通知客户端握手结束等
  • 两端基于三个随机数生成对称加密秘钥session key,随后进入常规HTTP协议通信,并使用session key进行加密
  • 证书概要

    证书是CA机构基于申请方的服务商身份信息签发的身份认证凭据

    浏览器预装了常用CA根证书,这些根证书由可信的CA机构签发

    对于开发者而言,可以选择使用免费的CA机构如Let's Encrypt签发的证书

    证书可通过信任链传递有效性,信任链由CA机构的自签名证书开始

    证书内容通常包括:CA私钥签名、CA公钥、签发机构信息、域名、申请者信息等

    证书主要分为两类:自签名证书和CA证书

    证书吊销方式包括CRL文件和OCSP(在线证书状态查询)

    常见的证书格式包括X.509、PKCS#7等

    常规证书签发步骤

    以下是使用openssl工具生成和签发证书的常规步骤:

    openssl genrsa -out domain.key 4096  # 生成RSA私钥domain.key  openssl req -new -key domain.key -out domain.csr  # 基于domain.key生成证书请求 CSR  openssl x509 -req -in domain.csr -signkey domain.key -out domain.crt  # CA机构签发证书domain.crt

    如果需要自签名证书,可使用以下命令:

    openssl x509 -req -in domain.csr -signkey domain.key -extensions v3_ca -out domain_ca.crt  # 生成自签名CA证书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证书的子证书

    转载地址:http://vlxa.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现isalpha函数功能(附完整源码)
    查看>>
    Objective-C实现islower函数功能(附完整源码)
    查看>>
    Objective-C实现isPowerOfTwo算法(附完整源码)
    查看>>
    Objective-C实现isupper函数功能(附完整源码)
    查看>>
    Objective-C实现ItemCF算法(附完整源码)
    查看>>
    Objective-C实现ItemCF算法(附完整源码)
    查看>>
    Objective-C实现iterating through submasks遍历子掩码算法(附完整源码)
    查看>>
    Objective-C实现jaccard similarity相似度无平方因子数算法(附完整源码)
    查看>>
    Objective-C实现Julia集算法(附完整源码)
    查看>>
    Objective-C实现k nearest neighbours k最近邻分类算法(附完整源码)
    查看>>
    Objective-C实现k-Means算法(附完整源码)
    查看>>
    Objective-C实现k-nearest算法(附完整源码)
    查看>>
    Objective-C实现Knapsack problem背包问题算法(附完整源码)
    查看>>
    Objective-C实现knapsack背包问题算法(附完整源码)
    查看>>
    Objective-C实现knapsack背包问题算法(附完整源码)
    查看>>
    Objective-C实现knight tour骑士之旅算法(附完整源码)
    查看>>
    Objective-C实现KNN算法(附完整源码)
    查看>>
    Objective-C实现koch snowflake科赫雪花算法(附完整源码)
    查看>>
    Objective-C实现KPCA(附完整源码)
    查看>>
    Objective-C实现kth order statistick阶统计量算法(附完整源码)
    查看>>