SSL 证书格式和证书文件扩展名:完整指南

news2025/1/10 1:23:45

SSL 证书是什么以及它如何工作相当容易理解。但当涉及到在服务器上安装它时,有时,你可能觉得这是在处理火箭科学。

由于有如此多的SSL 证书格式与特定服务器要求相关,您更有可能感到困惑和沮丧,而不是从一开始就正确配置证书。但这种情况即将改变。

在此综合指南中,我们将剖析每种SSL 证书格式和证书文件扩展名,并向您展示两种如何转换不同文件类型的方法。

证书文件格式 – 基础知识

让我们从基础知识开始。所有 SSL 证书都是x.509 证书。这是用一种称为抽象语法表示法一的形式语言表达的公钥证书的标准格式。我们不会进一步深入研究 X.509 结构;我们在这里讨论 SSL 证书格式,例如 DER、PEM、PKCS#7 和 PKCS#12。

区分它们的一个简单的方法是看它们的编码。

PEM和PKCS#7使用 Base ASCII(美国信息交换标准代码)编码。这是包含文本的文件的流行标准。

DER和PKCS#12使用二进制编码,即仅由零和一组成的以 2 为基数的数字系统。

由于格式和编码不同,SSL证书有许多文件扩展名。

SSL 证书格式和文件扩展名

让我们仔细检查每种格式及其 SSL 证书文件扩展名。您将发现每个首字母缩略词背后的含义以及哪个系统最常使用它。

DER 格式

DER代表可分辨编码规则,是一种二进制编码格式,在 Windows 之外很少使用。它包含在 .der 或 .cer 文件中。

PEM 格式

PEM是最流行的 SSL 证书格式,也是您最有可能遇到的格式。大多数 CA 都提供 PEM 格式的 SSL 证书,证书文件扩展名各不相同,例如 .pem、.crt、.cer 或 .key。

PEM代表隐私增强电子邮件,您可能想知道电子​​邮件与 SSL 证书有什么关系?长话短说,PEM 未能完成其主要工作,但发现了其作为容器格式的应用。

本质上,PEM 文件是 Base64 编码的 DER 文件,其中零和一被编码为可打印字符序列。这样,您可以使用任何文本编辑器(包括记事本)打开它们。

单个 .pem 文件可以包含服务器证书、中间证书和私钥。或者,您可以在单独的 .crt 或 .cer 文件中接收服务器证书和中间证书,而私钥可能位于 .key 文件中。

PKCS#7 格式

PKCS代表公钥加密标准。

PKCS#7是一种用于分发加密数据的多用途 SSL 证书格式。它主要用于 Windows 平台和 Java Tomcat。

今天,我们实际上正在使用它的后继者 CMS(加密消息语法),但就像SSL 和 TLS一样,旧名称已经变得太熟悉而无法取代。

PKSC#7 有两个文件扩展名:.p7b 或 p7c。与 PEM 不同,PKCS#7 不能存储私钥,只能存储主要证书和中间证书。

PKCS#12 格式

PKCS#12是另一种安全性增强的公共加密标准。与 PEM 文件一样,它可以将整个 SSL 证书链和密钥对包含在单个 .pfx 文件中。主要区别在于 PCKS#12 是一个受密码保护的容器。

有些服务器系统在生成CSR时会提示您输入密码,您可以使用它来打开.pfx文件。

SSL 格式转换

现在您已经了解了 SSL 证书格式及其多个证书文件扩展名,现在是时候揭示您真正等待的内容了——如何将 SSL 证书转换为任何格式。

