OpenSSL生成CA证书

news2024/11/26 3:28:05

基本概念

证书类别

  • 根证书:生成服务端证书,客户端证书的基础。自签名。
  • 服务端证书:由根证书签发。配置在服务器上。
  • 客户端证书:由根证书签发。配置在浏览器、移动APP等客户端上。

认证方式

  • 单向认证(Client鉴权Server)
    1、Client发送连接请求
    2、Server端将Server证书发送给Client
    3、Client使用CA根证书对Server证书进行鉴权
    请添加图片描述

  • 双向认证
    1、单向鉴权(Client鉴权Server)
    2、单向鉴权(Server鉴权Client)
    请添加图片描述

证书文件

  • .key:私有的密钥
  • .csr:证书签名请求(证书请求文件),含有公钥信息,certificate signing request的缩写
  • .crt:证书文件,certificate的缩写
  • .crl:证书吊销列表,Certificate Revocation List的缩写
  • .pem:用于导出,导入证书时候的证书的格式,有证书开头,结尾的格式
  • .p12 或者 .pfx:用于实现存储许多加密对象在一个单独的文件中。通常用它来打包一个私钥及有关的 X.509 证书,或者打包信任链的全部项目

证书生成

Windows上可使用Git自带的OpenSSL生成,打开Git Bash
Linux本身自带OpenSSL

根证书

1、 生成CA私钥
openssl genrsa -out ca.key 2048
2、生成证书请求文件
openssl req -new -key ca.key -out ca.csr
需要输入证书信息,参考如下:
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:GD
Locality Name (eg, city) []:GZ
Organization Name (eg, company) [Internet Widgits Pty Ltd]:HW
Organizational Unit Name (eg, section) []:DEV
Common Name (e.g. server FQDN or YOUR name) []:ROOT
Email Address []:xxx@sina.com
3、生成自签名CA根证书(有效期365天)
openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt

服务端证书

1、生成私钥,需要设定密码
openssl genrsa -des3 -out server.key ***
2、生成证书请求文件,需要输入上一步的密码
openssl req -new -key server.key -out server.csr
需要输入证书信息,最重要的一行是Common Name (e.g. server FQDN or YOUR name),您需要输入与服务器关联的域名,或者是您服务器的公共IP地址,参考如下:
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:GD
Locality Name (eg, city) []:GZ
Organization Name (eg, company) [Internet Widgits Pty Ltd]:HW
Organizational Unit Name (eg, section) []:DEV
Common Name (e.g. server FQDN or YOUR name) []:10.10.8.8
Email Address []:xxx@sina.com
3、生成服务端证书
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key
这一步可能会提示错误:
请添加图片描述

解决办法,使用如下命令创建文件:
mkdir -p demoCA/newcerts
touch demoCA/index.txt
touch demoCA/serial
echo “01” > demoCA/serial

客户端证书

1、生成私钥,需要设定密码
openssl genrsa -des3 -out client.key 1024
2、生成证书请求文件,需要输入上一步的密码
openssl req -new -key client.key -out client.csr
注意输入的信息不要和服务端证书的一样,否则会报 ERROR:There is already a certificate for XXX 问题,比如我这里的Common Name不一样:
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:GD
Locality Name (eg, city) []:GZ
Organization Name (eg, company) [Internet Widgits Pty Ltd]:HW
Organizational Unit Name (eg, section) []:DEV
Common Name (e.g. server FQDN or YOUR name) []:MY
Email Address []:xxx@sina.com
3、生成客户端证书
openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key

证书导出

有时需要用到pem或pfx格式的证书,可以用以下方式生成

生成pem格式证书

cat client.crt client.key > client.pem
cat server.crt server.key > server.pem

生成pfx(p12)格式证书

openssl pkcs12 -export -in client.crt -inkey client.key -out client.p12
openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

我的云栖大会之旅:见证云计算创新的15年

云栖大会,曾经是一次不可思议的科技之旅,却如今已见证了我对云计算世界的15年关注和发展。第一次踏上云栖大会之旅,我记得是在2009年。那时的云计算还是一个新生事物,而云栖大会正是其中的奠基石。 我清楚地记得那个炎热的夏天&am…

Redis--苍穹

一、Redis入门 1.1、Redis简介 1.2 、redis启动 redis-server redis.windows.conf 1.3、redis连接 -h 指定IP-p 指定端口-a 密码 redis-cli.exe -h localhost -p 6379 -a 731206 二、redis数据类型 2.1、redis的五种数据类型 2.2、redis的各种数据类型的特点 三、Redis的…

C++排序、前缀和算法的应用:英雄的力量

本文涉及的基础知识点 C算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 排序 题目 英雄的力量 给你一个下标从 0 开始的整数数组 nums ,它表示英雄的能力值。如果我们选出一部分英雄,这组英雄的 力量 定义为&#x…

VMware——VMware17设置WindowServer2012R2环境静态IP及关闭防火墙

目录 一、VMware17设置WindowServer2012R2环境静态IP1.1、工具栏虚拟机的设置步骤1.2、工具栏编辑的设置步骤1.3、静态IP的设置步骤 二、VMware17关闭WindowServer2012R2环境防火墙 一、VMware17设置WindowServer2012R2环境静态IP 1.1、工具栏虚拟机的设置步骤 打开VMware虚拟…

第五章 I/O管理 十二、磁盘的管理

目录 一、磁盘初始化 Step 1: Step 2: Step 3: 二、引导块 三、坏块的管理 1、坏块的定义: 2、管理: (1)对于简单的磁盘: (2)对于复杂的磁盘; 四、总结 一、磁…

