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

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

目录

    • 一、背景
    • 二、文件格式的区分
      • 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.mrgr.cn/news/5079.html

相关文章:

  • Flutter-自适用高度PageView
  • TTS 文本 vs SSML
  • CR-NeRF 代码eval.py解析
  • 弹射无人机和筒射无人机技术区别详解
  • 后端给前端传递数据形式:广播 单播以及组播
  • EDKII之安全启动详细介绍
  • uniapp中switch和select组件阻止chane事件冒泡的方法
  • 科研绘图系列:Python语言时间趋势图
  • vue使用v-html保留原内容的缩进和换行
  • 预约咨询小程序搭建开发,uniapp前端,PHP语言开发
  • rabbitMQ安装与简单demo
  • EmguCV学习笔记 VB.Net 第6章 形状操作
  • Scratch编程环境:探索暗模式与可访问性选项的创新之路
  • html a标签打电话,发短信等。
  • vue 中 dist文件夹静态是什么意思(distribution)
  • STM中的I2C
  • 物联网设备字符串转串口指令-SAAS本地化及未来之窗行业应用跨平台架构
  • 【数据结构】堆排序
  • 如何优化企业网站的索引情况?
  • 常用API:object