openssl 生成证书步骤

        本地测试RSA非对称加密功能时,需要用到签名证书。本文记录作者使用openssl本地生成证书的步骤,并没有深入研究openssl,难免会有错误,欢迎指出!!!

生成证书标准流程:

1、生成私钥(.key)

2、用私钥生成证书请求(.csr)

3、将证书请求文件(.csr)提交给证书颁发机构(CA),CA会对提交的证书请求中的所有信息生成一个摘要,然后使用CA根证书对应的私钥进行加密,这就是所谓的“签名”操作,完成签名后就会得到真正的签发证书(.cer或.crt)

一、openssl生成证书

1、生成一个 2048 位的 RSA 私钥

openssl genrsa -out private.key 2048

2、使用私钥来生成新的证书签名请求(.csr)

openssl req -new -key private.key -out private.csr -subj "/C=CN/ST=shanghai/L=shanghai/O=example/OU=it/CN=domain1/CN=domain2"
  • -new 表示创建一个新的证书请求;
  • -key 后面跟着的是私钥文件;
  • -out 后面是输出的CSR文件;
  • -subj 是请求中的主题信息。你将被要求提供一些信息,如你的国家、省份、城市、组织名称等。这些信息将包含在你的证书中。
    • /C= 是证书的国家代码。
    • /ST= 是州或省份名称。
    • /L= 是城市名称。
    • /O= 是组织名称。
    • /OU= 是组织单位名称。
    • /CN= 是通用名称,通常是域名。
    • /emailAddress= 是电子邮件地址。

3、有了私钥和证书签名请求后,我们可以选择做3件事:

3.1 标准CA签发流程

  • 证书请求(.csr)提交给CA认证机构申请证书(.crt);
  • CA机构会用他的根证书对应的私钥来签名(由CA机构操作);

3.2 生成自签名证书

        可以看到标准CA签发流程是用CA机构的私钥去签名。而自签名证书是用自己的私钥签署自己的证书请求,生成自签名SSL证书。

注意:自签名证书不会被浏览器信任,只能用于内部或测试用途。如果你需要一个可被浏览器信任的证书,你需要从受信任的证书颁发机构(CA)获取签名证书。

openssl x509 -req -in private.csr -out private.crt -signkey private.key -days 365
  • openssl x509 -req 表示签名请求,生成证书。
  • -in private.csr 表示输入的CSR文件名。
  • -out private.crt 表示输出的CRT文件名。
  • -signkey private.key 表示用于签名的私钥文件名。
  • -days 表示证书的有效期。

        生成的证书格式默认是 PEM,即 Privacy Enhanced Mail,它是 Base64 编码的 ASCII 码文件,常用于存储证书和密钥。PEM 格式的证书通常以 -BEGIN CERTIFICATE- 开始,以 -END CERTIFICATE- 结束,如图:

3.3 私有CA签发证书

        如果我们把3.2生成自签名证书(ca.crt)私钥(ca.key)当作私有的CA机构,然后签署其他的证书签名请求,生成私有CA签名的证书,这个过程,可以理解为是私有CA签发证书。

CA签名证书命令:

  • ca.key就是3.2的private.key;
  • ca.crt就是3.2的private.crt;
  • server.csr就是我们需要签名的证书请求
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 365
  • -req 表示要处理的输入文件是一个证书签名请求(CSR)。
  • -in server.csr 表示要处理的CSR文件名为server.csr。
  • -CA ca.crt 表示CA的证书文件名为ca.crt。
  • -CAkey ca.key 表示CA的私钥文件名为ca.key。
  • -CAcreateserial 表示如果CA的证书和私钥不存在,则创建它们。
  • -out server.crt 表示生成的服务器证书输出文件名为server.crt。

二、命令简化

生成 私钥(.key) 和 证书签名请求(.csr) 可以用一条命令实现:

openssl req -new -newkey rsa:2048 -nodes -keyout my.key -out my.csr -subj "/C=CN/ST=shanghai/L=shanghai/O=example/OU=it/CN=domain1/CN=domain2"

