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)

大家都在看

  • docker安装redis

    安装镜像 docker pull redis:7.0 下载配置文件 wget http://download.redis.io/redis-stable/redis.conf 修改…

    Linux 2023年6月7日
    0125
  • Linux 网络分析必备技能:tcpdump 实战详解

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    084
  • linux系统(centos)下kvm虚拟化用命令行给虚拟机添加硬盘

    linux系统(centos)下kvm虚拟化用命令行给虚拟机添加硬盘 背景 公司有用单台服务器使用kvm装虚拟机,利用webvirtmgr进行界面管理。当虚拟机创建时固定硬盘后,不…

    Linux 2023年6月8日
    0105
  • 统计每个月兔子的总数—牛客网

    统计每个月兔子的总数_牛客题霸_牛客网 (nowcoder.com) #include using namespace std; int main() { //1 1 2 3 5 …

    Linux 2023年6月13日
    096
  • 打造一个红旗(redflag)Linux的基础镜像(base image)

    由于工作原因,想找一个红旗Linux的基础镜像(base image)。网上搜了一下,但没有现成的。起初是想找对应的centos版本来代替,但又怕有些莫名其妙的问题。 官方文档 不…

    Linux 2023年6月8日
    080
  • 关于HandlerInterceptorAdapter和WebMvcConfigurerAdapter过时

    修改成这样 @Configuration public class HeaderTokenInterceptor implements WebMvcConfigurer { @Au…

    Linux 2023年6月8日
    099
  • vi和vim文本编辑器

    vi和vim文本编辑器 vi和vim模式的相互切换 快捷键使用案例 拷贝当前行yy; 拷贝当前行向下的5行 5yy; 并粘贴(p) 删除当前行dd; 删除当前行向下的5行 5dd …

    Linux 2023年6月11日
    0100
  • 【深度学习】ml_collections报错

    在一些源码中,看见了一个导入: import ml_collections 此时会报错,这个包并不是PyTorch的包,同时也非源码中模块 解决办法: pip install ml…

    Linux 2023年6月13日
    082
  • Go channel使用注意事项

    说道这里,还是总结下channel的几个特性吧: 给一个 空 channel发送数据,会造成永远阻塞 从一个 空 channel接收数据,会造成永远阻塞 给一个已经关闭的chann…

    Linux 2023年6月6日
    0101
  • [20220104]in list 几种写法性能测试.txt

    [20220104]in list 几种写法性能测试.txt –//以前写过几种in list的写法,从来没有测试过这几种方法的性能测试看看. 1.环境:SCOTT@b…

    Linux 2023年6月13日
    058
  • AOP实现系统告警

    工作群里的消息怕过于安静,又怕过于频繁 一、业务背景 在开发的过程中会遇到各种各样的开发问题,服务器宕机、网络抖动、代码本身的bug等等。针对代码的bug,我们可以提前预支,通过发…

    Linux 2023年6月13日
    096
  • Linux系统中断处理框架(3)【转】

    //init/main.casmlinkage void __init start_kernel(void){…… trap_init(); //空函数…… ear…

    Linux 2023年6月8日
    0105
  • Mysql客户端的安装

    Mysql数据库(简称)属于C/S架构,正常工作中一般都会提供服务端,我们只需要安装客户端进行查询修改数据等操作即可。 正常工作中不管是测试人员或者开发人员,一般数据库的管理员(测…

    Linux 2023年6月14日
    083
  • redis安装使用

    Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 它通常被称为数据结构服务…

    Linux 2023年5月28日
    096
  • 【电子取证:抓包篇】Fiddler 抓包配置与数据分析(简)

    Fiddler 抓包配置与分析(简) 简单介绍了Fiddler抓包常用到的基础知识,看完可以大概明白怎么分析抓包数据 —【suy999】 Fiddler 抓包工具,可以…

    Linux 2023年6月13日
    0102
  • linux root用户编辑文件提示没有权限

    linux root用户编辑文件提示没有权限 感觉很奇怪,因为是root用户。于是查看了一下文件的权限,结果如下: [root@localhost elasticsearch-5….

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