CA证书介绍与格式转换

PKCS 公钥加密标准(Public Key Cryptography Standards, PKCS),此一标准的设计与发布皆由RSA资讯安全公司(英语:RSA Security)所制定,PKCS 目前共发布过 15 个标准。更多公钥加密标准

X.509 是密码学里公钥证书的格式标准。

X.509是常见通用的证书格式。是ITU-T标准化部门基于他们之前的ASN.1定义的一套证书标准。

X.509附带了证书吊销列表和用于从最终对证书进行签名的证书签发机构直到最终可信点为止的证书合法性验证算法。

X.509证书已应用在包括TLS/SSL在内的众多网络协议里,同时它也用在很多非在线应用场景里。

Tips: 区别证书的不是后缀名,而是证书文件的格式与内容。

Tips:

  • 密钥指的是私钥或者公钥 —> 密钥 = 私钥/公钥;
  • 密钥对指的是公钥加上私钥 —> 密钥对 = 私钥+公钥;
  • 非对称加密:
  • 公钥和私钥是成对的,公钥和私钥唯一对应,它们互相解密。
  • 公钥一般用来加密和验证签名,私钥用来签名和解密。
  • 加密(加解密): 公钥加密,私钥解密;加密的目的是保证信息的保密传输,使只有具备资格的一方才能解密。
  • 认证(加验签): 私钥数字签名,公钥验证签名;加签的目的是让收到消息的一方确认该消息是由特定方发送的。
  • 在实际的应用中,通常将两者结合在一起使用,例如,对称密钥加密系统用于存储大量数据信息,而公开密钥加密系统则用于加密密钥。

Apache和其他类似服务器使用PEM格式证书。几个PEM证书,甚至私钥,可以包含在一个文件中,一个在另一个文件之下,但是大多数平台(例如Apache)希望证书和私钥位于单独的文件中。

JKS和PKCS12之间的最大区别是JKS是Java专用的格式,而PKCS12是存储加密的私钥和证书的标准化且与语言无关的方式。

格式转换

OpenSSL是一个非常有用的开源命令行工具包,可用于 X.509 证书,证书签名请求(CSRs)和加密密钥。

  • 查看 PEM证书

    openssl x509 -text -noout -in CERTIFICATE.pem

  • 查看 DER证书

    openssl x509 -inder der -text -noout -in CERTIFICATE.der

  • 查看 CSR证书

    openssl req -text -noout -in mysite.csr

  • 查看 P7B证书

    openssl pkcs7 -inform der -in CERTIFICATE.p7b -print_certs -text

  • 查看 JKS证书

    keytool -list -rfc -keystore server.jks -storepass XXXXXX

  • PEM to DER

    openssl x509 -outform der -in CERTIFICATE.pem -out CERTIFICATE.der

  • PEM to P7B

    openssl crl2pkcs7 -nocrl -certfile CERTIFICATE.cer -certfile CACert.cer -out CERTIFICATE.p7b

  • PEM to PFX

    openssl pkcs12 -export -out CERTIFICATE.pfx -inkey PRIVATEKEY.key -in CERTIFICATE.cer [-certfile CACert.cer]

openssl pkcs12 -export -out server.p12 -inkey server.key -in server.pem

  • DER to PEM

    openssl x509 -inform der -in CERTIFICATE.cer -out CERTIFICATE.pem

  • P7B to PEM

    openssl pkcs7 -print_certs -in CERTIFICATE.p7b -out CERTIFICATE.cer

  • P7B to PFX

    openssl pkcs7 -print_certs -in CERTIFICATE.p7b -out CERTIFICATE.cer

  • PFX to PEM

    openssl pkcs12 -in CERTIFICATE.pfx -out CERTIFICATE.cer -nodes konwersja poprze OpenSSL

openssl pkcs12 -nocerts -nodes -in cert.p12 -out private.pem

openssl pkcs12 -clcerts -nokeys -in cert.p12 -out cert.pem

(PFX to PEM后CERTIFICATE.cer文件包含认证证书和私钥,需要把它们分开存储才能使用。)

  • JKS to P12

    keytool -importkeystore -srcstoretype JKS -deststoretype PKCS12 -srckeystore server.jks -destkeystore server.p12

  • P12 to JKS

    keytool -importkeystore -srcstoretype PKCS12 -deststoretype JKS -srckeystore server.p12 -destkeystore server.jks

 -inform PEM|DER    输入格式 - DER或PEM(x509默认为PEM)
 -in infile         输入文件(x509默认为stdin)
 -outform PEM|DER   输出格式 - DER或PEM(x509默认为PEM)
 -out outfile       输出文件(x509默认为stdout)
 -keyform PEM|DER|ENGINE 私钥格式 - 默认PEM
 -passin val        私钥密码/口令来源
 -modulus           打印RSA密钥模数
 -pubkey            输出公钥
 -fingerprint       打印证书的指纹
 -alias             输出证书别名
 -noout             没有输出,只有状态
 -nocert            无证书输出
 -trustout          输出一个受信任的证书
 -setalias val      设置证书别名
 -days int          签署的证书到期前的时间 - 默认 30 天
 -signkey val       用参数自行签署证书
 -x509toreq         输出一个认证请求对象
 -req               输入是一个证书请求,签署并输出
 -CA infile         设置CA证书,必须是PEM格式
 -CAkey val         设置 CA 密钥,必须是 PEM 格式;如果不在 CAfile 中
 -text              打印文本形式的证书
 -ext val           打印各种X509V3扩展文件
 -extfile infile    要添加X509V3扩展的文件
 -writerand outfile 将随机数据写到指定文件中
 -extensions val    要使用的配置文件中的部分
 -nameopt val       各种证书名称选项
 -certopt val       各种证书文本选项
 -checkhost val     检查证书是否与主机匹配
 -checkemail val    检查证书是否与电子邮件匹配
 -checkip val       检查证书是否与ipaddr匹配
 -CAform PEM|DER    CA格式--默认PEM
 -CAkeyform PEM|DER|ENGINE      CA密钥格式--默认为PEM

 -export        输出PKCS12文件
 -nodes         不要加密私钥
 -nokeys        不输出私钥
 -keysig        设置 MS 密钥签名类型
 -nocerts       不输出证书
 -clcerts       只输出客户证书
 -cacerts       只输出CA证书
 -info          打印有关PKCS#12结构的信息
 -chain         添加证书链
 -certpbe val   证书PBE算法(默认为RC2-40)
 -inkey val     如果不是infile,则为私钥
 -certfile infile   从文件中加载证书
 -CApath dir    PEM格式的CA的目录
 -CAfile infile     PEM格式的CA的文件
 -no-CAfile     不加载默认的证书文件
 -no-CApath     不从默认的证书目录中加载证书