生成 私钥(.key) 和 证书签名请求(.csr) 再生成 签名证书(.crt)可以用一条命令实现:

openssl req -x509 -newkey rsa:2048 -nodes -keyout my.key -out my.crt -days 3650  -subj "/C=CN/ST=shanghai/L=shanghai/O=example/OU=it/CN=domain1/CN=domain2"

三、其他命令

使用私钥生成对应的公钥:

openssl rsa -in private.key -pubout -out public.pub

从证书中提取公钥:

openssl x509 -in private.crt -pubkey -outform PEM -out public_key.pem

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

单位学校FM调频电台直放站系统

随着教育技术的不断发展,校园广播系统的建设已成为现代学校必不可少的一部分。作为传统有线广播的有效补充,基于无线电信号传输的 FM 调频电台在学校的使用日益广泛,尤其是在紧急通知、日常信息传播及教学辅助等方面发挥着重要作用。为了增强…

msvcp140dll怎么修复,分享5种有效的解决方法

MSVCP140.dll文件丢失这一现象究竟是何缘由,又会引发哪些令人头疼的问题呢?在探索这个问题的答案之前,我们先来深入了解这个神秘的DLL文件。MSVCP140.dll是Microsoft Visual C Redistributable Package的一部分,它扮演着至关重要的…

IP地址定位技术在网络安全中的作用

在当今数字化时代,网络安全已经成为企业、政府和个人面临的重要挑战之一。随着互联网的普及和网络攻击的增加,保护个人隐私和防止网络犯罪变得尤为重要。在这一背景下,IP地址定位技术作为网络安全的重要组成部分之一,发挥着关键作…

【Shell】shell编程之循环语句

目录 1.for循环 例题 2.while循环 例题 3.until循环 1.for循环 读取不同的变量值,用来逐个执行同一组命令 for 变量 in 取值列表 do 命令序列 done [rootlocalhost ~]# for i in 1 2 3 > do > echo "第 $i 次跳舞" > done 第 1 次跳舞 第 …

Redis经典问题:数据不一致

大家好,我是小米,今天我想和大家聊一聊Redis的一个经典问题——数据不一致。在使用Redis的过程中,你是否曾遇到过这样的问题?缓存和数据库中的数据不一致,可能导致应用程序的功能异常。下面,我将详细介绍数据不一致的原因,以及一些有效的解决方案。 什么是数据不一致 …

WordPress插件Plus WebP,可将jpg、png、bmp、gif图片转为WebP

现在很多浏览器和CDN都支持WebP格式的图片了,不过我们以前的WordPress网站使用的图片都是jpg、png、bmp、gif,那么应该如何将它们转换为WebP格式的图片呢?推荐安装这款Plus WebP插件,可以将上传到媒体库的图片转为WebP格式图片&am…

picoCTF-Web Exploitation-Trickster

Description I found a web app that can help process images: PNG images only! 这应该是个上传漏洞了,十几年没用过了,不知道思路是不是一样的,以前的思路是通过上传漏洞想办法上传一个木马,拿到webshell,今天试试看…

多线程-线程安全

