首页 > 其他分享 >[转帖]关于OpeSSL生成自签名证书-包含完整证书链生成(全网最全)

[转帖]关于OpeSSL生成自签名证书-包含完整证书链生成(全网最全)

时间:2024-05-31 13:44:51浏览次数:20  
标签:crt 证书 mid ca openssl 生成 转帖 server

https://www.cnblogs.com/linziping/p/16857167.html

 


 

  相信大家对证书已经有一个比较直关的了解,这里只讲如何创建自签证书,关于openssl的使用或者证书的相关内容,此处不做过多讲解

废话不多说,直接上手。

  一般证书分为根证书,中间证书,用户证书三级,也可以是根证书和用户证书两级,或者直接用户证书。对于单向验证一般只需要用户证书,客户端和服务端双向验证的话,则需要两级或者三级证书,对于安全性高的一般是三级证书,且根证书必须是正规的CA证书。

我们以三级证书来讲解:

1.生成CA根证书

# 创建root-ca并自签名

 openssl req -x509 -newkey rsa:2048 -nodes -keyout root-ca.key -out root-ca.crt -days 3650  -subj "/C=CN/ST=hangzhou/L=test/O=test/OU=test/CN=root-ca"

# 查看创建的证书

openssl x509 -in root-ca.crt -text -noout

2生成中间证书

# 创建mid-ca的证书签名请求

openssl req -new -newkey rsa:2048 -nodes -keyout secondary-ca.key -out secondary-ca.csr -subj "/C=CN/ST=hangzhou/L=test/O=test/OU=test-it/CN=mid-ca"

# 使用root-ca签发mid-ca的证书签名请求,中间证书指的是可以允许继续生成下级证书,否则的话默认生成终端证书,即使可以用中间证书生成下一级客户端和服务端等用户证书,最终验证的无法通过,此处是非常重要的,很多使用证书链无法通过都是此处踩坑

 新建配置文件 -extfile inntext.cnf

输入内容:basicConstraints=critical,CA:TRUE

openssl x509 -req -in mid-ca.csr -CA root-ca.crt -CAkey root-ca.key -CAcreateserial -out mid-ca.crt -days 3650  -extfile inntext.cnf

# 查看创建的证书

openssl x509 -in mid-ca.crt -text -noout

3生成服务端证书

# 创建server的证书签名请求

openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr -subj "/C=CN/ST=hangzhou/L=test/O=test/OU=test-it/CN=server"

# 用mid-ca签发server的证书签名请求

openssl x509 -req -in server.csr -CA mid-ca.crt -CAkey mid-ca.key -CAcreateserial -out server.crt -days 3650

生成.net core识别的证书文件client.pfx

openssl pkcs12 -export -in server.crt -inkey server.key -out server.pfx

# 查看创建的证书

openssl x509 -in server.crt -text -noout

4生成客户端证书

# 创建client的证书签名请求

openssl req -new -newkey rsa:2048 -nodes -keyout client.key -out client.csr -subj "/C=CN/ST=hangzhou/L=test/O=test/OU=test-it/CN=client"

# 用secondary-ca签发client的证书签名请求

openssl x509 -req -in client.csr -CA mid-ca.crt -CAkey mid-ca.key -CAcreateserial -out client.crt -days 3650

# 查看创建的证书

openssl x509 -in client.crt -text -noout

生成.net core识别的证书文件client.pfx

openssl pkcs12 -export -in client.crt -inkey client.key -out client.pfx

5制作证书链

# server.crt的签发是secondary-ca,而secondary-ca的签发是root-ca

# 对server.crt的验证必须使用到这两个证书,需要制作为证书链。

# 制作证书链的方法直白而简单:将证书拼接在一个文件中即可

Linux :cat root-ca.crt mid-ca.crt > chain-ca.crt

windows :type  root-ca.crt  mid-ca.crt > chain-ca.crt

验证: openssl verify -verbose -CAfile root-ca.crt server.crt 单个无法验证

验证:openssl verify -verbose -CAfile mid-ca.crt server.crt 单个无法验证

验证:openssl verify -verbose -CAfile chain-ca.crt  server.crt 合成之后在验证

标签:crt,证书,mid,ca,openssl,生成,转帖,server
From: https://www.cnblogs.com/jinanxiaolaohu/p/18224371

