当前位置: 首页 > news >正文

openssl双向认证自签名证书生成

编写配置文件openssl.cnf

[ req ]
distinguished_name = req_distinguished_name
req_extensions     = req_ext[ req_distinguished_name ]
countryName            = Country Name (2 letter code)
countryName_default    = US
stateOrProvinceName    = State or Province Name (full name)
stateOrProvinceName_default = California
localityName           = Locality Name (eg, city)
localityName_default   = San Francisco
organizationName       = Organization Name (eg, company)
organizationName_default = YourOrg
organizationalUnitName = Organizational Unit Name (eg, section)
organizationalUnitName_default = YourOrg Unit
commonName             = Common Name (e.g. server FQDN or YOUR name)
commonName_default     = example.com
commonName_max         = 64[ req_ext ]
subjectAltName = @alt_names[ alt_names ]
DNS.1 = example.com
DNS.2 = www.example.com
IP.1  = 192.168.1.1

依次执行下面的命令

# 生成 CA 私钥
openssl genrsa -out rootCA.key 2048# 生成 CA 证书签署请求
openssl req -new -x509 -days 3650 -key rootCA.key -out rootCA.crt -config openssl.cnf# 生成服务端私钥
openssl genrsa -out server.key 2048# 生成服务端 CSR
openssl req -new -key server.key -out server.csr -config openssl.cnf# 生成服务端证书
openssl x509 -req -in server.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out server.crt -days 3650 -extensions req_ext -extfile openssl.cnf# 生成客户端私钥
openssl genrsa -out client.key 2048# 生成客户端 CSR
openssl req -new -key client.key -out client.csr -config openssl.cnf# 生成客户端证书
openssl x509 -req -in client.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out client.crt -days 3650 -extensions req_ext -extfile openssl.cnf

查看证书

openssl x509 -in server.crt -text -noout

打包证书

openssl pkcs12 -export -out client.p12 -inkey client.key -in client.crt -certfile rootCA.crtopenssl base64 -in client.p12 -out client.p12.b64

nginx启用双向认证

    sl_certificate /path/to/server.crt;ssl_certificate_key /path/to/server.key;ssl_client_certificate /path/to/rootCA.crt;   # 用于验证客户端证书的 CA 证书ssl_verify_client on;                     # 启用双向认证

快速生成一个证书

openssl req -x509 -newkey rsa:2048 -sha256 -nodes -keyout key.pem -out ca.pem -days 3650等于
openssl genrsa -out key.pem 2048
openssl req -new -key key.pem -out ca.csr//用于向第三方机构申请证书
openssl req -new -x509 -key key.pem -out ca.pem -days 3650

相关文章:

openssl双向认证自签名证书生成

编写配置文件openssl.cnf [ req ] distinguished_name req_distinguished_name req_extensions req_ext[ req_distinguished_name ] countryName Country Name (2 letter code) countryName_default US stateOrProvinceName State or Province Name…...

如何使用 Python 读取 Excel 文件:从零开始的超详细教程

“日出东海落西山 愁也一天 喜也一天 遇事不钻牛角尖” 文章目录 前言文章有误敬请斧正 不胜感恩!||Day03为什么要用 Python 读取 Excel 文件?准备工作:安装所需工具安装 Python安装 Pandas安装 openpyxl 使用 Pandas 读取 Excel 文件什么是 …...

仕考网:公务员笔试和面试哪个难?

公务员笔试和面试哪个难?二者之间考察的方向不同,难度也是不同的。 笔试部分因其广泛的知识点和有限的考试时间显得难度更高一些,在笔试环节中,考生需在有限的时间内应对各种问题,而且同时还要面对激烈的竞争,在众多…...

C++知识点总结(55):时间优化

时间优化 一、调试方法1. 输出调试2. 构造样例 二、时间优化1. 前缀和1.1 概念1.2 例题Ⅰ 区间最多数码Ⅱ 双字母字符串Ⅲ Wandering...Ⅳ 数对数目 2. 排序例题选择排序过程 一、调试方法 1. 输出调试 cout 是一个强大的调试工具,可以帮助我们查看程序的状态和变…...

GitHub每日最火火火项目(9.7)

