主流数字证书都有哪些格式?

一般来说,主流的Web服务软件,通常都基于两种基础密码库:OpenSSL和Java。

Tomcat、Weblogic、JBoss等,使用Java提供的密码库。通过Java的Keytool工具,生成Java Keystore(JKS)格式的证书文件。

Apache、Nginx等,使用OpenSSL提供的密码库,生成PEM、KEY、CRT等格式的证书文件。

此外,IBM的产品,如Websphere、IBM Http Server(IHS)等,使用IBM产品自带的iKeyman工具,生成KDB格式的证书文件。微软Windows Server中的Internet Information Services(IIS),使用Windows自带的证书库生成PFX格式的证书文件。

如果您在工作中遇到带有后缀扩展名的证书文件,可以简单用如下方法区分:

*.DER *.CER : 这样的证书文件是二进制格式,只含有证书信息,不包含私钥。

*.CRT : 这样的文件可以是二进制格式,也可以是文本格式,一般均为文本格式,功能与*.DER/*.CER相同。

*.PEM : 一般是文本格式,可以放证书或私钥,或者两者都包含。 *.PEM如果只包含私钥,那一般用 *.KEY代替。

*.PFX *.P12 是二进制格式,同时含证书和私钥,一般有密码保护。

怎么判断是文本格式还是二进制?

用记事本打开,如果是规则的数字字母,如
—–BEGIN CERTIFICATE—–
MIIE5zCCA8+gAwIBAgIQN+whYc2BgzAogau0dc3PtzANBgkqh......
—–END CERTIFICATE—–
就是文本的,上面的BEGIN CERTIFICATE,说明这是一个证书
如果是—–BEGIN RSA PRIVATE KEY—–,说明这是一个私钥

这些证书格式之间是可以互相转换的

以下提供了一些证书之间的转换方法:

1. 将JKS转换成PFX

可以使用Keytool工具,将JKS格式转换为PFX格式。

keytool -importkeystore -srckeystore D:\server.jks -destkeystore D:\server.pfx -srcstoretype JKS -deststoretype PKCS12

2. 将PFX转换为JKS

可以使用Keytool工具,将PFX格式转换为JKS格式。

keytool -importkeystore -srckeystore D:\server.pfx -destkeystore D:\server.jks -srcstoretype PKCS12 -deststoretype JKS

3. 将PEM/KEY/CRT转换为PFX

使用OpenSSL工具,可以将密钥文件KEY和公钥文件CRT转化为PFX文件。

将密钥文件KEY和公钥文件CRT放到OpenSSL目录下,打开OpenSSL执行以下命令:

openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt

4. 将PFX转换为PEM/KEY/CRT

使用OpenSSL工具,可以将PFX文件转化为密钥文件KEY和公钥文件CRT。

将PFX文件放到OpenSSL目录下,打开OpenSSL执行以下命令:

openssl pkcs12 -in server.pfx -nodes -out server.pem

openssl rsa -in server.pem -out server.key

** 请注意 ** 此步骤是专用于使用keytool生成私钥和CSR申请证书,并且获取到pem格式证书公钥的情况下做分离私钥使用的,所以在实际部署证书时请使用此步骤分离出来的私钥和申请下来的公钥证书做匹配使用。

云盾证书服务统一使用 PEM 格式的数字证书文件。

https SSL主流数字证书都有哪些格式?的更多相关文章

  1. https SSL主流数字证书都有哪些格式(转载)

    主流数字证书都有哪些格式? 一般来说,主流的Web服务软件,通常都基于两种基础密码库:OpenSSL和Java. Tomcat.Weblogic.JBoss等,使用Java提供的密码库.通过Java的 ...

  2. 【传输协议】https SSL主流数字证书都有哪些格式?

    一般来说,主流的Web服务软件,通常都基于两种基础密码库:OpenSSL和Java. Tomcat.Weblogic.JBoss等,使用Java提供的密码库.通过Java的Keytool工具,生成Ja ...

  3. HTTPS、SSL与数字证书介绍

    在互联网安全通信方式上,目前用的最多的就是https配合ssl和数字证书来保证传输和认证安全了.本文追本溯源围绕这个模式谈一谈. 名词解释 HTTPS:在HTTP(超文本传输协议)基础上提出的一种安全 ...

  4. C#检测并安装https站点的数字证书,CefSharp和HttpWebRequest通过会话Cookie实现自动登录访问https站点

    HttpUtil工具类: using System; using System.Collections.Generic; using System.IO; using System.Linq; usi ...

  5. 免费https/ssl通配证书(letsencrypt)安装

    教程:免费https/ssl通配证书(letsencrypt)安装 前置条件 开发443端口 关闭nginx .获取脚本 wget https://dl.eff.org/certbot-auto .执 ...

  6. 公钥与私钥对HTTPS的理解(数字证书的需要)

    本文转自某大牛链接 文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用.接着对数字证书做一个详细的解释,并讨论一下window ...

  7. 如何用谷歌浏览器导出一个https网站的数字证书

    HTTPS加密是互联网安全建设的基础,百度.淘宝.天猫等越来越多互联网巨头启用全站HTTPS,也带动了更多网站加入HTTPS加密的行列.普通用户也逐渐明白HTTPS比HTTP更安全,访问网银.购物等重 ...

  8. [转]浅谈https\ssl\数字证书

    浅谈https\ssl\数字证书 http://www.cnblogs.com/P_Chou/archive/2010/12/27/https-ssl-certification.html 全球可信的 ...

  9. 浅谈https\ssl\数字证书

    全球可信的SSL数字证书申请:http://www.shuzizhengshu.com 在互联网安全通信方式上,目前用的最多的就是https配合ssl和数字证书来保证传输和认证安全了.本文追本溯源围绕 ...

随机推荐

  1. C++ STL中vector(向量容器)使用简单介绍

    原文:http://www.seacha.com/article.php/knowledge/cbase/2013/0903/2205.html C++ vector(向量容器)是一个线性顺序结构.相 ...

  2. 面向对象、类与对象、成员与局部变量、封装、private、构造函数、this、static、extends、super、final、abstract、interface、多态、内部类、异常【5】

    若有不正之处,请多多谅解并欢迎批评指正,不甚感激. 请尊重作者劳动成果: 本文原创作者:pipi-changing本文原创出处:http://www.cnblogs.com/pipi-changing ...

  3. [SmartFoxServer概述]SFS2X特点

    SFS2X 特点概述 SFS2X采用SFS核心原理并在新的方向进行扩展,介绍了许多改善方案,同时专注于几个方面:使用简单化,通用化和性能化. *使用简单化:清除了SFS之前版本中所有不必要的复杂方法, ...

  4. Razor标记语言介绍

    什么是Razor?   Razor的中文意思是"剃刀",它不是编程语言,只是一种服务器段的标记语言,与PHP和ASP类似   Razor允许你向网页中嵌入基于服务器的代码(Visu ...

  5. 【原创】-- nfs安装配置及使用,挂载根文件系统

    环境:ubuntu14.04(非虚拟机),OK6410 环境搭建: (1) #sudo apt-get install nfs-kernel-server 如果已经是最新版本了,无需安装 (2) 建立 ...

  6. halcon学习笔记——(11)Image,region,xld初步

    一 读取的3种方式: 读取单张的图片: read_image( image,'filename') //image 是输出对象,后面是输入文件的路径和名称 读取多图: 1,申明一个数组,分别保存路径 ...

  7. .NET Socket TCP 50W在线连接交互测试

    在平常的交流中经常有人问.net socket能支持多少在线?和C++或linux下比起来应该差很远吧?其实产生这样问题的主要原因是.net很少人去做这方面的测试,而在linux下则经常听到什么100 ...

  8. clean code meaningful names

    ---恢复内容开始--- Meaningful Names: use Intention-Revealing Names //nice,Everyone who reads your code (in ...

  9. SQLServer DBA 三十问(加强版)

    距离最初发布SQLServer DBA 三十问 已有一年多了,大家对其中的某些问题讨论比较激烈,要回答出来这些问题需要比较扎实的SQLServer 基础和一定的实际操作经验,如果你试着去回答其中的问题 ...

  10. C#与数据库访问技术总结(十六)之 DataSet对象

    DataSet对象 DataSet对象可以用来存储从数据库查询到的数据结果,由于它在获得数据或更新数据后立即与数据库断开,所以程序员能用此高效地访问和操作数据库. 并且,由于DataSet对象具有离线 ...