IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> openssl 生成带X509 V3 extension的证书 -> 正文阅读

[网络协议]openssl 生成带X509 V3 extension的证书

x509v3_config

X509 V3 certificate extension configuration format

一些openssl的命令可以通过配置文件添加扩展到证书或者证书请求里面

配置文件的格式

【section】

extension_name=[critical,] extension_options

extension_options取决于extension_name

有四种类型的扩展

  1. string extensions, 就是一个字符串,这个串要么就是一个值,要么就是怎么获取这个值
  2. multi-valued extensions, 这种有长和短两种格式,短格式就是用逗号分割的名值列表,长格式是@section名表面值在另外一个section中
  3. raw 略
  4. ?arbitrary extensions 略

短:basicConstraints=critical,CA:true,pathlen:1

长:basicConstraints=critical,@bs_section

? ? ? ? [bs_section]

? ? ? ? CA=true
? ? ? ? pathlen=1

标准扩展

  1. basicConstraints
  2. keyUsage
  3. extendedKeyUsage
  4. subjectKeyIdentifier
  5. authorityKeyIdentifier
  6. subjectAltName
  7. issuerAltName
  8. authorityInfoAccess
  9. crlDistributionPoints
  10. issuingDistributionPoint
  11. certificatePolicies
  12. policyConstraints
  13. inhibitAnyPolicy
  14. nameConstraints
  15. noCheck
  16. tlsfeature

生成带有SAN(subjectAltName)的证书

SAN简单来说就是一组名字集合,SAN里面的这些名字提供了验证证书的一个约束,验证证书的一方可以验证这组名字是否合法。里面可以包含email,URI,DNS,RID(a registered ID: OBJECT IDENTIFIER),IP,dirName(a distinguished name)

basicConstraints也是一个重要的扩展,basicConstraints=critical,CA:TRUE, pathlen:0,CA为TRUE表示这个证书是否是CA证书,是CA证书就可以作为CA给别人签发证书,pathlen的值表明CA下级的CA的级数,为0就不能有下级CA

自签名ca 证书和key
openssl req -newkey rsa:2048 -nodes -x509 -days 365 -subj "/CN=CN/ST=Hubei/L=Wuhan/O=Tencent/OU=QQ" -out ca.pem -keyout ca-key.pem


中间ca 证书请求和key
openssl req -newkey rsa:2048 ?-nodes -new -subj "/CN=CN/ST=Hubei/L=Wuhan/O=Tencent/OU=QQ.1" \
-addext "basicConstraints = critical, CA:true, pathlen:10" \
-addext "subjectAltName = IP:192.168.146.128,IP:127.0.0.1" \
-addext "extendedKeyUsage=serverAuth,clientAuth" \
-keyout mid-ca-key.pem -out mid-ca.csr

上面扩展也可以用下面两个代替
-config 配置文件路径
-reqexts section名字


用ca签发请求 生成证书
openssl x509 -req -days 365 -in mid-ca.csr -out mid-ca.pem \
? -CA ca.pem -CAkey ca-key.pem -CAcreateserial -extfile mb.conf -extensions mb

mb.conf文件内容
[mb]
basicConstraints = critical, CA:true
subjectAltName = IP:192.168.146.128,IP:127.0.0.1
extendedKeyUsage=serverAuth,clientAuth
?

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-07-04 23:19:41  更:2022-07-04 23:21:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 23:18:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码