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)

大家都在看

  • macbook air 2019 安装win10单系统

    目前不考虑写的太详细了,如果有同学遇到问题了我再完善,主要是把遇到的坑讲下第一步,准备2个U盘(如果不嫌麻烦一个也可以)1.用大白菜或者老毛桃将其中一个做成启动盘2.在window…

    Linux 2023年6月14日
    0125
  • .htaccess文件解析漏洞

    前言 htaccess文件(或者”分布式配置文件”),全称是Hypertext Access(超文本入口)。提供了针对目录改变配置的方法, 即,在一个特定的…

    Linux 2023年6月13日
    076
  • requests模块

    掌握 headers参数的使用 掌握 发送带参数的请求 掌握 headers中携带cookie 掌握 cookies参数的使用 掌握 cookieJar的转换方法 掌握 超时参数t…

    Linux 2023年6月8日
    0110
  • Typora+gitee+picgo搭建本地博客环境

    前言 现在现成的博客平台数不胜数,如果选择服务器+自建博客也有很多方案,可是本人对相片、博客等信息数据总是有本地和互联网各存储一遍才放心的习惯,所以作者本人选择了csdn、博客园、…

    Linux 2023年6月7日
    0119
  • 面试题汇总

    JAVA 基础 1.java 性能优化 ①尽量指定类、方法的final 修饰符 ②尽量重用对象 ③尽可能使用局部变量 ④及时关闭流 ⑤尽量减少对变量的重复计算 ⑥尽量采用懒加载的策…

    Linux 2023年6月7日
    090
  • linux内核源代码组织结构

    linux版本 linux 3.6.24 第一个数字主版本号 第二个数字是偶数代表是稳定版 第三个代表修订次数 Original: https://www.cnblogs.com/…

    Linux 2023年6月7日
    0102
  • pyQt的基本使用

    1. 基本窗口 import sys from PyQt5.QtWidgets import QApplication, QWidget if __name__ == ‘__mai…

    Linux 2023年6月7日
    0107
  • centos8 redis安装

    redis的优势我就不多说了(其实我也就是跟着主流) 既然想试试redis,那么就从linux下安装redis开始。那么windows下可以安装redis吗? 答案是肯定的,但是官…

    Linux 2023年5月28日
    0120
  • 数据库常用函数

    一、数学函数ABS(x) 返回x的绝对值BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制)CEILING(x) 返回大于x的最小整数值EXP(x) 返回值e(自然…

    Linux 2023年6月13日
    0103
  • nginx配置文件讲解及示例(可复制)

    【示例一】 运行用户 user www-data; 启动进程,通常设置成和cpu的数量相等 worker_processes 1; 全局错误日志及PID文件 error_log /…

    Linux 2023年6月6日
    080
  • Popovers

    弹出式窗口弹出式窗口是一个短暂的视图,当你点击一个控件或一个区域时,它就会出现在屏幕上的其他内容之上。通常情况下,弹出窗口包括一个箭头,指向它出现的位置。弹出式窗口可以是非模态或模…

    Linux 2023年6月7日
    094
  • 算法小技巧 — 链表

    一、快慢指针 1、核心思想 【核心思想:】 采用双指针完成,一个指针永远比另一个指针稍快一点。 【常见案例:】 找到单链表的中间节点    环形链表 【单链表结构:】 class …

    Linux 2023年6月14日
    078
  • 上班摸鱼与网络安全

    上班不摸鱼,那这班上的没有灵魂啊。但是不久前爆出的国美网络监控事件,也提示我们网络有风险,摸鱼需谨慎。 https://baijiahao.baidu.com/s?id=17167…

    Linux 2023年6月13日
    0105
  • 我为 Netty 贡献源码 | 且看 Netty 如何应对 TCP 连接的正常关闭,异常关闭,半关闭场景

    欢迎关注公众号:bin的技术小屋,本文图片加载不出来的话可查看公众号原文 本系列Netty源码解析文章基于 4.1.56.Final版本 写在前面….. 本文是笔者肉眼…

    Linux 2023年6月6日
    0108
  • Android recovery支持adb shell

    Android recovery支持adb shell 近期开发过程注意到recovery不支持adb shell。为了便于调试方便,决定添加此功能。 刚開始我们採用的是user版…

    Linux 2023年5月28日
    0100
  • Linux 配置Java环境变量

    前言:请各大网友尊重本人原创知识分享,谨记本人博客: 南国以南i 注:目前,您需要在官网下载时登录。在此共享帐户以方便下载。 [En] Note: at present, you …

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