证书格式有哪些,区别以及如何生成证书

简介: 证书格式有哪些,区别以及如何生成证书

本文为博主原创,未经允许不得转载:

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

  • Tomcat、Weblogic、JBoss等Web服务软件,一般使用Java提供的密码库。通过Java Development Kit (JDK)工具包中的Keytool工具,生成Java Keystore(JKS)格式的证书文件。
  • Apache、Nginx等Web服务软件,一般使用OpenSSL工具提供的密码库,生成PEM、KEY、CRT等格式的证书文件。

 

证书格式:

  • .DER或.CER文件: 这样的证书文件是二进制格式,只含有证书信息,不包含私钥。
  • *.CRT文件: 这样的证书文件可以是二进制格式,也可以是文本格式,一般均为文本格式,功能与 .DER及.CER证书文件相同。
  • *.PEM文件: 这样的证书文件一般是文本格式,可以存放证书或私钥,或者两者都包含。 .PEM 文件如果只包含私钥,一般用.KEY文件代替。
  • .PFX或.P12文件: 这样的证书文件是二进制格式,同时包含证书和私钥,且一般有密码保护。

 

使用openSSL生成证书及证书导入到jks,生成p12证书导入到 jks操作步骤如下:

  1. 使用 OpenSSL 生成私钥与签名证书文件,并根据提示输入对应的证书属性包括国家,区域,域名等;
  2. 生成 cer 的证书文件:根据 第一步生成的私钥与签名文件生成一个cer文件 ;
  3. 将上一步生成的 server.crt 导入到指定的 jks 文件中 ;
  4. 查看导入 jks 的证书 ;
  5. 将 1 和2 生成的文件导入到 p12文件中;
  6. 将生成的P12文件导入到jks中;
  7. 重新查看jks中的证书配置;

 

  1.使用以下命令生成私钥与签名证书文件,并根据提示输入对应的证书属性包括国家,区域,域名等:

openssl req -new -newkey rsa:2048 -nodes -keyout www.test.com.key -out www.test.com.csr

  其中 rsa:2048 为生成的证书的长度,www.test.com.key 为申请生成的私钥文件,www.test.com.csr 为申请生成的证书签名请求文件。

  CSR是Certificate Signing Request的英文缩写,即证书签名请求文件,是证书申请者在申请数字证书时由CSP(加密服务提供者)在生成私钥的同时也生成证书请求文件,

证书申请者只要把CSR文件提交给证书颁发机构后,证书颁发机构使用其根证书私钥签名就生成了证书公钥文件,也就是颁发给用户的证书。

  CSR是以-----BEGIN CERTIFICATE REQUEST-----开头,-----END CERTIFICATE REQUEST-----为结尾的base64格式的编码。将其保存为文本文件,就是所谓的CSR文件。

有CSR必定有KEY,是成对的,CSR最终变成为证书,和私钥key配对使用。 Key是以-----BEGIN RSA PRIVATE KEY-----开头的,-----END RSA PRIVATE KEY-----结尾的。

Key必须保存好。证书下发后,CSR无需使用,仅提交时候需要。

  2.生成 cer 的证书文件:根据 第一步生成的私钥与签名文件生成一个cer文件

openssl x509 -req -days 365 -in www.test.com.csr -signkey www.test.com.key -out www.test.com.crt

  x509的含义: 指定格式

  -days 365 : 证书的有效期为 365 天

  -signkey的含义: 自签名

 

  3. 将上一步生成的 server.crt 导入到指定的 jks 文件中

keytool -import -trustcacerts -alias testServer -file server.crt -keystore testServer.jks

 -trustcacerts -alias testServer : 信任证书并定义别名

 

  4. 查看导入 jks 的证书

keytool -v -list -keystore  testServer.jks

  查看 jks 中的证书信息

  

  5.将 1 和2 生成的文件导入到 p12文件中:

