OpenSSL创建生成CA证书、服务器、客户端证书及密钥

2024-01-25 15:20

本文主要是介绍OpenSSL创建生成CA证书、服务器、客户端证书及密钥,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

OpenSSL创建生成CA证书、服务器、客户端证书及密钥

  • 证数各参数含义
  • 生成CA证书
    • 创建root证书私钥
    • 创建请求证书
    • 创建自签署证书
  • 生成服务器证书
    • 创建服务器证书
    • 创建服务器请求证书
    • 使用CA证书签署服务器证书
  • 生成客户端证书
    • 创建客户端证书
    • 创建客户端请求证书
    • 使用CA证书签署客户端证书
  • 测试
    • 单向认证
      • 服务器
      • 客户端
    • 双向认证
      • 服务器:
      • 客户端:

证数各参数含义

  • C-----国家(Country Name)
  • ST----省份(State or Province Name)
  • L----城市(Locality Name)
  • O----公司(Organization Name)
  • OU----部门(Organizational Unit Name)
  • CN----产品名(Common Name)
  • emailAddress----邮箱(Email Address)

生成CA证书

创建root证书私钥

openssl genrsa -aes256 -out ca.key 2048

创建请求证书

openssl req -new -sha256 -key ca.key -out ca.csr -subj "/C=CN/ST=BJ/L=BJ/O=demo/OU=demo/CN=root/emailAddress=123@demo.com"

创建自签署证书

openssl x509 -req -days 36500 -sha256 -extensions v3_ca -signkey ca.key -in ca.csr -out ca.cer

生成服务器证书

创建服务器证书

openssl genrsa -aes256 -out server.key 2048

创建服务器请求证书

openssl req -new -sha256 -key server.key -out server.csr -subj "/C=CN/ST=BJ/L=BJ/O=demo/OU=demo/CN=server.com/emailAddress=123@demo.com"

使用CA证书签署服务器证书

openssl x509 -req -days 36500 -sha256 -extensions v3_req  -CA  ca.cer -CAkey ca.key  -CAserial ca.srl  -CAcreateserial -in server.csr -out server.cer

生成客户端证书

创建客户端证书

openssl genrsa -aes256 -out client.key 2048

创建客户端请求证书

openssl req -new -sha256 -key client.key  -out client.csr -subj "/C=CN/ST=BJ/L=BJ/O=demo/OU=demo/CN=client.com/emailAddress=123@demo.com"

使用CA证书签署客户端证书

openssl x509 -req -days 36500 -sha256 -extensions v3_req  -CA  ca.cer -CAkey ca.key  -CAserial ca.srl  -CAcreateserial -in client.csr -out client.cer

测试

单向认证

服务器

openssl s_server -CAfile ca.cer -cert server.cer -key server.key -accept 22580

客户端

openssl s_client -CAfile ca.cer -cert client.cer -key client.key -connect 127.0.0.1 -port 22580

双向认证

服务器:

openssl s_server -CAfile ca.cer -cert server.cer -key server.key -accept 22580 -Verify 1

客户端:

openssl s_client -CAfile ca.cer -cert server.cer -key server.key -cert client.cer -key client.key -connect 127.0.0.1 -port 22580

这篇关于OpenSSL创建生成CA证书、服务器、客户端证书及密钥的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/643692

相关文章

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

MYSQL查询结果实现发送给客户端

《MYSQL查询结果实现发送给客户端》:本文主要介绍MYSQL查询结果实现发送给客户端方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql取数据和发数据的流程(边读边发)Sending to clientSending DataLRU(Least Rec

Java中实现线程的创建和启动的方法

《Java中实现线程的创建和启动的方法》在Java中,实现线程的创建和启动是两个不同但紧密相关的概念,理解为什么要启动线程(调用start()方法)而非直接调用run()方法,是掌握多线程编程的关键,... 目录1. 线程的生命周期2. start() vs run() 的本质区别3. 为什么必须通过 st

Python FastMCP构建MCP服务端与客户端的详细步骤

《PythonFastMCP构建MCP服务端与客户端的详细步骤》MCP(Multi-ClientProtocol)是一种用于构建可扩展服务的通信协议框架,本文将使用FastMCP搭建一个支持St... 目录简介环境准备服务端实现(server.py)客户端实现(client.py)运行效果扩展方向常见问题结

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

Macos创建python虚拟环境的详细步骤教学

《Macos创建python虚拟环境的详细步骤教学》在macOS上创建Python虚拟环境主要通过Python内置的venv模块实现,也可使用第三方工具如virtualenv,下面小编来和大家简单聊聊... 目录一、使用 python 内置 venv 模块(推荐)二、使用 virtualenv(兼容旧版 P

python如何生成指定文件大小

《python如何生成指定文件大小》:本文主要介绍python如何生成指定文件大小的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python生成指定文件大小方法一(速度最快)方法二(中等速度)方法三(生成可读文本文件–较慢)方法四(使用内存映射高效生成

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

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