SSL证书链及使用
什么是证书链
证书链简单来说是域名钥证书、CA公钥、根证书形成的一个颁发链条,属于公钥的一部分。
更白话一点,就是证书链文件包含一系列CA机构公钥的证书。
证书链格式
一般证书链格式是.chain,证书定义顺序是倒序的,即先权威CA再根CA。
以根CA+一个权威CA举例:
-----BEGIN CERTIFICATE-----
权威CA公钥
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
根CA公钥
-----END CERTIFICATE-----
证书链中也可包含主体与签发信息,仅用于便于确定证书所属不参与认证,举例:
subject=C = CN, O = XXXX, CN = XXXX RSACA
issuer=C = CN, O = XXXX, CN = XXXX ROOT RSACA
-----BEGIN CERTIFICATE-----
权威CA公钥
-----END CERTIFICATE-----
subject=C = CN, O = XXXX, CN = XXXX ROOT RSACA
issuer=C = CN, O = XXXX, CN = XXXX ROOT RSACA
-----BEGIN CERTIFICATE-----
根CA公钥
-----END CERTIFICATE-----
合并域名证书与证书链
Nginx等web服务器需要将证书链与域名证书合并成PEM文件,作为公钥直接使用。
域名证书内容如下:
-----BEGIN CERTIFICATE-----
域名公钥
-----END CERTIFICATE-----
证书链如下:
-----BEGIN CERTIFICATE-----
权威CA公钥
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
根CA公钥
-----END CERTIFICATE-----
其合并证书链方法,即以 域名证书、权威CA证书、根CA证书 顺序,将证书内容复制到同一文件中。
合并结果如下:
-----BEGIN CERTIFICATE-----
域名公钥
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
权威CA公钥
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
根CA公钥
-----END CERTIFICATE-----
合并出的证书直接作为公钥证书代替证书。
扩展阅读
P7B提取证书链与公钥证书
P7B格式是同时包含证书链和域名公钥证书的,可以通过openssl命令提取。
以下命令输出证书的顺序是不对的,需要按subject和issuer描述调整顺序,域名证书->权威CA->根CA
## p7b可指定PEM或DER格式,也可以经过base64加密
## 以下列出常见几条命令:
# PEM格式未base64
openssl pkcs7 -inform PEM -print_certs -in xxx.p7b -out public.pem
# DER格式未base64
openssl pkcs7 -inform DER -print_certs -in xxx.p7b -out public.pem
# PEM+base64
base64 -d xxx.p7b | openssl pkcs7 -inform PEM -print_certs -out public.pem
# DER+base64
base64 -d xxx.p7b | openssl pkcs7 -inform DER -print_certs -out public.pem
校验PEM证书与密钥是否配套
# 两者输出同样的md5值说明配套
openssl x509 -noout -modulus -in public.pem |openssl md5
openssl rsa -noout -modulus -in private.key |openssl md5
SSL证书链及使用的更多相关文章
- SSL证书链说明
SSL证书链说明 1. SSL证书链定义 证书颁发机构(CA)共分为两种类型:根CA和中间CA.为了使SSL证书被信任,该证书必须由设备所连接的可信存储库CA颁发. 如果该证书不是由受信任CA,该链接 ...
- MQTT研究之EMQ:【SSL证书链验证】
1. 创建证书链(shell脚本) 客户端证书链关系: rootCA-->chainca1-->chainca2-->chainca3 ca caCert1 caCert2 caCe ...
- apache环境下ssl证书链不完整问题解决,原因是缺少中间证书
事情的起因是,对一个网站的升级,从http升级到https,苹果手机可以正常访问,唯独安卓手机出现空白,安卓访问https的时候是出现的空白. 服务器的系统是windows Server 2008 R ...
- nginx配置ssl证书的方法
Nginx (读音"engine x") 是一个高性能的HTTP和反向代理服务器,比Apache占用更少的内存,同时也像Apache一样支持HTTPS方式访问(SSL加密).本教程 ...
- OpenResty之ngx.ssl
翻译自: ngx.ssl - Lua API for controlling NGINX downstream SSL handshakes 1. 概要 # 注意:如果你使用的是 OpenResty ...
- SSL/TLS 协议运行机制概述(一)
SSL/TLS 协议运行机制概述(一) SSL/TLS 发展史 1994年,NetScape 设计了SSL协议(Secure Sockets Layer) 1.0,未正式发布 1995年,NetSca ...
- 【原】AFNetworking源码阅读(六)
[原]AFNetworking源码阅读(六) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 这一篇的想讲的,一个就是分析一下AFSecurityPolicy文件,看看AF ...
- AFNetworking之于https认证
写在开头: 本来这篇内容准备写在AFNetworking到底做了什么?(三)中的,但是因为我想在三中完结这个系列,碍于篇幅所限.并且这一块内容独立性比较强,所以单独拎出来,写成一篇. 本文从源码的角度 ...
- nginx 学习笔记(9) 配置HTTPS服务器--转载
HTTPS服务器优化SSL证书链合并HTTP/HTTPS主机基于名字的HTTPS主机带有多个主机名的SSL证书主机名指示兼容性 配置HTTPS主机,必须在server配置块中打开SSL协议,还需要指定 ...
- AFNetworking 之于 https 认证
写在开头: 本来这篇内容准备写在AFNetworking到底做了什么?(三)中的,但是因为我想在三中完结这个系列,碍于篇幅所限.并且这一块内容独立性比较强,所以单独拎出来,写成一篇. 本文从源码的角度 ...
随机推荐
- 如何动态修改 spring aop 切面信息?让自动日志输出框架更好用
业务背景 很久以前开源了一款 auto-log 自动日志打印框架. 其中对于 spring 项目,默认实现了基于 aop 切面的日志输出. 但是发现一个问题,如果切面定义为全切范围过大,于是 v0.2 ...
- 2021-7-7 Vue的for使用实例
<!DOCTYPE html> <html> <head> <title> </title> </head> <body& ...
- Avalonia 列表拖拽替换
实现目标,在一个ListBox中选择一个子项进行拖拽到另一个ListBox中,拖拽到某一子项区域进行替换 下面是axaml代码 1 <ListBox 2 Name="consumabl ...
- http头部字段Origin和Access-Control-Allow-Origin解决请求跨域
Http协议中请求头和响应头携带了很多信息,其中 请求头 Origin,响应头 Access-Control-Allow-Origin 与跨域有关. 为了验证跨域,要将客户端和服务端分配在不同端口,这 ...
- JVM性能监控和调优
JVM性能监控和调优 JVM(Java虚拟机)调优是为了优化Java应用程序的性能和稳定性.JVM调优的目的是通过调整JVM的配置参数和优化应用程序代码,使其在给定的硬件和软件环境下达到更好的性能表现 ...
- Redis系列20:LFU内存淘汰算法分析
Redis系列1:深刻理解高性能Redis的本质 Redis系列2:数据持久化提高可用性 Redis系列3:高可用之主从架构 Redis系列4:高可用之Sentinel(哨兵模式) Redis系列5: ...
- shiro框架基本概念介绍
什么是Shiro: Shiro 是一个强大灵活的开源安全框架,可以完全处理身份验证.授权.加密和会话管理 Shiro的核心功能包括: 身份验证(Authentication):验证用户的身份,确保用户 ...
- API接口获取快手商品详情(封装代码)
快手是中国最大的短视频平台之一,也是许多电商企业进行推广的重要渠道.为了更好地了解快手的商品信息,我们可以通过API接口来获取商品详情. 首先,我们需要了解快手API接口和相应的文档 接下来,我们需要 ...
- KMP字符串对比算法及next数组计算
(注:该贴主要运用python实现该算法) 先谈谈KMP算法吧.KMP算法的全称是Knuth-Morris-Pratt 算法,它是用来进行字符串查找,即在某个主字符串里面找到某个特定子字符串.但是好像 ...
- Nexus搭建maven仓库并使用
一.基本介绍 参考:https://www.hangge.com/blog/cache/detail_2844.html https://blog.csdn.net/zhuguanbo/article ...