首页 > 其他分享 >【学习笔记】SSL证书之文件格式

【学习笔记】SSL证书之文件格式

时间:2024-08-28 12:51:19浏览次数:6  
标签:文件 PKCS 证书 笔记 SSL ----- PFX 文件格式

SSL证书及密钥以文件的形式存在于我们的电脑上,这些文件一般为以下4种格式:

  • DER
  • PEM
  • PFX / PKCS#12
  • PKCS#7

1、DER

  • Distinguished Encoding Rules(可辨别编码规则)是在线证书的格式
  • 二进制编码,如果用TXT进行查看会呈现出乱码。
  • 在SSL证书领域,我们一般不用DER格式的文件来交换证书(因为DER只是在线文件)
  • DER文件格式有以下文件扩展名:
    • .der    .cert    .crt    .csr
    • 需要注意的是,文件扩展名不足以识别文件格式(比如不能说用了.cert或者.crt就说是DER文件)

2、PEM

  • Privacy Enhanced Mail(隐私增强邮件)
  • DER 格式的 base64 编码版本
    • 每6位(bits)转换为一个字符(character)
    •  
      Base64是一种可读性算法(普通的二进制数据随机性很大,二进制文件打开后会有很多奇怪的字符,可读性很差),使用Base64后可读性增强,它由64个字符组成,包括大写A-Z,小写a-z,数字0-9,两个符号 + 和 /

  • PEM格式每个人都喜欢,因为没有特殊字符、特殊字母,所以它易于复制粘贴(好使)
  • PEM文件包含以下识别符(可包含多个):
    • “-----BEGIN CERTIFICATE-----” “-----END CERTIFICATE-----”证书文件
    • “-----BEGIN PRIVATE KEY-----”  “-----END PRIVATE KEY-----”私钥文件
    • “-----BEGIN CERTIFICATE REQUEST-----”  “-----END CERTIFICATE REQUEST-----” 证书申请时需要提交的CSR文件
  • PEM文件格式扩展名
    • .pem    .cert    .crt    .key    .csr
    • 同样的,除了.pem,其他扩展名别的文件格式也能用,不能因为这些扩展名就认定是PEM文件
    • 通过.pem或者上述的识别符(如“-----BEGIN CERTIFICATE-----”)可以判定是PEM文件格式

3、PFX / PKCS#12

  • PFX = Personal Information Exchange,个人信息交换(不知道缩写为啥不都选第一个字母)
  • Public-Key Cryptography Standard #12,公钥加密标准#12
  • PFX最早由微软(Microsoft)在1996年发布,但是这个文件存在的问题是不易读,且经常让人困扰,所以RSA Labs在1999年将PFX标准进行重新编写,并重新发布了PKCS#12,现在全世界都在用PKCS#12格式(纯PFX格式的文件很少见了);
  • 虽然现在都用PKCS#12格式,但还是用的PFX名称和扩展(还叫他PFX文件)
  • PFX / PKCS#12文件里包含一张证书和相匹配的密钥,出现在相同的文件里,易于部署
    • 此外,PFX文件还包含额外的链证书或者说中间证书(之后我们会阐述证书链)
  • PFX / PKCS#12文件也是二进制编码,不能用txt查看
  • PFX / PKCS#12文件扩展名如下:
    • .pfx    .p12    .pkcs12

4、PKCS#7

  • Public-Key Cryptography Standard #7
  • Base64编码文件(“-----BEGIN PKCS7-----”)
  • 包含证书或者中间证书,但不包含密钥,只包含证书
  • PKCS#7在SSL证书中不常用,但也是很常用的证书或密钥格式,它起初是用于S/MIME邮件签名来分享证书,用PKCS#7格式的文件验证邮件的签名。(注意,签名由私钥创建,但由证书中的公钥进行验证,这就解释了为什么PKCS#7文件格式里没有密钥)
  • PKCS#7文件扩展名如下:
    • .pkcs7    .p7b    .p7c

最后,不同的软件使用对应的文件格式,列举如下:

  • DER:Java
  • PEM:Apache,NGINX,Linux,Plesk;Cisco Routers,Cisco ASAs,BigIP F5
  • PFX / PKCS#12:IIS,Windows,Tomcat,Thunderbird,Firefox
  • PKCS#7:S/MIME;Java,Windows