项目名称:polarsource / polar 项目介绍:polar 是一个开源的项目,它是 Lemon Squeezy 的替代方案,具有更优惠的价格。该项目旨在让开发者能够凭借自己的热情进行编码并获得报酬。通过使用 polar,开发者可以更轻松地实现…...

11Python的Pandas:可视化

Pandas本身并没有直接的可视化功能,但它与其他Python库(如Matplotlib和Seaborn)无缝集成,允许你快速创建各种图表和可视化。这里是一些使用Pandas数据进行可视化的常见方法: 1. 使用Matplotlib Pandas中的plot()方法…...

【周易哲学】生辰八字入门讲解(二)

😊你好,我是小航,一个正在变秃、变强的文艺倾年。 🔔本文讲解【周易哲学】生辰八字入门讲解,期待与你一同探索、学习、进步,一起卷起来叭! 目录 十神十神判断十神类象十神与五行案例 地支藏干藏…...

传统CV算法——基于Opencv的多目标追踪算法

基于 OpenCV 的跟踪算法有多种,每种算法都有其特定的应用场景和优缺点。以下是一些常见的基于 OpenCV 的目标跟踪算法: 1. BOOSTING 跟踪器 描述:基于 AdaBoost 算法的跟踪器。它是一种早期的跟踪算法,使用的是基于弱分类器的强…...

人生苦短我用Python excel转csv

人生苦短我用Python excel转csv 前言准备工作pandas库主要类和方法ExcelFile 类DataFrame 类read_excel 函数to_csv 函数 示例 前言 Excel 文件和csv文件都是常用的电子表格文件格式,其中csv格式更便于用于数据交换和处理。本文使用pandas库将Excel文件转化为csv文…...

Web2和Web3笔记

KimiAI: Web2和Web3是互联网发展的不同阶段,它们代表了不同的技术、理念和用户交互方式。 Web2: Web2通常指的是第二代互联网,它始于2000年代中期,以用户生成内容和社交网络的兴起为标志。 在Web2中,用户不仅是内容的消…...

单元测试 Mock不Mock?

文章目录 前言单元测试没必要?Mock不Mock?什么是Mock?Mock的意义何在? 如何Mock?应该Mock什么?Mock 编写示例 总结 前言 前段时间,我们团队就单元测试是否采用 Mock 进行了一番交流,各有各的说法。本文就单元测试 Mock不Mock…...

常用排序算法(上)

目录 前言: 1.排序的概念及其运用 1.1排序的概念 1.2排序运用 1.3 常见的排序算法 2.常见排序算法的实现 2.1 堆排序 2.1 1 向下调整算法 2.1 2 建堆 2.1 3 排序 2.2 插入排序 2.1.1基本思想: 2.1.2直接插入排序: 2.1.3 插…...

【从问题中去学习k8s】k8s中的常见面试题(夯实理论基础)(二十六)

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》:python零基础入门学习 《python运维脚本》: python运维脚本实践 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8…...

小程序的页面跳转方式

102. 小程序的页面跳转方式 小程序是一种快速发展的应用形式,为用户提供了便捷的功能和交互体验。其中,页面跳转是小程序中常用的功能之一,本文将介绍小程序的页面跳转方式,并提供代码示例,帮助读者更好地理解和实现页…...

第 21 章 DOM 操作表格及样式

第 21 章 DOM 操作表格及样式 1.操作表格 2.操作样式 DOM 在操作生成 HTML 上,还是比较简明的。不过,由于浏览器总是存在兼容和陷阱,导致最终的操作就不是那么简单方便了。本章主要了解一下 DOM 操作表格和样式的一些知识。 一&#xff0…...

vc-align源码分析 -- ant-design-vue系列

vc-align源码分析 源码地址:https://github.com/vueComponent/ant-design-vue/tree/main/components/vc-align 1 基础代码 1.1 名词约定 需要对齐的节点叫source,对齐的目标叫target。 1.2 props 提供了两个参数: align:对…...

计算机网络(四) —— 简单Tcp网络程序

目录 一,服务器初始化 1.0 部分文件代码 1.1 关于Tcp协议 1.2 创建和绑定套接字 1.3 监听 二,服务器启动 2.1 获取连接 2.2 提供服务 2.3 客户端启动源文件 Main.cc 二,客户端编写 2.1 关于Tcp客户端 2.2 客户端代码 2.3 效果…...