Via

Original: https://www.cnblogs.com/librarookie/p/16330406.html
Author: Librarookie
Title: CA证书介绍与格式转换

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/578028/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 设计模式——-模板方法模式

    模板方法模式定义:定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 抽象类的父类,父类中定义了基本方法,模板方…

    Linux 2023年6月7日
    082
  • Pytorch 中 tensor的维度拼接

    torch.stack() 和 torch.cat() 都可以按照指定的维度进行拼接,但是两者也有区别,torch.satck() 是 增加新的维度进行堆叠,即其维度拼接后会增加一…

    Linux 2023年6月7日
    096
  • CRC校验

    ​ 一:CRC概念 1.1、参考博客 参考的教程如下: 手算CRC及其实现 CRC校验算法原理分析 一文讲透CRC校验码-附赠C语言实例 CRC校验(手算与直观演示) CRC(循环…

    Linux 2023年6月13日
    078
  • VSCODE 配置远程调试环境

    以下内容为本人的著作,如需要转载,请声明原文链接微信公众号「englyf」 https://mp.weixin.qq.com/s/f1KZOlL92ojes-r2l9rlCw 我的…

    Linux 2023年6月6日
    0133
  • Linux 下 xargs 命令

    xargs 常常被大家忽略的一个命令,对它的一些用法很多人可能不熟悉,其实它是一个功能强大的命令,特别是在结合管道进行批量处理方面 语法 xargs 语法格式如下 xargs [O…

    Linux 2023年6月13日
    0101
  • 表中添加唯一字段报错解决方案

    添加唯一字段的迁移 应用向具有现有行的表添加唯一不可为空字段的”普通”迁移将引发错误,因为用于填充现有行的值仅生成一次,从而破坏了唯一约束。 因此,应采取以…

    Linux 2023年6月14日
    079
  • 云主机实现校园网使用网络

    下载SoftEther 虚拟专用网络 Server 管理工具和 Open虚拟专用网络 GUI工具 配置云主机 tar -zxvf softether-vpnserver-v4.28…

    Linux 2023年6月8日
    078
  • K8S部署之VMWare网络拓扑踩坑

    知乎上最近发现一篇好文 图解K8S(01):基于Ubuntu 20.04部署1.23版K8S集群,想着之前 K8S 部署一直不成功,那么就照着这篇文章中说的试一试。结果在实验时遇到…

    Linux 2023年5月27日
    079
  • CentOS 6 安装并配置 MySQL 5.6

    1. 添加 MySQL Yum 存储库 将MySQL Yum存储库添加到系统的存储库列表中; 1.1 到MySQL官网下载MySQL Yum存储库(https://dev.mysq…

    Linux 2023年5月27日
    0106
  • OpenSSL测试-随机数

    任务详情 在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务 使用OpenSSL定义一个私有函数 static int getRandom(char…

    Linux 2023年6月8日
    088
  • alloc_pages的实现浅析

    alloc_pages的使用 struct page *alloc_pages(gft_t gfp, unsigned int order) alloc_pages定义于 inux…

    Linux 2023年6月7日
    095
  • 前端之HTML

    一、HTML介绍 1.1 web服务本质 import socket sk = socket.socket() sk.bind(("127.0.0.1", 80…

    Linux 2023年6月14日
    073
  • 工程课Linux第一节笔记

    上课笔记 文件系统结构 /根目录 /bin/ 存放系统命令,普通用户与root都可以执行 /etc/ 配置文件保存位置 /lib/ 系统调用的函数库保存位置 /var/ 目录用于存…

    Linux 2023年6月6日
    069
  • 介绍一种使用poweshell 监控的方式

    本篇将使用PowerShell脚本对SQL Server 的关键指标进行监控. 以下,用数据库空间容量为例,实现一下逻辑: 一、建表 为每台服务器创建一个表,用于记录服务器各个数据…

    Linux 2023年5月28日
    084
  • js中div显示和隐藏钮为什么页面总是跳一下到最上面

    中心动态 产权动态 财经聚焦 点击onclick事件 是因为的href属性,使用了#的缘故,你点击a的时候回到页面的开始,然后才在做click函数,你可以不使用href属性。但是这…

    Linux 2023年6月13日
    092
  • Linux目录操作(pwd、cd、ls、alias、du、mkdir、touch)

    pwd(打印当前目录) cd(### 切换目录) 命令 效果 cd 或 cd ~ 若不指定目标位置,切换到当前用户的宿主目录(家目录) cd – 到前一次目录 一个点号…

    Linux 2023年6月6日
    075
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球