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

【Azure 环境】在Windows环境中使用OpenSSL生成自签名证书链步骤分享

问题描述在Web应用部署环境中常常需要为内部系统或测试环境生成自签名证书尤其是包含根证书、中间证书和服务器证书的完整证书链并最终生成包含私钥的 PFX 文件.pfx。如何使用 openssl 工具一步步完成这些操作成为很多工程师的实际需求。本文将详细介绍如何用 openssl 生成自签名证书链并将其打包为 PFX 文件。问题解答下面是一套可复制即用的分步骤指南使用OpenSSL在本机创建三类证书自签名根 CARoot CA由根 CA 签发的中间 CAIntermediate CA由中间 CA 签发的服务器证书Leaf/Server Cert。同时包含openssl.cnf的示例、证书链验证命令以及生成包含三张证书服务器 中间 根的PFX包的做法。生成的步骤如下流程图所示。第一步安装OpenSSL下载路径Downloads | OpenSSL Library, Windows 环境中直接下载最新的 .tar.gz 文件本地解压后可直接使用PS: 最好在PATH环境变量中添加OpenSSL的路径方便后续使用。第二步创建配置文件 openssl.cnf准备一个生成及存放证书的目录然后创建openssl.cnf文件如mkdir certs_1 cd certs_1初始化的openssl.cnf内容如下需要替换域名和组织信息123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051# ----- Basic req settings -----[ req ]default_bits 2048prompt nodistinguished_name dnreq_extensions req_ext[ dn ]C CNST CQL CQO SelfCA OrgOU CertOpsCN myself.com# CSR-time extra extensions (used by: -reqexts req_ext)[ req_ext ]subjectAltName alt_names[ alt_names ]DNS.1 *.myself.comDNS.2 www.myself.com# ----- Root CA certificate extensions -----[ v3_root_ca ]subjectKeyIdentifier hashauthorityKeyIdentifier keyid:always,issuerbasicConstraints critical, CA:TRUE, pathlen:1keyUsage critical, keyCertSign, cRLSign# ----- Intermediate CA certificate extensions -----[ v3_intermediate_ca ]subjectKeyIdentifier hashauthorityKeyIdentifier keyid:always,issuerbasicConstraints critical, CA:TRUE, pathlen:0keyUsage critical, keyCertSign, cRLSign# ----- Server (leaf) certificate extensions -----[ server_cert ]subjectKeyIdentifier hashauthorityKeyIdentifier keyid,issuerbasicConstraints CA:FALSEkeyUsage critical, digitalSignature, keyEnciphermentextendedKeyUsage serverAuthsubjectAltName alt_names# CSR-time server req (used with: -reqexts server_req)[ server_req ]basicConstraints CA:FALSEkeyUsage digitalSignature, keyEnciphermentextendedKeyUsage serverAuth第三步生成根CA私钥和证书12345678# 生成根 CA 私钥加密私钥需输入口令如不加密去掉 -aes256openssl genrsa -aes256 -outrootCA.key 4096# 生成根 CA 的 CSR可直接自签CN 可写组织名或 Example Root CAopenssl req -new-sha256 -key rootCA.key -outrootCA.csr -subj/CCN/STCQ /OSelfCA Org/CNMy Self Root CA-config openssl.cnf# 使用 X.509 自签生成根 CA 证书10 年有效期举例openssl x509 -req -sha256 -days 3650 -inrootCA.csr -signkey rootCA.key -outrootCA.crt -extfile openssl.cnf -extensions v3_root_ca第四步生成中间CA私钥和证书12345678#生成中间 CA 私钥与 CSRopenssl genrsa -outinterCA.key 4096 openssl req -new-sha256 -key interCA.key -outinterCA.csr -subj/CCN/STCQ/OSelf Intermediate Org/CNMy Self Intermediate CA-config openssl.cnfbr# 用根 CA 签发中间 CA 证书# 通过根 CA 为中间 CA CSR 签名并指定中间 CA 扩展pathlen0/1 视需求openssl x509 -req -sha256 -days 1825 -ininterCA.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -outinterCA.crt -extfile openssl.cnf -extensions v3_intermediate_ca第五步生成服务器私钥和证书12345678# 生成服务器私钥与 CSR含 SANopenssl genrsa -outserver.key 2048# 生成 CSR并在 -req 扩展中声明 SAN在 openssl.cnf 的 [server_req] 与 [alt_names] 中定义openssl req -new-sha256 -key server.key -outserver.csr -subj/CCN/STCQ/OMy Self Server Org/CN*.mytest.com-config openssl.cnf -reqexts server_req# 用中间 CA 为服务器 CSR 签名openssl x509 -req -sha256 -days 825 -inserver.csr -CA interCA.crt -CAkey interCA.key -CAcreateserial -outserver.crt -extfile openssl.cnf -extensions server_cert第三四五步的实验结果如图第六步合并证书链1234567# 构造完整证书链文件Intermediate Roottype interCA.crt rootCA.crt chain.crt# 验证 server.crt 是否能由 chain.crt中间根构成完整信任链openssl verify -CAfile chain.crt server.crt第七步生成PFX文件12# 将中间根合并为 chain.crt 后一起导入openssl pkcs12 -export -outserver_fullchain.pfx -inkey server.key -inserver.crt -certfile chain.crt -nameMy Self Full Server Cert-passout pass:xxxxxxxxx最终所生成的证书文件展示

