使用OpenSSL生成PKCS#12格式的证书和私钥
要使用OpenSSL生成PKCS12格式的证书和私钥,可以按照以下步骤进行操作:
1. 安装OpenSSL
首先,确保已在计算机上安装了OpenSSL。可以从OpenSSL官方网站(https://www.openssl.org/)下载并安装适用于您的操作系统的版本。这里简单总结下在 Windows 上安装 OpenSSL 步骤。
1.1 下载 OpenSSL
从 OpenSSL 官方网站(https://www.openssl.org/)下载最新版本的 OpenSSL。
1.2 安装 OpenSSL
运行下载的 OpenSSL 安装程序,并按照提示进行操作。在默认情况下,OpenSSL 将安装在 `C:\Program Files\OpenSSL` 目录下。
1.3 配置系统环境变量
在 Windows 操作系统中,需要将 OpenSSL 的路径添加到系统的环境变量中,以便能够从任何位置执行 OpenSSL 命令。请按照以下步骤进行操作:
a. 右键单击“计算机”或“我的电脑”,然后选择“属性”。
b. 点击“高级系统设置”,在弹出的对话框中选择“环境变量”。
c. 在“系统变量”下找到“Path”变量并双击编辑。
d. 在变量值的末尾输入 OpenSSL 的安装路径,例如 `;C:\Program Files\OpenSSL\bin`(请注意分号和路径中的空格)。然后点击“确定”。
1.4 验证安装
打开命令提示符并运行以下命令来验证是否成功安装了 OpenSSL:
openssl version
如果看到输出的 OpenSSL 版本号,则说明 OpenSSL 已成功安装并配置。
2. 生成私钥
打开终端或命令提示符,并运行以下命令来生成私钥文件:
openssl genpkey -algorithm RSA -out private.key
这将生成一个名为private.key的私钥文件。
3. 生成证书签名请求(CSR)
使用生成的私钥,运行以下命令生成CSR文件:
openssl req -new -key private.key -out csr.csr
这里将需要提供一些与证书相关的信息,例如组织名称、通用名称等。根据提示输入所需信息。
4. 自签名证书
如果您想生成自签名证书,可以使用以下命令生成证书:
openssl x509 -req -days 3650 -in csr.csr -signkey private.key -out certificate.crt
这将生成一个名为certificate.crt的自签名证书文件,并且该证书将在3650天后过期。您可以根据需要调整有效期限。
5. 生成PKCS12文件
现在,使用以下命令将私钥和证书合并到PKCS12文件中。这里有两种方式设置口令:
5.1 自定义口令方式
openssl pkcs12 -export -out certificate.p12 -inkey private.key -in certificate.crt
您将被要求设置一个密码以保护PKCS12文件。
5.2 强制口令方式
强制设置密码长度不是一个好的做法,因为这降低了密码的安全性。如果您坚持要设置8个1作为密码,可以使用以下命令:
openssl pkcs12 -export -out certificate.p12 -inkey private.key -in certificate.crt -passout pass:11111111
该命令将从名为 `private.key` 的私钥文件和名为 `certificate.crt` 的证书文件中生成一个 `.p12` 文件,并设置密码为八个数字 1。
请注意,强制要求密码长度为 8 位数字并不是一种好的做法,因为这使得密码更容易被猜测或破解。建议您使用更长、更复杂的密码,并遵循最佳实践以确保密码的安全性。
6.使用 OpenSSL 查看 .p12
文件的内容
使用 OpenSSL 工具来查看 .p12 文件的内容。按以下步骤进行操作:
- 打开终端或命令提示符,并导航到包含.p12文件的目录。
- 运行以下命令来查看 .p12 文件的内容:
openssl pkcs12 -info -in certificate.p12
此命令将显示 .p12文件中包含的证书和私钥的详细信息,例如颁发机构、有效期限等。
查看刚才产生的certificate.p12文件内容如下:
E:\RJ\openssl\installed\OpenSSL-Win64\bin>
E:\RJ\openssl\installed\OpenSSL-Win64\bin>openssl pkcs12 -info -in certificate.p12
Enter Import Password:
MAC: sha256, Iteration 2048
MAC length: 32, salt length: 8
PKCS7 Encrypted data: PBES2, PBKDF2, AES-256-CBC, Iteration 2048, PRF hmacWithSHA256
Certificate bag
Bag AttributeslocalKeyID: AF C4 DE AF A0 97 88 29 AB 3E 45 B2 AE 50 E5 85 47 E7 27 77
subject=C = CN, ST = SC, L = CD, O = CETCCST, OU = CETCCST, CN = CETCCST
issuer=C = CN, ST = SC, L = CD, O = CETCCST, OU = CETCCST, CN = CETCCST
-----BEGIN CERTIFICATE-----
MIIDQTCCAikCFCbkxe+aDst30+2ajis12WN5oq3oMA0GCSqGSIb3DQEBCwUAMF0x
CzAJBgNVBAYTAkNOMQswCQYDVQQIDAJTQzELMAkGA1UEBwwCQ0QxEDAOBgNVBAoM
B0NFVENDU1QxEDAOBgNVBAsMB0NFVENDU1QxEDAOBgNVBAMMB0NFVENDU1QwHhcN
MjMxMjE3MDUzNzM3WhcNMjQxMjE2MDUzNzM3WjBdMQswCQYDVQQGEwJDTjELMAkG
A1UECAwCU0MxCzAJBgNVBAcMAkNEMRAwDgYDVQQKDAdDRVRDQ1NUMRAwDgYDVQQL
DAdDRVRDQ1NUMRAwDgYDVQQDDAdDRVRDQ1NUMIIBIjANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEApCugCrfRarsT6hVxQiBGdFokur5VOVPyy9Hvfp4AM7SGZnHL
d38IByXWzSqgqbrD+hamKEY77X33/oWueSFB7tFd5Vxspydv6dfCqxRVTp35AyNj
0dzmitjcazNRphqeM/XAqTot95p6fJpykdHWT0v1ekYZyH58ilhxLM+Y24FILVAs
NCsOsSwXIpNzPOwJfIyE2tGGPE4RXVpaysRiPYx9LzwzHwpA6o7AZfl20w1IPNTy
6Ov+spOcDnq5/wmIBcfKxyiQNUM68Sni9FtC/5UjmigsnHDCj3dZKsPQgGf1DYBZ
TiV5DwOpuQA7q3+hUwMaCRZqZG4NDN+27ok9SwIDAQABMA0GCSqGSIb3DQEBCwUA
A4IBAQAsfajDkA5maKJZxW/Gl3hL0gIij6j346lf9RWJMnUX6SDc0mtpg033CzPN
Y3H4Is1VQ7vBMWVZqCQmfQgdmL9UTl8oGprsi3srhjRRWqxslivX+5bAa7f/lIcR
qk8N42CXJ6w+IkyHKArBEG21iz/nLbb2OVcvPu3tVO/I0GLjVjdwr0FJ6GnBH+vv
0QhjKZLR8zCAKhbplqX0pWIMuZdsrekoU/lRTVwGvB0G3oK3HW9EXMmUDiHcPPhC
W16/0zsIHwRfRm6GjuiTHXZxamX9Nnbw5G3BETjdKJdvXwcDl+veZUzl1pOAnutG
VipTLXifLFCD7lADMyIxQV7xcPiX
-----END CERTIFICATE-----
PKCS7 Data
Shrouded Keybag: PBES2, PBKDF2, AES-256-CBC, Iteration 2048, PRF hmacWithSHA256
Bag AttributeslocalKeyID: AF C4 DE AF A0 97 88 29 AB 3E 45 B2 AE 50 E5 85 47 E7 27 77
Key Attributes: <No Attributes>
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFLTBXBgkqhkiG9w0BBQ0wSjApBgkqhkiG9w0BBQwwHAQIXS7Sp38x+fECAggA
MAwGCCqGSIb3DQIJBQAwHQYJYIZIAWUDBAEqBBAX7BUqc2Kea7pInSH0lXkSBIIE
0J3i5GBSxn6QAhfWcaJJjTL/YBVPT5Cc4WpLWXwsKK5DDTeVFbt4DcEqAvcNPf0k
0KdSUvCWrWH28JKJ0r5TEnwAUiXbjfK6Kd5dBV25lN43/3ZaAWs/aP/y909bvCja
xQtdpSyF6IyajgFCnolqed6PCoY3fT/CzFzgFxiFNDyjaI8ZLYz7Oe3ihuTqfJwD
a/B+7y/KEf3EKpaEwpNRk2aju7ucs9jZB870XzLgmHB3ABsGLD1q10W5wGDyvQPk
D+0QSAN587BuyG6L4uUVPiKBIK+BIYVWCjHF97stCNBa+obCwktZpfeZvwNkLsiH
mY57y4Tkuu6Kqacdfe5qKCQdYF6illp5UtNx5JODB9T4iSxqKMsGErW04i/SXs9r
RyOZpZB824SD4WpOXFoo1lwU0M8rYbWhnH393CRp9ffjhPk5iK+qvLAuDgMiTRhf
0ophKnMbpqKmtyEfsZ+XVta8+W3pSdtzw71Am8dadtlzAo8J60IWwZdEWrJ82tIk
BRl2Lrt3hKfyuTkhMW69q4790hg5gHL4iBy+A3fatJizUFgd+V/fp3Pe6rq22ReB
Y+S4d9RKgEiKlZzPZiuUXr2pMVHVLo3jNDORckv7Ec/VlSpKbbUDDrNo/EtUf9+r
y3wxnymV3RPtmCeIHpKDJg2NXTlRcYdn+01WPc8AOPZ7r46ehQ49EEiOGqX09rDO
SlX3e4UNbte1x/bR6GWJ+EwjWpo4AcLJ5O28jJXUP1ZFpNrdddobRES7QaHIGity
+QYb+aet0D5Cpx+Ygq9+RumEG+j3dd9CrK+r7lMUhejAFYms1NSDXL5g0jjflutM
McWZVMqR+179+PeDl+ykLeVa08zVqIBwn3L16Jpjx/fjsGkPr+rWmpHvMdT6r5lI
IKJhOgqFpF3NMoq2GTXwzrPMxruwXszkUB1NfSJluuG1imNk6hL4IwEpzKN+lcZ2
tDkyc/IGPG9o0O08qgjuQHAoNvK70kRCCqzy9OF8HnKe63n0aX0In0FVGGTIchjm
89/MsGVTKihK+rOyDgCWYhWil9fNhuHt+qdNPXMTvuNkqdDe2XulnN9xkQ8UCXlv
T8GnaBv0GkspgNXABFQ7cvDSSAmrtr+9QvGuEgUOSVvSk8+n5eMOdfD/M4916ezw
Wpo01kgHjptPjpZWveS2spB7VQiNGIEbhU2msmk8ZbQ/F0olzJ/KMWoUgZfl+RLA
5yTlWTEW+dobliWcHLJX/TAyeBICzLU5mPRyE0b3btim9vHVFreC4TWS+sfHiocC
uNvPX0J7XAYvQY188Oq/EbPp8CSRB2Yu0LBS4ilVyooY8tdzVJ2d6aroA4YVSkMe
vM/RZnoLGsezkW+16mP1+TmHAWEk0gLc9BzToHRHI9WJJmv7D+p5XunaeSRSqYro
j8fQK0TrDSvfgHP5Asc1tziRRAUQ1cy9sQV1DUlPGzvRbpQD7RmNJ/yfUt94K2+X
6Vbo9Vgt/iTO9+pjzNRW05HwpkjPajBWNkbze95vSPVFIVhxrtS3tQlEyD26JHw3
6XJvtnOJaRTODUWloIsE7zhDxKk2YhqnlSqfIYzkA3fTGa6lgvIoDyuSv0Ln1g5C
uVwIOK+aag8w5nArZx6vGWulYwILVWEGT40u+GPedWs8
-----END ENCRYPTED PRIVATE KEY-----E:\RJ\openssl\installed\OpenSSL-Win64\bin>
- 也可以通过运行以下命令来检查 .p12 文件的密码是否正确:
openssl pkcs12 -nokeys -info -in certificate.p12
此命令将只显示证书的详细信息,而不会显示私钥信息。
注意:在运行这些命令之前,需要确保已安装 OpenSSL 工具。
7. 结束
现在,已经生成了一个名为certificate.p12的PKCS12文件,其中包含证书和私钥。
注意:
以上步骤仅提供了一个基本的示例。我们可以根据需要进行更多的配置和调整。此外,如果您具有可用的CA证书和私钥,可以使用类似的命令生成PKCS12文件。确保妥善保管和保护您的私钥和证书。
————————————————————
DONE
相关文章:
使用OpenSSL生成PKCS#12格式的证书和私钥
要使用OpenSSL生成PKCS12格式的证书和私钥,可以按照以下步骤进行操作: 1. 安装OpenSSL 首先,确保已在计算机上安装了OpenSSL。可以从OpenSSL官方网站(https://www.openssl.org/)下载并安装适用于您的操作系统的版本。…...

超详细 | 哈里斯鹰优化算法原理、实现及其改进与利用(Matlab/Python)
测试函数为F9 在MATLAB中执行程序结果如下: 在Python中执行程序结果如下: 哈里斯鹰优化算法(Harris Hawks Optimization , HHO)是 Heidari等[1]于2019年提出的一种新型元启发式算法,设计灵感来源于哈里斯鹰在捕食猎物过程中的合作行为以及突…...

git 切换远程地址分支 推送到指定地址分支 版本回退
切换远程地址 1、切换远程仓库地址: 方式一:修改远程仓库地址 【git remote set-url origin URL】 更换远程仓库地址,URL为新地址。 git remote set-url https://gitee.com/xxss/omj_gateway.git 方式二:先删除远程仓库地址&…...

YOLOv3-YOLOv8的一些总结
0 写在前面 这个文档主要总结YOLO系列的创新点,以YOLOv3为baseline。参考(抄)了不少博客,就自己看看吧。有些模型的trick不感兴趣就没写进来,核心的都写了。 YOLO系列的网络都由四个部分组成:Input、Backbone、Neck、Prediction…...

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)控件的部分公共属性和事件
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)控件的部分公共属性和事件 一、操作环境 操作系统: Windows 10 专业版 IDE:DevEco Studio 3.1 SDK:HarmonyOS 3.1 二、公共属性 常用的公共属性有: 宽(with)、高(height)、…...

最新同步云盘推荐:实现轻松管理与便捷同步的理想选择
同步云盘——可以轻松管理文件,同步不同设备之间的文件,受到了许多用户的青睐!目前国内有什么值得推荐的同步云盘? Zoho Workdrive同步云盘,助您轻松管理文件,进行多设备同步,便捷使用文件&…...
(第27天)Oracle 数据泵转换分区表
在Oracle数据库中,分区表的使用是很常见的,使用数据泵也可以进行普通表到分区表的转换,虽然实际场景应用的不多。 创建测试表 sys@ORADB 2022-10-13 11:54:12> create table lucifer.tabs as select * from dba_objects;Table created.sys...
业务上需要顺序消费,怎么保证时序性?
消息传输和消费的有序性,是消息队列应用中一个非常重要的问题,在分布式系统中,很多业务场景都需要考虑消息投递的时序。例如,电商中的订单状态流转、数据库的 binlog 分发,都会对业务的有序性有要求。今天我们一起来看…...

ubuntu 开机提示 you are in emergency mode,journalctl -xb
进入系统界面 回车输入: journalctl -xb -p3 查看出问题的盘符类型。 然后 lsblk 查看挂载情况 我的是/dev/sda3没有挂载上,对应/home目录,注意这时候不要直接mount 需要先修复 fsck -y /dev/sda3等待修复完成,在重新挂载 moun…...

【Hadoop面试】HDFS读写流程
HDFS(Hadoop Distributed File System)是GFS的开源实现。 HDFS架构 HDFS是一个典型的主/备(Master/Slave)架构的分布式系统,由一个名字节点Namenode(Master) 多个数据节点Datanode(Slave)组成。其中Namenode提供元数…...

B01、JVM与Java体系结构-01
字节码与多语言混合编程 字节码概述: 我们平时说的java字节码,指的是用java语言编译成的字节码。准确的说任何能在jvm平台上执行的字节码格式都是一样的。所以应该统称为:jvm字节码。不同的编译器,可以编译出相同的字节码文件&…...

Python:Jupyter
Jupyter是一个开源的交互式计算环境,由Fernando Perez和Brian Granger于2014年创立。它提供了一种方便的方式来展示、共享和探索数据,并且可以与多种编程语言和数据格式进行交互。Jupyter的历史可以追溯到2001年,当时Fernando Perez正在使用P…...
macos苹果电脑开启tftp server上传fortigate60e固件成功
cat /System/Library/LaunchDaemons/tftp.plist<?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist…...

如何使用ArcGIS Pro裁剪影像
对影像进行裁剪是一项比较常规的操作,因为到手的影像可能是多种范围,需要根据自己需求进行裁剪,这里为大家介绍一下ArcGIS Pro中裁剪的方法,希望能对你有所帮助。 数据来源 本教程所使用的数据是从水经微图中下载的影像和行政区…...

Tekton 构建容器镜像
Tekton 构建容器镜像 介绍如何使用 Tektonhub 官方 kaniko task 构建docker镜像,并推送到远程dockerhub镜像仓库。 kaniko task yaml文件下载地址:https://hub.tekton.dev/tekton/task/kaniko 查看kaniko task yaml内容: 点击Install&…...

netty-daxin-4(httpwebsocket)
文章目录 学习链接http服务端NettyHttpServerHelloWorldServerHandler 客户端ApiPost websocket初步了解为什么需要 WebSocket简介 浏览器的WebSocket客户端客户端的简单示例客户端的 APIWebSocket 构造函数webSocket.readyStatewebSocket.onopenwebSocket.onclosewebSocket.ο…...

文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《市场环境下考虑全周期经济效益的工业园区共享储能优化配置》
这个标题涉及到工业园区中共享储能系统的优化配置,考虑了市场环境和全周期经济效益。以下是对标题中各个要素的解读: 市场环境下: 指的是工业园区所处的商业和经济背景。这可能包括市场竞争状况、电力市场价格波动、政策法规等因素。在这一环…...

WPF——命令commond的实现方法
命令commond的实现方法 属性通知的方式 鼠标监听绑定事件 行为:可以传递界面控件的参数 第一种: 第二种: 附加属性 propa:附加属性快捷方式...

信息收集 - 域名
1、Whois查询: Whois 是一个用来查询域名是否已经被注册以及相关详细信息的数据库(如:域名所有人、域名注册商、域名注册日期和过期日期等)。通过访问 Whois 服务器,你可以查询域名的归属者联系方式和注册时间。 你可以在 域名Whois查询 - 站长之家 上进行在线查询。 2、…...

基于YOLOv8深度学习的路面标志线检测与识别系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战
《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...

【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

C++:多态机制详解
目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...

MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...

C# 表达式和运算符(求值顺序)
求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如,已知表达式3*52,依照子表达式的求值顺序,有两种可能的结果,如图9-3所示。 如果乘法先执行,结果是17。如果5…...

R 语言科研绘图第 55 期 --- 网络图-聚类
在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...