openssl生成ca证书流程

2024-08-28 09:18
文章标签 流程 生成 证书 ca openssl

本文主要是介绍openssl生成ca证书流程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

测试环境可自签ssl证书,使服务可以使用https进行访问
先说总体流程,下面再说具体的实施步骤
场景:用户a想申请ssl证书,在此场景有两个角色,用户a,证书颁发机构;所以待会儿使用openssl生成证书的时候,就要构造证书颁发机构,同时也要构建用户请求证书信息向证书颁发机构申请ssl证书
总体流程:
构造证书颁发机构:
1.生成根证书私钥(pem文件)
2.生成根证书签发申请文件(csr文件)
3.自签发根证书(cer文件)
用户申请证书:
1.生成用户证书私钥(pem文件)
2.生成用户证书签发申请文件(csr文件)
3.使用跟证书签发生成用户证书(cer文件)

具体步骤
构造证书颁发机构:
1.检查openssl版本,centos8.3已默认自带

openssl version

在这里插入图片描述
2.生成根证书私钥(pem文件),也可以为.key文件,都一样,但是每次运行命令生成的不一样

openssl genrsa -out root.pem 2048

2.生成根证书签发申请文件(csr文件)

直接输入生成:

openssl req -new -sha256 -out root.csr -key root.pem

在这里插入图片描述
指定配置文件生成:
在这里可以新建一个配置文件,写一些默认值,里面的配置可以参照/etc/pki/tls/openssl.cnf里的配置文件进行修改

[ req ]
default_bits       = 2048
distinguished_name = req_distinguished_name[ req_distinguished_name ]
countryName                 = Country Name (2 letter code)
countryName_default         = CN
stateOrProvinceName         = State or Province Name (full name)
stateOrProvinceName_default = guangdong
localityName                = Locality Name (eg, city)
localityName_default        = guangzhou
organizationName            = Organization Name (eg, company)
organizationName_default    = mycomp
commonName                  = Common Name (e.g. server FQDN or YOUR name)
commonName_max              = 64
commonName_default          = Ted CA Test
#指定配置文件生成
openssl req -new -sha256 -out root2.csr -key root.pem -config ca.conf

在这里插入图片描述
3.自签发根证书(cer文件)

openssl x509 -req -in root.csr -out root.cer -signkey root.pem -days 365

用户申请证书:

1.生成用户证书私钥(pem文件)

openssl genrsa -out user.pem 2048

2.生成用户证书签发申请文件(csr文件)

openssl req -new -sha256 -out user.csr -key user.pem

3.使用跟证书签发生成用户证书(cer文件),将user.csr文件发往ca机构签发证书

openssl x509 -req -days 365 -CA root.cer -CAkey root.pem -CAcreateserial -in user.csr -out user.cer

在这里插入图片描述
至此我们已经签发了一个客户端申请的user.cer证书

最后我们导出证书文件为keystore文件

openssl pkcs12 -export -clcerts -name usercer -inkey user.pem -in user.cer -out user.keystore

需要输入之前生成证书请求文件时设置的密码:
在这里插入图片描述
参数含义如下:

pkcs12——用来处理pkcs#12格式的证书

-export——执行的是导出操作

-clcerts——导出的是客户端证书,-cacerts则表示导出的是ca证书

-name——导出的证书别名

-inkey——证书的私钥路径

-in——要导出的证书的路径

-out——输出的密钥库文件的路径

参考博客:OpenSSL生成根证书CA及签发子证书
OpenSSL命令大全,CA证书生成,客户端证书生成实例

这篇关于openssl生成ca证书流程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1114352

相关文章

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事

spring-gateway filters添加自定义过滤器实现流程分析(可插拔)

《spring-gatewayfilters添加自定义过滤器实现流程分析(可插拔)》:本文主要介绍spring-gatewayfilters添加自定义过滤器实现流程分析(可插拔),本文通过实例图... 目录需求背景需求拆解设计流程及作用域逻辑处理代码逻辑需求背景公司要求,通过公司网络代理访问的请求需要做请

使用JavaConfig配置Spring的流程步骤

《使用JavaConfig配置Spring的流程步骤》JavaConfig是Spring框架提供的一种基于Java的配置方式,它通过使用@Configuration注解标记的类来替代传统的XML配置文... 目录一、什么是 JavaConfig?1. 核心注解2. 与 XML 配置的对比二、JavaConf

MybatisX快速生成增删改查的方法示例

《MybatisX快速生成增删改查的方法示例》MybatisX是基于IDEA的MyBatis/MyBatis-Plus开发插件,本文主要介绍了MybatisX快速生成增删改查的方法示例,文中通过示例代... 目录1 安装2 基本功能2.1 XML跳转2.2 代码生成2.2.1 生成.xml中的sql语句头2

使用Python自动化生成PPT并结合LLM生成内容的代码解析

《使用Python自动化生成PPT并结合LLM生成内容的代码解析》PowerPoint是常用的文档工具,但手动设计和排版耗时耗力,本文将展示如何通过Python自动化提取PPT样式并生成新PPT,同时... 目录核心代码解析1. 提取 PPT 样式到 jsON关键步骤:代码片段:2. 应用 JSON 样式到

SpringBoot实现二维码生成的详细步骤与完整代码

《SpringBoot实现二维码生成的详细步骤与完整代码》如今,二维码的应用场景非常广泛,从支付到信息分享,二维码都扮演着重要角色,SpringBoot是一个非常流行的Java基于Spring框架的微... 目录一、环境搭建二、创建 Spring Boot 项目三、引入二维码生成依赖四、编写二维码生成代码五

Java对接Dify API接口的完整流程

《Java对接DifyAPI接口的完整流程》Dify是一款AI应用开发平台,提供多种自然语言处理能力,通过调用Dify开放API,开发者可以快速集成智能对话、文本生成等功能到自己的Java应用中,本... 目录Java对接Dify API接口完整指南一、Dify API简介二、准备工作三、基础对接实现1.

Android与iOS设备MAC地址生成原理及Java实现详解

《Android与iOS设备MAC地址生成原理及Java实现详解》在无线网络通信中,MAC(MediaAccessControl)地址是设备的唯一网络标识符,本文主要介绍了Android与iOS设备M... 目录引言1. MAC地址基础1.1 MAC地址的组成1.2 MAC地址的分类2. android与I

PyQt5+Python-docx实现一键生成测试报告

《PyQt5+Python-docx实现一键生成测试报告》作为一名测试工程师,你是否经历过手动填写测试报告的痛苦,本文将用Python的PyQt5和python-docx库,打造一款测试报告一键生成工... 目录引言工具功能亮点工具设计思路1. 界面设计:PyQt5实现数据输入2. 文档生成:python-

将Java项目提交到云服务器的流程步骤

《将Java项目提交到云服务器的流程步骤》所谓将项目提交到云服务器即将你的项目打成一个jar包然后提交到云服务器即可,因此我们需要准备服务器环境为:Linux+JDK+MariDB(MySQL)+Gi... 目录1. 安装 jdk1.1 查看 jdk 版本1.2 下载 jdk2. 安装 mariadb(my