相关文章:

【Azure 环境】在Windows环境中使用OpenSSL生成自签名证书链步骤分享

问题描述 在Web应用部署环境中,常常需要为内部系统或测试环境生成自签名证书,尤其是包含根证书、中间证书和服务器证书的完整证书链,并最终生成包含私钥的 PFX 文件(.pfx)。 如何使用 openssl 工具一步步完成这些操作…...

MWC2026 核心趋势:Agentic AI 全面落地,端侧智能重构开发者技术栈

Agentic AI:MWC2026 定义的下一代智能范式 从生成到代理:AI 能力的本质跃迁 在MWC2026的主题演讲中,GSMA(全球移动通信系统协会)首次将**Agentic AI(代理式AI)**列为未来3年移动通信与AI融合的核…...

Ubuntu下VS Code终端字体配置避坑指南:从Powerline10k渲染异常到完美显示

Ubuntu下VS Code终端字体配置全攻略:从Powerline10k异常到专业级显示优化 在Linux开发环境中,VS Code凭借其轻量化和强大的扩展生态成为众多工程师的首选IDE。但当我们为终端配置Powerline10k这类高级主题时,经常会遇到符号显示异常、字体错位…...

springcloud-eureka与gateway简易搭建

目录 eureka 新建euereka-server项目新建服务启动类配置相关属性启动服务编写微服务进行注册测试 SpringCloudGateway 新建gateway项目配置相关属性启动服务测试路由转发 eureka Spring Cloud Eureka主要负责实现微服务架构中的服务治理功能,简易搭建步骤为&…...

Arduino双串口流合并库:MergedStreams优先级仲裁设计

1. 项目概述MergedStreams 是一个面向 Arduino 平台的轻量级 C 库,其核心目标是将两个独立的Stream对象(如Serial、SoftwareSerial、HardwareSerial实例或自定义流)逻辑上合并为单个统一的Stream接口。该库并非简单地并行转发数据&#xff0c…...

SecGPT-14B惊艳案例:从原始PCAP提取C2通信特征并生成IOC

SecGPT-14B惊艳案例:从原始PCAP提取C2通信特征并生成IOC 1. SecGPT-14B网络安全大模型简介 SecGPT是由云起无垠团队开发的开源大语言模型,专门针对网络安全领域的需求而设计。这个模型融合了自然语言处理、安全知识推理和代码生成能力,能够…...

基于Hadoop +Spark美食数据分析可视化系统 深度学习情感分析 餐厅推荐系统 美食推荐系统

1、项目介绍 技术栈: Python语言、Django框架、MySQL数据库、深度学习 TensorFlow的Keras构建 LSTM 模型、 LSTM 预测算法模型、Echarts可视化、selenium爬虫技术、大众点评数据 大数据技术:Hadoop、Spark、Hive2、项目界面 (1)首…...

Gerrit代码提交避坑指南:5种常见错误及解决方法(附真实案例)

Gerrit代码提交避坑指南:5种常见错误及解决方法(附真实案例) 在团队协作开发中,Gerrit作为代码评审工具被广泛使用,但开发者常会遇到各种提交问题。本文将深入分析五种高频错误场景,提供可落地的解决方案&a…...

5大交互革命:foobox-cn界面引擎如何重塑音乐播放体验