参考文献

1、网站:Practical Networking.net:Practical TLS

标签:文件,PKCS,证书,笔记,SSL,-----,PFX,文件格式
From: https://blog.csdn.net/Taki_UP/article/details/141634119

相关文章

  • 给自己复盘的随想录笔记-链表练习题(在整理ing)
    删除链表的倒数第N个节点双指针的经典应用,如果要删除倒数第n个节点,让fast移动n步,然后让fast和slow同时移动,直到fast指向链表末尾。删掉slow所指向的节点就可以了。思路是这样的,但要注意一些细节。分为如下几步:推荐大家使用虚拟头结点,这样方便处理删除实际头结点的逻辑,定......
  • 给自己复盘的tjxt笔记day9
    优惠券管理开发流程需求分析,接口统计,数据库设计,创建分支,创建新模块(依赖,配置,启动类),生成代码,引入枚举状态优惠券管理增删改查的业务代码,没有新的知识点新增优惠券@Override@TransactionalpublicvoidsaveCoupon(CouponFormDTOdto){//1.保存优惠券......
  • LightGODE论文阅读笔记
    DoWeReallyNeedGraphConvolutionDuringTraining?LightPost-TrainingGraph-ODEforEfficientRecommendation论文阅读笔记Abstract现存的问题:​ 图卷积网络(GCN)在训练推荐系统(RecSys)中的效率和可扩展性一直是令人担忧的问题,阻碍了它们在现实世界中的应用。提出方法:......
  • 学习笔记:基础动态规划
    线性DP定义具有线性“阶段”划分的动态规划算法被统称为线性动态规划入门线性动态DPLIS问题最长上升子序列问题。问题:给定一个长度为\(N\)的数列\(A\),求数值单调递增的子序列的长度最长是多少(子序列不需要连续)。经典的线性动态规划问题。分析:容易发现,对于某一个位......
  • Java学习笔记9-数据类型的转化
    一.显示转化在Java中,数据类型的转换主要分为两种:自动类型转换(也称为隐式类型转换)和强制类型转换(也称为显式类型转换)。1.自动类型转换(隐式类型转换)自动类型转换是指在赋值或运算过程中,较小的数据类型自动转换为较大的数据类型。Java编译器会自动进行这种转换,不需要程序员显式指......
  • Java学习笔记10-运算符
    Java运算符是用于执行各种数学、逻辑和位运算的符号。Java中的运算符可以分为以下几类:一、算术运算符用于执行基本的数学运算,如加、减、乘、除和取模。常用的算术运算符包括+、-、*、/和%。算数运算符详解Java中的算术运算符包括加、减、乘、除、取模等,下面分别详细介绍。1.1......
  • Datawhale AI夏令营 Task 1 《深度学习详解》 - 1.1 通过案例了解机器学习的学
        一、学习目标通过具体案例深入理解机器学习的概念、工作原理以及在实际应用中的作用。二、主要内容案例介绍:详细阐述了图像识别、语音识别、自然语言处理等领域的具体案例,如人脸识别系统、智能语音助手、文本......
  • C:回调函数的介绍-学习笔记
    前言:本篇文章我们将继续指针相关知识:回调函数希望大家在看完后能够有所收获!回调函数 定义与概念回调函数是一个通过指针调用的函数。如果把函数指针作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,被调用的函数就是回调函数,回调函数不是有该函数的实现方......
  • HCIP笔记10-MPLS(1)
    MPLS:多协议标签交换多协议:可以基于多种不同的3层协议来生成2.5层的标签信息;包交换--包为网络层的PDU,故包交换是基于IP地址进行数据转发;就是路由器的路由行为;原始的包交换:数据包进入路由器后,路由器需要查询本地的路由表(RIB-路由信息数据库),再基于下一跳或者目标ip查询本地的A......
  • datawhale深度学习入门:task1学习笔记
    机器学习是一种人工智能的分支,它主要涉及通过经验和数据来训练计算机模型以自动处理任务或进行预测。这些模型可以利用算法和数学模型来分析和学习数据,然后使用这些知识来执行特定的任务,如图像识别、语音识别、自然语言处理、数据分类、趋势预测等。深度学习是人工智能(AI)中的......