证书学习(二)搞懂 keystore、jks、p12、pfx、crt、csr、pem文件的区别

server/2024/10/19 9:39:01/

目录

    • 一、背景
    • 二、文件格式的区分
      • 2.1 .keystore / .jks 文件
      • 2.2 .p12 / .pfx 文件
      • 2.3 .crt 文件
      • 2.4 csr 文件
      • 2.5 .pem 文件
    • 三、总结

一、背景

我们在日常的开发过程中,经常会见到各种各样的证书相关类型的文件,错综复杂。

其实 keystorejksp12pfxcrtcsrpem 这些文件类型都是在处理加密和认证过程中常见的文件格式,每种文件都有其特定的用途和格式,我们下面来对这几种类型进行简要说明。


二、文件格式的区分

2.1 .keystore / .jks 文件

  • 格式:.keystore.jks(Java Keystore)Java 密钥库系统的默认格式
  • 内容: 私钥、公钥证书,以及可能的其他证书链。
  • 用途: 主要用于 Java 应用程序的安全配置,如 Web 服务器的身份验证。
  • 示例命令:
# .keystore文件
keytool -genkey -alias myalias -keyalg RSA -keysize 2048 -validity 365 -keystore mykeystore.keystore
# .jks文件
keytool -genkey -alias myalias -keyalg RSA -keysize 2048 -validity 365 -keystore mykeystore.jks

2.2 .p12 / .pfx 文件

  • 格式: PKCS#12一种跨平台的标准格式
  • 内容: 私钥、证书证书链。
  • 用途: 用于多种环境,不仅限于 Java,还可以用于 .NET 应用、IOS 应用等。
  • 示例命令:
keytool -importkeystore -srckeystore mykeystore.jks -srcalias myalias -destkeystore mykeystore.p12 -deststoretype pkcs12

2.3 .crt 文件

  • 格式: 通常用于 存储 X.509 格式的公钥证书
  • 内容: 只包含公钥证书
  • 用途: 用于安装到 Web 服务器上,以便向客户端证明服务器的身份。
  • 示例命令:
# 方式一
keytool -exportcert -keystore d:\keystore\bo.keysotre -alias www.bo.org -file d:\keystore\bo.crt
# 方式二
openssl x509 -in cert.pem -outform PEM -out cert.crt

2.4 csr 文件

  • 格式: CSR(Certificate Signing Request)一个证书签名请求文件
  • 内容: 公钥和一些标识信息,用于向证书办法机构申请证书
  • 用途: 用于向证书颁发机构提交证书申请。
  • 示例命令:
# 方式一
keytool -certreq -alias www.bo.org -keystore d:\keystore\bo.keystore -file d:\keystore\cert.csr
# 方式二
openssl req -new -key key.pem -out request.csr

2.5 .pem 文件

  • 格式: PEM(Privacy Enhanced Mail)一种通用的 ASCII 编码的密钥和证书格式
  • 内容: 公钥、私钥或者证书, 通常用于 OpenSSL 中。
  • 用途: 广泛用于各种安全协议和应用程序中,包括 SSL/TLS
  • 示例命令:
openssl req -new -x509 -days 365 -nodes -out cert.pem -keyout key.pem

三、总结

  • .keystore/.jks:Java 应用程序使用的密钥库格式,包含私钥和证书
  • .pem:通用的 ASCII 编码的密钥和证书格式,可用于多种目的。
  • .p12/.pfx: 跨平台的标准格式,包含私钥、证书证书链。
  • .crt: X.509 格式的公钥证书文件。
  • .csr证书签名请求文件,用于向证书颁发机构申请证书

具体文件格式的选择取决于具体的需求和所使用的平台。例如:如果你是在 Java 环境中工作,可能会使用 .keystore.jks 文件;如果你需要跨平台兼容性,则可能更倾向于使用 .p12.pfx 文件。

整理完毕,完结撒花~🌻


http://www.ppmy.cn/server/104358.html

相关文章

【QT从入门helloworld到进阶QT(C++)部署YOLOV5】

QT入门看这一篇就够(详解含qt源码) Qt Creator 简单使用 1.1 Qt Creator 界面组成 启动 Qt Creator 后,Qt Creator 的主界面如下图,默认打开的是欢迎页面。 可以看到 Qt Creator里自带很多示例。 在 Ubuntu 里,由于…

数学基础 -- 线性代数之行列式不变性推导

行列式不变性的推导 我们要证明:给矩阵的一行(或列)加上另一行(或列)的倍数,这种操作不会改变行列式的值。 问题描述 假设我们有一个矩阵 A A A,其大小为 3 3 3 \times 3 33,如…

【图文并茂】ant design pro 如何给后端发送 json web token - 请求拦截器的使用

上一节有讲过 【图文并茂】ant design pro 如何对接后端个人信息接口 还差一个东西,去获取个人信息的时候,是要发送 token 的,不然会报 403. 就是说在你登录之后才去获得个人信息。这样后端才能知道是谁的信息。 token 就代码了某个人。 …

C++实现Matlab imregionalmax函数——查找区域最大值

C实现imregionalmax函数 1 说明2 示例3 C实现 1 说明 Matlab imregionalmax BW imregionalmax(I) 返回标识灰度图像 I 中区域最大值的二值图像BW。 区域最大值点是具有同一强度值的连通像素分量,其周围的像素强度值比该值低。 BW — 逻辑数组 区域最大值的位置&…

从0开始构建HTML页面(1)

从0开始构建HTML页面 目录 从0开始构建HTML页面的技术文档 一、简介 二、常用标签与属性 三、事件处理与交互性 一、简介 (HyperText Markup Language)是一种用于创建网页的标准标记语言。它允许开发者使用标签来描述网页的结构,并定义网页…

C语言每日好题(3)

有任何不懂的问题可以评论区留言&#xff0c;能力范围内都会一一回答 #define _CRT_SECURE_NO_WARNING #include <stdio.h> #include <string.h> int main(void) {if ((strlen("abc") - strlen("abcdef")) > 0)printf(">\n")…

jmeter简单发送接口

一、安装jmeter 拥有java环境&#xff0c;再下载jmeter 安装之后解压到本地&#xff0c;jmeter中的bin目录配置到环境变量中 之后可以通过cmd中 jmeter.bat命令运行 二、利用jmeter发送接口请求 1、添加线程组 添加->线程->线程组 2、添加http请求 添加->取样器-&g…

uniapp封装请求

封装请求有两种&#xff1a; 一种是在服务端判断token是否失效&#xff0c;一种是在小程序端判断token是否过期&#xff0c;&#xff0c; 第二种在前端判断要简单些&#xff0c;&#xff0c;在拿到token的时候&#xff0c;并在前端设置一个token的过期时间的毫秒值&#xff0c…