简单的Linux Ftp服务搭建

简单的Linux FTP服务搭建 1.需求 公司有一个esb文件传输代理,其中我们程序有文件传输功能,需要将本地文件传输到esb文件代理服务器上,传输成功之后发送http请求,告知esb将固定文件进行传输到对应外围其他服务的文件目录中&#…...

SQL的高级查询练习知识点(day24)

目录 1 学习目标 2 基础查询 2.1 语法 2.2 例子 3 条件查询 3.1 含义 3.2 语法 3.3 条件表达式 3.3.1 条件运算符 3.3.2 例子 3.4 逻辑表达式 3.4.1 逻辑运算符 3.4.2 例子 3.5 模糊查询 3.5.1 概述 3.5.2 例子 4 DISTINCT关键字 4.1 含义 4.2 例子 5 总结…...

Python条件表达式优化的10个实例

Python 中的条件表达式(也称为三元运算符)是一种简洁的语法,用于在单个表达式中执行 if-else 逻辑。虽然它们本身并不直接“优化”代码的执行速度,但它们可以使代码更加简洁、易读,并且有助于避免不必要的嵌套或复杂的…...

专业级流媒体下载器实战解析:7个高效配置技巧掌握N_m3u8DL-RE

专业级流媒体下载器实战解析:7个高效配置技巧掌握N_m3u8DL-RE 【免费下载链接】N_m3u8DL-RE Cross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文. 项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8D…...

BetterNCM安装器完全指南:3分钟掌握网易云音乐插件管理技巧

BetterNCM安装器完全指南:3分钟掌握网易云音乐插件管理技巧 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 你是否厌倦了网易云音乐客户端的功能限制?想要为你的…...

Selenium—xpath定位方法

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 今天我们来聊聊selenium -- xpath定位方法,我们都知道selenium有八大定位策略分别是id、name、class name、tag name、link text、partial link text、…...

SELinux 导致 K8s 日志 logrotate 无法轮询压缩

1. 问题现象在某 Linux 环境中,Kubernetes 日志无法自动轮询、无法压缩归档,具体表现如下:/var/log/kubernetes/kubelet.log 持续增大,达到 90MB 不再切割日志压缩包停留在某一时间点,之后不再生成新归档系统日志&…...

Pi0机器人控制实战:从模型下载到Web演示完整流程

Pi0机器人控制实战:从模型下载到Web演示完整流程 1. 项目概述与核心价值 Pi0是一个创新的视觉-语言-动作流模型,专为通用机器人控制设计。这个开源项目将深度学习与机器人技术相结合,通过自然语言指令和视觉输入来生成精确的机器人动作。项…...

3分钟搞定Axure中文界面:终极汉化指南让原型设计更简单

3分钟搞定Axure中文界面:终极汉化指南让原型设计更简单 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure …...

3步解锁缠论交易:通达信可视化插件让复杂技术分析变简单

3步解锁缠论交易:通达信可视化插件让复杂技术分析变简单 【免费下载链接】Indicator 通达信缠论可视化分析插件 项目地址: https://gitcode.com/gh_mirrors/ind/Indicator 缠论作为中国股市技术分析的重要理论体系,其核心价值在于揭示价格波动的内…...

2.4 Java的基础概念(数据类型)

一、什么是数据类型?在 Java 中,数据类型决定了三件事:存什么:变量能存储的数据种类(是整数、小数还是文字?)。占多大:在内存中占用多少空间(字节数)。怎么算…...

libssh2非阻塞模式实战:单线程管理多个SSH连接的高效技巧

libssh2非阻塞模式实战:单线程管理多个SSH连接的高效技巧 在当今分布式系统和自动化运维的浪潮中,SSH协议作为远程管理的黄金标准,其性能瓶颈往往出现在需要同时管理大量连接时。传统多线程方案不仅资源消耗大,还面临线程同步的复…...

SpringBoot项目中如何用拦截器优雅解决越权漏洞?附完整代码示例

SpringBoot拦截器实战:三层防御体系解决越权漏洞 在电商系统开发中,我们团队曾遭遇过一次严重的越权事故——某用户通过修改URL参数,成功访问到其他用户的订单详情页面。这次事件让我们意识到,权限控制绝非简单的登录验证就能解决…...