5大交互革命:foobox-cn界面引擎如何重塑音乐播放体验 【免费下载链接】foobox-cn DUI 配置 for foobar2000 项目地址: https://gitcode.com/GitHub_Trending/fo/foobox-cn 为什么专业音频播放器总是在视觉设计上落后于时代?foobar2000作为功能标杆…...

OpenClaw+GLM-4.7-Flash学习助手:自动整理课程笔记与生成测验

OpenClawGLM-4.7-Flash学习助手:自动整理课程笔记与生成测验 1. 为什么需要AI学习助手? 去年备考PMP认证时,我每天需要消化3小时课程视频。最痛苦的环节不是听课,而是课后整理:手动暂停视频记录重点、提炼知识框架、…...

Kettle自定义插件实现ClickHouse无缝连接

1. 为什么需要Kettle连接ClickHouse插件 做过数据处理的同学都知道,Kettle(现在叫Pentaho Data Integration)是个老牌ETL工具,而ClickHouse作为新兴的列式数据库,在数据分析场景下性能非常强悍。但官方Kettle默认不支…...

Smart Blaster:基于Arduino的Nerf智能改装嵌入式系统

1. 项目概述Smart Blaster 是一个面向高度改装 Nerf 发射器的嵌入式智能增强系统,其核心目标是将传统玩具枪升级为具备实时状态感知、人机交互与战术控制能力的电子化武器平台。该系统并非独立硬件产品,而是一套完整的 Arduino 兼容固件库(Sm…...

Oatmeal协议:嵌入式Python-Arduino类型安全串行通信

1. Oatmeal 协议概述:面向嵌入式系统的跨平台串行通信协议Oatmeal 协议是一个专为 Arduino 兼容微控制器与 Python 主机之间建立可靠、类型安全、自描述式串行通信而设计的轻量级二进制-文本混合协议。其核心目标并非替代底层 UART 驱动,而是在硬件抽象层…...

技术解析:CVPR2023 IRRA模型如何通过隐式推理实现行人检索任务73.38%的Rank-1准确率

1. 从文本到图像的精准匹配:行人检索任务的核心挑战 想象一下这样的场景:你在监控视频中看到一个穿红色外套、背黑色双肩包的可疑人员,现在需要从海量监控画面中快速找到这个人的其他影像记录。传统方法可能需要人工逐帧查看,而行…...

SDXL 1.0电影级绘图工坊效果展示:Anime预设下角色线条锐度与色彩饱和度

SDXL 1.0电影级绘图工坊效果展示:Anime预设下角色线条锐度与色彩饱和度 今天,我们来聊聊一个让动漫爱好者兴奋的话题:如何用AI画出线条锐利、色彩饱满的动漫角色。如果你尝试过一些AI绘画工具,可能会发现生成的动漫图有时线条模糊…...

OpenClaw技能扩展:基于GLM-4.7-Flash开发自定义自动化模块

OpenClaw技能扩展:基于GLM-4.7-Flash开发自定义自动化模块 1. 为什么需要自定义技能? 去年冬天,我发现自己每周都要重复处理几十份客户反馈表——从邮件下载附件、提取关键字段、整理成Excel再发给团队。当我第三次在深夜加班做这项工作时&…...

卷积神经网络(CNN)原理可视化与教学:利用Qwen3-14B-Int4-AWQ生成解释性内容

卷积神经网络(CNN)原理可视化与教学:利用Qwen3-14B-Int4-AWQ生成解释性内容 1. 当AI成为教育助手:Qwen3如何让CNN原理一目了然 想象一下,当你第一次接触"卷积神经网络"这个概念时,眼前浮现的是…...

CoPaw新手入门指南:从零部署到多端使用,打造你的专属AI个人助理

CoPaw新手入门指南:从零部署到多端使用,打造你的专属AI个人助理 1. CoPaw简介与核心功能 1.1 什么是CoPaw CoPaw是一款基于开源技术的个人助理型产品,可以部署在用户自己的环境中。它内置了强大的Qwen3-4B-Instruct-2507模型,通…...

手把手教你搞定ArcMap个人版授权(附My Esri登录与ESU码查找全流程)

零基础ArcMap个人版授权终极指南:从My Esri登录到ESU码激活全解析 当你第一次拿到ArcGIS个人版许可时,面对My Esri平台和授权流程可能会感到无从下手。作为GIS领域的入门必备工具,ArcMap的授权过程虽然逻辑清晰,但对于新手来说&am…...

StructBERT文本相似度模型CSDN博客内容推荐系统实战

StructBERT文本相似度模型CSDN博客内容推荐系统实战 不知道你有没有这样的经历:在CSDN这样的技术社区里,看了几篇关于“Python异步编程”的文章,结果首页推荐给你的,全是标题里带“Python”和“异步”字眼的博客,哪怕…...

Qwen3-TTS声音设计创意玩法:生成游戏NPC配音、有声书朗读等

Qwen3-TTS声音设计创意玩法:生成游戏NPC配音、有声书朗读等 1. 引言:声音设计的无限可能 想象一下,你正在开发一款角色扮演游戏,需要为几十个NPC设计独特的声音;或者你是一位内容创作者,希望为有声读物添…...

Rust的匹配中的编译器进展

Rust的匹配机制一直是其语言设计中的亮点,它不仅提供了强大的模式匹配能力,还在编译时确保了安全性和效率。近年来,Rust编译器在匹配优化方面取得了显著进展,这些改进不仅提升了代码性能,还进一步简化了开发者的工作。…...

FPGA开发必备:Quartus II MegaWizard Plug-In Manager高效使用技巧(附LPM_COUNTER实例)

FPGA开发实战:Quartus II MegaWizard高效配置与LPM_COUNTER深度优化 在FPGA开发领域,效率往往决定着项目成败。当面对复杂逻辑设计时,熟练使用工具链中的高效模块可以节省大量重复劳动时间。Quartus II的MegaWizard Plug-In Manager正是这样一…...

组合管理化技术树形结构遍历算法

组合管理化技术树形结构遍历算法是计算机科学中一项重要的研究课题,广泛应用于数据管理、网络优化、人工智能等领域。树形结构作为一种高效的数据组织形式,能够清晰地表达层次关系,而遍历算法则是操作树形数据的核心手段。通过组合管理化技术…...

告别O(n²)!用Set Transformer高效处理无序集合数据(附PyTorch代码逐行解析)

告别O(n)!用Set Transformer高效处理无序集合数据(附PyTorch代码逐行解析) 当算法工程师面对用户行为日志、点云数据或分子结构这类无序集合时,传统Transformer的自注意力机制会带来难以承受的O(n)计算负担。Set Transformer通过引…...

MAI-UI-8B效果实测:输入需求,直接输出可运行的前端代码

MAI-UI-8B效果实测:输入需求,直接输出可运行的前端代码 1. 效果展示与核心能力 MAI-UI-8B作为一款面向真实世界的通用GUI智能体,最令人惊艳的能力莫过于能够根据自然语言描述直接生成可运行的前端代码。我们通过一系列实测案例来展示它的实…...

RMBG-2.0创意应用:为LoRA训练准备高质量透明主体数据集方法

RMBG-2.0创意应用:为LoRA训练准备高质量透明主体数据集方法 1. 项目背景与价值 在AI图像生成领域,LoRA(Low-Rank Adaptation)训练已经成为个性化模型定制的重要技术。但要训练出高质量的LoRA模型,最关键的基础就是准…...

SD-MTSP:利用KOA算法优化单仓库多旅行商问题的MATLAB实现,可灵活调整数据集与参数

SD-MTSP:开普勒优化算法KOA求解单仓库多旅行商问题MATLAB(可更改数据集,旅行商的数量和起点) 最近在折腾多旅行商问题的时候,发现了一种挺有意思的优化算法——开普勒优化算法(KOA)。这玩意儿把…...

LT9211芯片实战:从单路LVDS到双路LVDS的高效转换方案

1. LT9211芯片基础解析:你的视频信号转换瑞士军刀 第一次拿到LT9211这颗芯片的时候,我正被客户的一个奇葩需求困扰——需要把工业相机输出的单路LVDS信号拆分成双路,同时还要保持信号同步。市面上常见的方案要么成本太高,要么延迟…...

从零开始:用ResNet18镜像实现图片内容自动分类

从零开始:用ResNet18镜像实现图片内容自动分类 1. 项目概述与核心价值 ResNet18镜像是一个基于PyTorch官方TorchVision库构建的轻量级图像分类解决方案。它特别适合需要在资源有限环境中快速部署图像识别能力的开发者和企业。 这个镜像的核心优势在于&#xff1a…...