相关文章

  • 创建和管理一个 CA 及证书的生命周期
    0使用openssl或者gmssl,提交markdown格式文档和转化后的pdf1创建一个根CA,包括生成私钥和根证书。分析证书和0015,0034标准的符合情况2为一台服务器生成一个私钥和证书签署请求(CSR)。3使用根CA对服务器的CSR进行签名,生成服务器证书。4吊销该服务器的证书。5提交生成的......
  • 用.NET代码生成JSON Schema 验证器
    问题对于验证复杂JSON数据是否合法的需求,通常的解决方式是标准JSONSchema,.Net下有对应的JSONSchema实现库。应用程序通常需要将标准JSONschema传入实现库,来做后续的数据验证。这里有一种情况,就是如果使用者不太了解标准JSONSchema格式,但又希望能在自己的service中使用其强大......
  • QShop商城-添加新模块/页面(CodeSmith代码生成)
    QShop商城-添加新模块/页面(CodeSmith代码生成)工具准备CodeSmith当前使用的CodeSmith71,如找不到我已分享至:https://pan.baidu.com/s/1O2Tqg3gnbToAzjH0T5ETcg?pwd=2wcv下载后按照文档CodeSmith7激活教程.doc内容激活CodeSmith 代码生成下载激活后,双击TemplateEd......
  • UUID vs. 雪花算法:生成唯一标识符的选择
    在软件开发中,经常需要生成唯一标识符来区分对象或实体,以确保数据的唯一性和安全性。UUID(UniversallyUniqueIdentifier)和雪花算法(SnowflakeAlgorithm)是两种常见的唯一标识符生成方法。UUID特点:全球唯一性:根据标准规范生成,几乎可以肯定地说,在给定的时间和空间范围内,UUID几......
  • 山东大学项目实训-基于LLM的中文法律文书生成系统(十四)- RAG(3)
    文档问答过程大概分为以下5部分,在Langchain中都有体现。上传解析文档文档向量化、存储文档召回query向量化文档问答今天主要讲langchain在文档embedding以及构建faiss过程时是怎么实现的。源码入口langchain中对于文档embedding以及构建faiss过程有2个分支,1.当第一次......
  • 山东大学项目实训-基于LLM的中文法律文书生成系统(十三)- RAG(2)
    今天主要讲langchain在上传解析文档时是怎么实现的。文档解析逻辑,以txt类型的文件解析为例子step1:寻找上传逻辑入口:local_doc_qa.py,关注TextLoader(),ChineseTextSplitter()defload_file(filepath,sentence_size=SENTENCE_SIZE,using_zh_title_enhance=ZH_TITLE_ENHANCE):......
  • 山东大学项目实训-基于LLM的中文法律文书生成系统(十五)- RAG(4)
    引入RAGRAG前的工作流程如下:向模型提问->模型从已训练数据中查询数据->组织语言->生成答案。RAG后的工作流程如下:读取文档->分词->嵌入->将嵌入数据存入向量数据库->向模型提问->模型从向量数据库中查询数据->组织语言->生成答案。嵌入在人工智能中,嵌入(Embedding)是将数据向量......
  • 8个AI生成PPT神器,用好它,打工人也能早早下班了
    今天分享8个AI生成PPT神器,用好它,打工人也能早早下班了。1、博思白板(boardmix.cn)博思白板是一个集多种创意表达能力于一体的在线写作工具,它集成了写作模板、思维导图、流程图、一键PPT、AI绘画、AI对话等多种功能。AI生成PPT可以一键生成,也可以使用众多模板2、美图设置室(www.......
  • JAVA开发 利用代码生成奖状pdf-中文版
    利用代码生成奖状pdf-中文版1、图片模板2、实现代码3、生成模板(pdf文件截取)1、图片模板2、实现代码importorg.apache.pdfbox.pdmodel.PDDocument;importorg.apache.pdfbox.pdmodel.PDPage;importorg.apache.pdfbox.pdmodel.PDPageContentStream;importorg......
  • DALL-E 2:突破性人工智能图像生成技术的全方位解析
    目录引言一、技术背景1.1生成对抗网络(GAN)1.2变分自动编码器(VAE)1.3GPT-3和自然语言处理1.4DALL-E的诞生二、DALL-E2的模型架构2.1模型概述2.2CLIP的作用2.3DALL-E2的生成过程2.4模型训练三、DALL-E2的技术能力3.1高质量的图像生成3.2多样化的......