目录 线程安全问题 加锁(synchronized) synchronized 使用方法 synchronized的其他使用方法 synchronized 重要特性(可重入的) 死锁的问题 对 2> 提出问题 对 3> 提出问题 解决死锁 对 2> 进行解答 对4> 进行解答 volatile 关键字 wait 和 notify (重要…

如何在沉浸式翻译浏览器插件中使用免费的DEEPLX和配置API接口

如何在浏览器插件沉浸式翻译中使用DEEPLX 如何配置免费的DEEPLX翻译功能如何打开PDF翻译功能如何解除翻译额度限制 如何配置免费的DEEPLX翻译功能 假设你已经在浏览器上安装了沉浸式翻译插件,但是不知道如何使用免费的DEEPLX功能 这里以EDGE浏览器为例,…

JVM从1%到99%【精选】-类加载子系统

目录 1.类的生命周期 1.加载 2.连接 3.初始化 2.类的加载器 1.类加载器的分类 2.双亲委派机制 3.面试题:类的双亲委派机制是什么? 4.打破双亲委派机制 1.类的生命周期 类加载过程:加载、链接(验证、准备、解析&a…

# 从浅入深 学习 SpringCloud 微服务架构(十七)--Spring Cloud config(1)

从浅入深 学习 SpringCloud 微服务架构(十七)–Spring Cloud config(1) 一、配置中心的 概述 1、配置中心概述 对于传统的单体应用而言,常使用配置文件来管理所有配置,比如 SpringBoot 的 application.y…

解决 Content type ‘application/json;charset=UTF-8‘ not supported

文章目录 问题描述原因分析解决方案参考资料 问题描述 我项目前端采用vue-elementUi-admin框架进行开发,后端使用SpringBoot,但在前后端登录接口交互时,前端报了如下错误 完整报错信息如下 前端登录接口JS代码如下 export function login(…

商业数据分析--时间序列图及趋势分析

绘制时间序列图,并指出存在什么样的状态如上两图: 可见状态:从时间序列图可以看出,这些数据存在明显的季节性波动,每年的第4季度值都最高,而第2季度值最低。同时也存在一些下降的趋势。 通过引进虚拟变量,建立多元线性回归模型。答: 通过引入虚拟变量,我们可以建立如下的…

7-Zip:解锁数字世界的压缩艺术

探索数字世界,你需要的不仅是勇气,还有正确的工具。《7-Zip:解锁数字世界的压缩艺术》将带你深入了解7-Zip——这个开源免费的压缩工具,将帮助你在数字世界中更加游刃有余! 文章目录 7-Zip 使用介绍1. 引言2. 背景介绍…

Linux系统——VIM编辑工具

vi/vim vi是一个文本编辑器,用于撰写文档,或者开发程序。vim是vi的增强版 功能一致,可视化效果更好一些。去鼠标化 编辑更加方便 可定制化。 vim编辑器是一个模式化文本编辑器 模式以:编辑模式 进入文档后默认的模式 作用&am…

AI虚拟伴侣方案

打造类似Character AI的产品,现成的训练好的模型方案,适合做陪伴型虚拟女友等项目,近期看到的最佳项目: 1、项目背景: (1)项目动机:角色扮演LLM是AI的第二大消费用例,但通常被开源社区忽视。 (2)行业现状:缺乏与https://character.ai/提供的角色扮演LLM相对应的…

QuickBooks 2024 for Mac 激活版:智慧管理,财务无忧

想要轻松掌控财务,实现高效管理吗?QuickBooks 2024 for Mac,您的智慧财务管理专家,为您带来前所未有的便利和体验。无论是账务、工资还是销售和库存,它都能一手搞定。直观易用的界面,让您轻松上手&#xff…

PullTube for Mac:视频下载,一键搞定

还在为找不到想看的视频而烦恼吗?PullTube for Mac,让您的视频下载之旅变得更加轻松!支持从多个主流视频网站下载视频,提供多种格式和质量选项,满足您的不同需求。简单易用的界面设计,让您轻松上手&#xf…

MongoDB安装及接入springboot

环境:windows、jdk8、springboot2 1.MongoDB概述 MongoDB是一个开源、高性能、无模式(模式自由)的文档(Bson)型数据库;其特点如下: 模式自由 ---- 不需要提前创建表 直接放数据就可以 支持高并…

制作绿色便携式Chrome浏览器

准备环境 chrome离线解压包7zip解压缩软件Chrome Portable便携版启动程序 一、获取Chrome离线解压包 获取官方的离线下载包,使用7zip软件打开压缩包。如果里面看到的事102~表示是离线安装包,如果是chrome.7z表示是离线解压包。 如果是解压包的话&…