openssl pkcs12 -export -in server.crt -inkey www.test.com.key -out mycert.p12 -name abc -CAfile myCA.crt

  生成过程输入的密码就是keypass

   name就是别名

  

 

 

  6. 将生成的P12文件导入到jks中:

keytool -importkeystore -v -srckeystore mycert.p12 -srcstoretype pkcs12 -srcstorepass a123456 -destkeystore Aserver.keystore -deststoretype jks -deststorepass b123456

  deststorepass就是新生成的storepass

  

 

  

  7. 重新查看jks中的证书配置:

keytool -v -list -keystore Aserver.keystore

  执行如图:

 

标签: 网络与传输协议

目录
相关文章
|
算法 网络安全 数据安全/隐私保护
证书转换-SSL证书生成:cer,jks文件 韩俊强的博客
一.生成.jks文件 资料:HTTPS-老司机手把手教你SSL证书申购-TrustAsia证书 HTTPS时代已来,手把手指导申请免费SSL证书 1、keystore的生成: 分阶段生成: keytool -genkey -alias yushan(...
8557 0
|
存储 算法 安全
PKCS#1、PKCS#5、PKCS#7、PKCS#8到底是什么?
PKCS#1、PKCS#5、PKCS#7、PKCS#8到底是什么?
2748 0
echarts 柱状图/折线图x轴坐标间隔
echarts 柱状图/折线图x轴坐标间隔
1679 0
|
10月前
2025年阿里云域名备案流程(图文详细教程)
本文详细介绍了2025年阿里云域名备案的全流程,包括注册阿里云账号、企业实名认证、购买服务器、创建域名信息模板、购买域名、域名备案及查询备案号等步骤。通过图文结合的方式,清晰展示了每个环节的操作方法和注意事项,帮助用户顺利完成域名备案。文章强调了域名备案的前提是国内需有一台服务器,并提供了具体配置建议,同时提醒用户注意邮箱验证和短信核验等关键步骤,确保备案顺利通过。
11794 15
|
网络协议 API 数据库
InfluxDB集群
InfluxDB集群
943 0
|
8月前
|
SQL JSON 前端开发
较为完整的SpringBoot项目结构
本文介绍了SpringBoot项目的分层结构与目录组成。项目分为四层:**controller层**(前端交互)、**service层**(业务逻辑处理)、**dao层**(数据库操作)和**model层**(实体类定义)。分层设计旨在实现关注点分离,降低耦合度,提高系统灵活性、可维护性和扩展性。此外,还详细说明了项目目录结构,包括`controller`、`service`、`dao`、`entity`、`param`、`util`等子目录的功能划分,便于团队协作开发。此架构有助于前后端分离,明确各模块职责,符合高内聚低耦合的设计原则。
5478 1
|
SQL XML Java
8、Mybatis-Plus 分页插件、自定义分页
这篇文章介绍了Mybatis-Plus的分页功能,包括如何配置分页插件、使用Mybatis-Plus提供的Page对象进行分页查询,以及如何在XML中自定义分页SQL。文章通过具体的代码示例和测试结果,展示了分页插件的使用和自定义分页的方法。
8、Mybatis-Plus 分页插件、自定义分页
|
算法 安全 网络安全
概念区分:对称加密、非对称加密、公钥、私钥、签名、证书
概念区分:对称加密、非对称加密、公钥、私钥、签名、证书
2909 0
|
JavaScript
成功解决node、node-sass和sass-loader版本冲突问题、不需要降低node版本。如何在vue项目中安装node-sass,以及安装node-sass可能遇到的版本冲突问题
这篇文章介绍了在Vue项目中安装node-sass和sass-loader时遇到的版本冲突问题,并提供了解决这些问题的方法,包括在不降低node版本的情况下成功安装node-sass。
成功解决node、node-sass和sass-loader版本冲突问题、不需要降低node版本。如何在vue项目中安装node-sass,以及安装node-sass可能遇到的版本冲突问题
|
安全 Java Maven
MapStruct使用教程2024(高级版)
MapStruct使用教程2024(高级版)

热门文章

最新文章