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

news2025/1/11 12:53:37

目录

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

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

相关文章

濮阳示范区党工委书记杨行玉一行莅临超维机器人参观考察

8月20日,濮阳示范区党工委书记杨行玉带队赴郑州开展招商活动,并莅临超维机器人参观考察。此次考察旨在加快濮阳示范区产业升级步伐,推动高科技项目引进和落地,为区域经济高质量发展注入新动能。区三级调研员张立春、区招商局负责人…

外挂系统 -减少SAP用户许可数, 多点操作及时同步SAP

用过SAP 的人都知道SAP 是按照用户数来计算项目费用和年维护费的,所以很多公司设置了共同账号,外挂程序,WDA程序等,各种各样的规避方式。 当然SAP 标准的功能也相对简单化,要实现一些自定义的功能来满足各企业实际业务,那需要进行二次开发,有些顾问公司则通过在SAP 中开…

云计算实训33——高并发负载均衡项目(eleme)

一、配置一主两从mysql服务器(mysql5.7) 1.主服务器master 下载mysql5.7的包 [rootMysql ~]# rz -E rz waiting to receive. [rootMysql ~]# ls anaconda-ks.cfg mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz #解压 [rootMysql ~]# tar -zxf mysql-5…

用TensorFlow实现线性回归

说明 本文采用TensorFlow框架进行讲解,虽然之前的文章都采用mxnet,但是我发现tensorflow提供了免费的gpu可供使用,所以果断开始改为tensorflow,若要实现文章代码,可以使用colaboratory进行运行,当然&#…

ZooKeeper入门及核心知识点整理

什么是Zookeeper Zookeeper简称zk,先从字面意思上去理解,那就是动物园管理员。其实zk是大数据领域中的一员,为整个分布式环境提供了协调服务,主要可以用于存储一些配置信息,同时也可以基于zk实现集群。它是一个apache…

RabbitMQ的基础概念介绍

MQ的三大特点:削峰、异步、解耦 1.RabblitMQ概念介绍 1.1概念 RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息…

【docker】使用docker-compose的时候如何更新镜像版本

使用docker-compose的时候如何更新镜像版本。之前总是会忘记怎么操作,每次都得百度搜,干脆记录一下。 说明 我有一个memos是用docker-compose部署的,memos更新的挺频繁的,新版本的功能也不错,更新一下没啥问题。 注…

吴恩达机器学习课后作业-03多分类、神经网络前向传播

这里写目录标题 逻辑回归解决多分类问题(逻辑回归的“一对多”(One-vs-All)策略。)绘制图像结果 神经网络前向传播数字识别 、 逻辑回归解决多分类问题(逻辑回归的“一对多”(One-vs-All)策略。…

[Algorithm][综合训练][孩子们的游戏][大数加法][拼三角]详细讲解

目录 1.孩子们的游戏1.题目链接2.算法原理详解 && 代码实现 2.大数加法1.题目链接2.算法原理详解 && 代码实现 3.拼三角1.题目链接2.算法原理详解 && 代码实现 1.孩子们的游戏 1.题目链接 孩子们的游戏 2.算法原理详解 && 代码实现 问题抽象…

LongWriter——从长文本语言模型中释放出10,000+字的生成能力

概述 当前的长上下文大型语言模型 (LLM) 可以处理多达 100,000 个词的输入,但它们很难生成超过 2,000 个词的输出。受控实验表明,该模型的有效生成长度本质上受到监督微调(SFT) 期间看到的示例的限制。换句话说,这种输出限制源于现有 SFT 数…

三维模型单体化软件:地理信息与遥感领域的精细化革命

在地理信息与遥感科学日新月异的发展浪潮中,单体化软件作为一股强大的驱动力,正引领着我们迈向空间信息处理与应用的新纪元。本文旨在深度解析单体化软件的核心价值、技术前沿、实践应用及面临的挑战,共同探讨这一技术如何塑造行业的未来。 …

【手撕OJ题】——BM8 链表中倒数最后k个结点

目录 🕒 题目⌛ 方法① - 直接遍历⌛ 方法② - 快慢指针 🕒 题目 🔎 BM8 链表中倒数最后k个结点【难度:简单🟢】 输入一个长度为 n 的链表,设链表中的元素的值为 a i a_i ai​ ,返回该链表中倒…

一款MySQL数据库实时增量同步工具,能够监听MySQL二进制日志(Binlog)的变动(附源码)

背景 作为一名CURD的程序员,少不了跟MySQL打交道,在同步数据的时候,MySQL的Binlog显得重中之重,所以处理Binlog的工具尤为重要。 其中阿里巴巴开源的canal 更是耳闻目睹,但是今天小编给大家介绍另外一款MySQL数据库实…

【C++11】常用新语法②(类的新功能 || 可变参数模板 || lambda表达式 || 包装器)

🔥个人主页: Forcible Bug Maker 🔥专栏: C 目录 🌈前言🔥类的新功能新增默认成员函数强制生成默认函数的关键字default禁止生成默认函数的关键字delete 🔥可变参数模板递归函数方式展开参数包…

论文翻译:Benchmarking Large Language Models in Retrieval-Augmented Generation

https://ojs.aaai.org/index.php/AAAI/article/view/29728 检索增强型生成中的大型语言模型基准测试 文章目录 检索增强型生成中的大型语言模型基准测试摘要1 引言2 相关工作3 检索增强型生成基准RAG所需能力数据构建评估指标 4实验设置噪声鲁棒性结果负面拒绝测试平台结果信息…

算法5:位运算

文章目录 小试牛刀进入正题 没写代码的题,其链接点开都是有代码的。开始前请思考下图: 小试牛刀 位1的个数 class Solution { public:int hammingWeight(int n) {int res 0;while (n) {n & n - 1;res;}return res;} };比特位计数 class Solution…

计算机毕业设计选题推荐-猫眼电影数据可视化分析-Python爬虫-k-means算法

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

进程和文件痕迹排查——LINUX

目录 介绍步骤 介绍 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。 在早期面向进程设计的计算机结构中,进程是程序的基本执行实体&…

fastadmin 安装

环境要求,大家可以参考官方文档的,我这里使用的是phpstudy,很多已经集成了。 注意一点,PHP 版本:PHP 7.4 。 第二步:下载 下载地址:https://www.fastadmin.net/download.html 进入下载地址后…

IDEA:Terminal找不到npm

Terminal的命令失效通过修改cmd.exe的方式还是不生效的话,考虑是windwos11 默认idea不是通过管理员启动的,如下图修改就可以了。