120道Python面试题.pdf ,完全版开放下载

Python作为一门高效、多用途的编程语言,受到越来越多大型科技公司的青睐。这篇文章梳理了120道各大厂Python一系列经典面试题,帮助在应对大厂面试时更从容应对。 大厂更加注重对候选人的技术深度和实际操作能力,这套面试题不仅包含Python基础…

香港服务器不稳定的几种情况

​  近年来,随着互联网的迅猛发展,香港作为一个重要的网络枢纽地区,扮演着连接中国内地和国际网络的重要角色。一些用户表示在使用香港服务器时可能会遇到不稳定的情况,导致访问困难、加载缓慢甚至无法连接。 为什么香港服务器会…

EasyRecovery易恢复16中文免费版下载

最近一直在加班码方案,抓bug,熬夜都成了家常便饭。原本以为这种艰难的生活快要迎来胜利的曙光,偏偏老天还要给我再来当头一棒!写完方案被我误删了,而且还彻底清空了废纸篓,团队几天几夜的成果毁于一旦&…

线扫相机DALSA--常见问题三:未找到采集卡

“计算机”右键“管理”,选择“设备管理器”,单击打开“图像设备”,即可看到PC上所安装的采集卡型号,采集卡正常状态表现如上图所示,如果采集卡显示黄色叹号,表明驱动存在异常,解决采集卡丢失问…

X Windows

X Windows System 简介 Linux中图形接口(GUI)称为 X Windows System,简称 X 或 X11。 组件 X Server 管理客户端硬件,接受键盘鼠标等设备的输入信息,并将图形绘制到屏幕 X Client 每个X Client彼此不知道对方是…

如何绘制自定义折线图?

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 绘制折线图,难点在于共有六个纵坐标,且各个纵坐标之间的间距无规则,我们需要在该坐标系中绘制折现图Dm、Im、Sm、Cm(2,7,5,7&#xf…

Py之auto-gptq:auto-gptq的简介、安装、使用方法之详细攻略

Py之auto-gptq:auto-gptq的简介、安装、使用方法之详细攻略 目录 auto-gptq的简介 1、版本更新历史 2、性能对比 推理速度 困惑度(PPL) 3、支持的模型 3、支持的评估任务 auto-gptq的安装 auto-gptq的使用方法 1、基础用法 (1)、量…

微信小程序 跳转客服页面

前言 小程序 用户反馈 没有页面设计 可以直接跳转小程序指定客服页面 <button class"contactBtn"open-type"contact" contact"handleContact" session-from"sessionFrom">

CSS画三角形(三种方法)

使用CSS画一个三角形&#xff0c;想必部分同学都有一个小疑问&#xff0c;css怎么做三角形&#xff0c;让我为大家介绍一下吧&#xff01; 第一种方法 div {width: 0;height: 0;border-style: solid;border-width: 50px;border-color: transparent transparent black transpa…

学习笔记二十八:K8S控制器Daemonset入门到企业实战应用

DaemonSet控制器&#xff1a;概念、原理解读 DaemonSet概述DaemonSet工作原理&#xff1a;如何管理PodDaemonset典型的应用场景DaemonSet 与 Deployment 的区别DaemonSet资源清单文件编写技巧 DaemonSet使用案例&#xff1a;部署日志收集组件fluentdDaemonset管理pod&#xff1…

PyTorch深度学习实战(24)——从零开始实现Mask R-CNN实例分割

PyTorch深度学习实战&#xff08;24&#xff09;——从零开始实现Mask R-CNN实例分割 0. 前言1. Mask R-CNN1.1 网络架构1.2 RoI Align1.3 Mask 检测头 2. 使用 Mask R-CNN 实现实例分割2.1 数据集分析2.2 模型构建策略2.3 模型构建与训练 3. 多类别实例分割小结系列链接 0. 前…

Zabbix监控nginx状态

文章目录 zabbix监控nginx状态环境前期准备开启nginx状态页面配置监控 zabbix监控nginx状态 环境 主机名IP地址角色安装的软件zabbix192.168.179.100zabbix服务端zabbix_serverzabbix_agentwanf192.168.179.11nginxzabbix客户端nginxzabbix_agent 前期准备 部署nginx请阅读…

删除排序链表中的重复节点II(C++解法)

题目 给定一个已排序的链表的头 head &#xff0c; 删除原始链表中所有重复数字的节点&#xff0c;只留下不同的数字 。返回 已排序的链表 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,3,4,4,5] 输出&#xff1a;[1,2,5]示例 2&#xff1a; 输入&#xff1a;head [1…

火影忍者游戏攻略大公开!成为忍者大师的秘诀揭秘

大家好&#xff01;作为火影忍者游戏的玩家&#xff0c;我们都希望能够在游戏中成为优秀的忍者大师&#xff0c;战胜强大的对手。为了帮助大家实现这一目标&#xff0c;我想分享一些实用的攻略和技巧。 首先&#xff0c;熟悉忍者技能是成为忍者大师的基础。在火影忍者游戏中&am…

Pytorch 注意力机制解析与代码实现

什么是注意力机制 注意力机制是深度学习常用的一个小技巧&#xff0c;它有多种多样的实现形式&#xff0c;尽管实现方式多样&#xff0c;但是每一种注意力机制的实现的核心都是类似的&#xff0c;就是注意力。 注意力机制的核心重点就是让网络关注到它更需要关注的地方。 当…