当前位置: 首页 > 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 文件。

整理完毕,完结撒花~🌻

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • ResNet网络学习
  • 幂等性是什么意思?
  • 基于Shader实现的UGUI描边解决方案遇到的bug
  • UE基础 —— 打包项目
  • leetcode47. 全排列 II有重复元素的全排列,深度优先搜索
  • 【022】字符串的处理(输出,分割,删除,新增,替换,查找,长度)_#VBA
  • c++11异常
  • Linux驱动入门实验班——DHT11、DS18B20模块驱动(附百问网视频链接)
  • 如何在 Android 智能手机上恢复已删除的图片
  • C++前向声明简介
  • 【Dash】Dash中@callback() 回调函数的Output() 参数
  • 【OpenCV】SIFT(尺度不变特征变换)算法?
  • [000-01-022].第03节:RabbitMQ环境搭建
  • RPC 运行时,第二次:发现新的漏洞
  • 从“云、边、端”的统一管理,为传统工厂数字化转型赋能的智慧地产开源了
  • [deviceone开发]-do_Webview的基本示例
  • 4. 路由到控制器 - Laravel从零开始教程
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • Gradle 5.0 正式版发布
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • Java 内存分配及垃圾回收机制初探
  • Java|序列化异常StreamCorruptedException的解决方法
  • javascript 哈希表
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • pdf文件如何在线转换为jpg图片
  • SpiderData 2019年2月16日 DApp数据排行榜
  • use Google search engine
  • 经典排序算法及其 Java 实现
  • 使用SAX解析XML
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 自制字幕遮挡器
  • const的用法,特别是用在函数前面与后面的区别
  • python最赚钱的4个方向,你最心动的是哪个?
  • ​Spring Boot 分片上传文件
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • (2)STM32单片机上位机
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (poj1.2.1)1970(筛选法模拟)
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (四)软件性能测试
  • (学习日记)2024.01.09
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (已解决)什么是vue导航守卫
  • (转)Oracle 9i 数据库设计指引全集(1)
  • ******之网络***——物理***
  • .JPG图片,各种压缩率下的文件尺寸
  • .Net面试题4
  • ??Nginx实现会话保持_Nginx会话保持与Redis的结合_Nginx实现四层负载均衡
  • @Not - Empty-Null-Blank
  • @RequestBody与@ModelAttribute
  • [ASP]青辰网络考试管理系统NES X3.5
  • [C++数据结构](22)哈希表与unordered_set,unordered_map实现