与大多数文件转换一样,有多种方法可以完成转换。最快的方法是使用自动SSL 转换工具。您只需选择所需的操作(例如,PEM 到 PKCS#7 的转换),上传文件,然后点击转换。

或者,您可以使用免费的 OpenSSL 软件库来转换 SSL 文件。此实用程序几乎可以在任何现有服务器上启用 SSL/TLS 协议。许多平台和 Linux 发行版都预装了 OpenSSL 实用程序。对于 Windows,您必须获取安装包。

将 X.509 转换为 PEM

要将 X.509 转换为 PEM,请在 OpenSSL 中运行以下命令:

openssl x509 -in certificatename.cer -outform PEM -out certificatename.pem

将 DER 转换为 PEM

二进制编码为 Base64 ASCII。

要将 DER 转换为 PEM,请运行以下命令:

openssl x509 -inform der -in certificatename.der -out certificatename.pem

将 PEM 转换为 DER

Base65 ASCII 到二进制编码。

要将 PEM 转换为 DER,请运行以下命令:

openssl x509 -inform der -in certificatename.der -out certificatename.pem

将 PEM 转换为 PKCS#7

.p7b 文件不包含私钥。

要将 PEM 转换为 PKCS#7,请运行以下命令:

openssl crl2pkcs7 -nocrl -certfile certificatename.pem -out certificatename.p7b -certfile CACert.cer

将 PKCS#7 转换为 PEM

要将 PKCS#7 转换为 PEM,请运行以下命令:

openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.pem

将 PKCS#12 转换为 PEM

PKCS#12 文件受密码保护。

要将 PKCS#12 转换为 PEM,请运行以下命令:

openssl pkcs12 -in certificatename.pfx -out certificatename.pem

将 PKCS7 转换为 PKCS12

这需要两个步骤。首先将 P7B 文件转换为 CER,然后将 CER 和私钥合并为 PFX。

openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.cer

openssl pkcs12 -export -in certificatename.cer -inkey privateKey.key -out certificatename.pfx -certfile  cacert.cer

就是这样。现在您可以快速转换任何类型的 SSL 文件并将其安装到您的服务器上。

了解 SSL 证书格式、证书文件扩展名以及如何将它们转换为您想要的配置是一项宝贵的技能,它将帮助您在任何系统上无缝安装 SSL 证书。

选择正确的 SSL 格式将确保 Web 服务器、电子邮件客户端和网络上的稳定加密和安全连接。

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

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

相关文章

【源码+文档+调试讲解】项目申报小程序

摘 要 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代…

echarts横向柱状图胶囊

echarts配置项 tooltip: {trigger: axis, // 触发tooltip提示类型 axis:坐标轴触发axisPointer: {type: cross, // 指示器类型 cross: 十字准星指示器crossStyle: {color: #999 // 线颜色}} }, grid: { left: 0%, //离容器左侧的距离top:5%,bottom: 3%,containLabel: true…

人工智能的发展领域之GPU加速计算的应用概述、架构介绍与教学过程

文章目录 一、架构介绍GPU算力平台概述优势与特点 二、注册与登录账号注册流程GPU服务器类型配置选择指南内存和存储容量网络带宽CPU配置 三、创建实例实例创建步骤镜像选择与设置 四、连接实例SSH连接方法远程桌面配置 一、架构介绍 GPU算力平台概述 一个专注于GPU加速计算的…

Redis Exporter 安装与配置指南(v1.67.0)

🚀 1. 下载 Redis Exporter 首先,登录到目标服务器,下载 Redis Exporter v1.67.0 安装包。 wget https://github.com/oliver006/redis_exporter/releases/download/v1.67.0/redis_exporter-v1.67.0.linux-amd64.tar.gz📦 2. 解压…

WD5105同步降压转换器:9.2V-95V宽电压输入,4.5A大电流输出,95%高效率,多重保护功能

概述 • WD5105同步降压转换器 • 封装形式:QFN-20封装 • 应用场景:适用于车载充电器、电动车仪表、电信基站电源、电源适配器等 性能特点 • 输入电压范围:9.2V至95V • 输出电流:可提供4.5A连续负载电流 • 效率:高…

Laravel 新 WebSocket 服务 Reverb 使用指南

旧篇 > Laravel/Lumen 中使用 Echo Socket.IO-Client 实现网页即时通讯广播 https://blog.csdn.net/maxsky/article/details/130394420 已过时 与时俱进,Laravel 官方在 2024 年 7 月发布了 laravel/reverb 包的正式版,因为之前使用的 laravel-echo-…

什么是Kafka?有什么主要用途?

大家好,我是锋哥。今天分享关于【什么是Kafka?有什么主要用途?】面试题。希望对大家有帮助; 什么是Kafka?有什么主要用途? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Kafka 是一个分布式流…

Python爬虫基础——认识网页结构(各种标签的使用)

1、添加<div>标签的代码定义了两个区块的宽度和高度均为100px&#xff0c;边框的格式也相同&#xff0c;只是区块中显示的内容不同&#xff1b; 2、添加<ul>和<ol>标签分别用于定义无序列表和有序列表。<il>标签位于<ul>标签或<ol>标签之…

数据结构:LinkedList与链表—面试题(三)

目录 1、移除链表元素 2、反转链表 3、链表的中间结点 4、返回倒数第k个结点 5、合并两个有序链表 1、移除链表元素 习题链接https://leetcode.cn/problems/remove-linked-list-elements/description/ 描述&#xff1a;给你一个链表的头节点 head 和一个整数 val &#xff…

QT实现 端口扫描暂停和继续功能 3

上篇QT给端口扫描工程增加线程2-CSDN博客 为按钮pushButton_Stop添加clicked事件&#xff0c;功能为暂停扫描&#xff0c;并在暂停后显示继续按钮&#xff0c;点击继续按钮之后继续扫描 1.更新UI 添加继续按钮 点击转到槽则会自动声明 2. 更新 MainWindow.h 需要新增的部分…

LabVIEW瞬变电磁接收系统

利用LabVIEW软件与USB4432采集卡开发瞬变电磁接收系统。系统通过改进硬件配置与软件编程&#xff0c;解决了传统仪器在信噪比低和抗干扰能力差的问题&#xff0c;实现了高精度的数据采集和处理&#xff0c;特别适用于地质勘探等领域。 ​ 项目背景&#xff1a; 瞬变电磁法是探…

左神算法基础巩固--3

文章目录 二叉树二叉树的遍历先序遍历中序遍历后序遍历 解答二叉树的宽度优先遍历 在这里插入图片描述 一颗完全二叉树具有以下特征&#xff1a;1.不存在任何一个节点具有右子树但不存在左子树.2.不存在任何一个节点在满足1的情况下左右子树不全且其后续节点不为叶子节点 根据以…

高山旅游景区有效降低成本,无人机山下到山上物资吊运技术详解

在高山旅游景区&#xff0c;传统的物资运输方式往往面临人力成本高昂、效率低下等问题&#xff0c;而无人机技术的引入为这一难题提供了新的解决方案。以下是对无人机从山下到山上进行物资吊运技术的详细解析&#xff1a; 一、无人机物资吊运技术的优势 1. 降低人力成本&#…

APP上架之Android 证书 MD5 指纹

Android 证书 MD5 指纹 1. 什么是 Android 证书 MD5 指纹&#xff1f; Android 证书 MD5 指纹是对证书数据进行 MD5 哈希运算后得到的 128 位字符串。在 Android 开发中&#xff0c;每个证书在理论上都有一个唯一的 MD5 指纹&#xff0c;用于识别和验证证书的有效性。证书指纹…

用户界面的UML建模11

然而&#xff0c;在用户界面方面&#xff0c;重要的是要了解《boundary》类是如何与这个异常分层结构进行关联的。 《exception》类的对象可以作为《control》类的对象。因此&#xff0c;《exception》类能够聚合《boundary》类。 参见图12&#xff0c;《exception》Database…

网络安全-XSS跨站脚本攻击(基础篇)

漏洞扫描的原理 1.跨站脚本攻击介绍 xss跨站脚本攻击&#xff1a; xSS 全称&#xff08;Cross site Scripting &#xff09;跨站脚本攻击&#xff0c;是最常见的Web应用程序安全漏洞之一&#xff0c;位于OWASP top 10 2013/2017年度分别为第三名和第七名&#xff0c;XSS是指攻…

CODESYS MODBUS TCP通信(禾川Q1 PLC作为MODBUS TCP从站)

禾川Q1 PLC MODBUS TCP 通信(PLC作为MODBUS TCP通信主站) 禾川Q1 PLC MODBUS TCP通信(CODESYS平台完整配置+代码)-CSDN博客文章浏览阅读28次。MATLAB和S7-1200PLC水箱液位高度PID控制联合仿真(MODBUSTCP通信)_将matlab仿真导入plc-CSDN博客文章浏览阅读722次。本文详细介绍了如…

golang OpcUaClient

实现功能 package mainimport ("fmt""log""opcuaclient/util/plugin/client/opcclient""os""os/signal""syscall" )func main() {OPCUATest()// 监听操作系统信号&#xff0c;阻塞直到接收到信号quit : make(chan…

git commit冲突,需输入提交信息合并提交

git commit时冲突&#xff0c;需输入提交信息合并提交&#xff0c;该如何操作&#xff1f; windows按esc键进入命令模式&#xff0c;输入&#xff1a;wq并按enter保存并退出即可。

Linux/Ubuntu/银河麒麟 arm64 飞腾FT2000 下使用 arm64版本 linuxdeployqt 打包Qt程序

文章目录 一、前言二、环境三、准备1、下载Linuxdeployqt源码2、下载Appimagetool-aarch64.AppImage四、编译linuxdeployqt1.配置环境变量2.编译linuxdeployqt五、安装patchelf六、配置Appimagetool七、打包Qt程序重要提示:测试启动应用八、其他九、最后一、前言 因为项目需要…