美文网首页
数字证书的制作

数字证书的制作

作者: relative660 | 来源:发表于2018-03-14 16:17 被阅读0次

前言

项目里经常会遇到需要用TSL来保证通讯安全的。CS项目可能会要求服务端和客户端双向认证。而BS项目,一般是单向认证(浏览器认证服务器)。OpenSSL和keytool都是制作证书的工具。但OpenSSL更强大些,一般都是用OpenSSL来制作证书。而java程序要认证加密的证书都存储在KeyStore里面。所以,需要将OpenSSL生成的资料导入到KeyStore中,java程序才能使用。

步骤

  1. 生成根证书(CA)密钥
openssl genrsa -out rootkey.pem 2048

如果需要对密钥加密,使用 -des3 或者 -aes256 等,具体可以参见指令说明

生成密钥对
  1. 生成根证书请求文件
  openssl req -new -key rootkey.pem -out root.csr

该步骤需要交互式输入机构信息。

  1. 生成根证书文件
  openssl x509 -req -days 36500 -sha1 -extensions v3_ca -signkey rootkey.pem -in root.csr -out root.crt -extfile /etc/ssl/openssl.cnf

其中,-sha1 指定证书的签名(指纹)算法。
-extensions ,指定引用的扩展信息。这里在使用中遇到一个坑。就是指定了扩展信息,但是生成的证书里却没有,后经查阅,要搭配使用 -extfile 来明确指定openssl.cnf配置文件的位置。
生成证书指令相关参数说明:

1.png 2.png
  1. 生成服务器端密钥
  openssl genrsa -out serverkey.pem 2048
  1. 生成服务端证书请求文件
  openssl req -new -key serverkey.pem -out server.csr
  1. 用根证书来签发服务器端请求文件,生成服务器端证书
  openssl x509 -req -days 3650 -sha1 -extensions v3_req -in server.csr -CA root.crt -CAkey rootkey.pem -CAcreateserial -out server.crt
  1. 打包服务器端证书为pkcs12格式(需要设置密码,请记住)
  openssl pkcs12 -export -in server.crt -inkey serverkey.pem -out server.pkcs12

如果是打包CA证书,则添加参数 -cacerts。如果将ca证书一起打包,则用 -certfile 参数

  1. 生成服务器端keystore(server.jks)。使用keytool的importkeystore指令。pkcs12转jks。需要pkcs12密码和jks密码
keytool -importkeystore -srckeystore server.pkcs12 -destkeystore server.jks -srcstoretype pkcs12
  1. 把根证书加到服务器证书里面
keytool -importcert -keystore server.jks -file root.crt

以上是密钥库的生成,生成的密钥库包含了私钥,不便于发布。
对外发布,需要生成trustkeystore。trustkeystore 不包含私钥

  1. 生成Server端的对外KeyStore。先把根证书放到里面
keytool -importcert -alias ca -keystore servertrust.jks -file root.crt
  1. 把Server证书加到对外KeyStore里面
keytool -importcert -alias servercert -keystore servertrust.jks  -file server.crt

相关文章

  • 2018-01-04

    数字证书原理和制作

  • 数字证书的制作

    前言 项目里经常会遇到需要用TSL来保证通讯安全的。CS项目可能会要求服务端和客户端双向认证。而BS项目,一般是单...

  • 加密之数字证书和PFX信息交换

    1 数字证书 在构建Java代码实现前,我们需要完成证书的制作。 1.1 制作证书 1.1.1 生成keyStro...

  • HTTPS TLS握手中客户端验证证书

    数字证书和CA机构 在说校验数字证书是否可信的过程前,我们先来看看数字证书是什么,⼀个数字证书通常包含了: 公钥...

  • https相关内容 及 nginx 配置 https

    1. 数字证书 数字证书就是“网络身份证”,用来在网络上证明数字证书持有者的身份。 2. 数字证书格式及转换 3....

  • 数字证书

    数字证书(Certificate) 在HTTPS的传输过程中,有一个非常关键的角色——数字证书,所谓数字证书,是一...

  • 证书管理系统开发

    1.数字证书格式 RFC 3280 规定了 X.509 数字证书的基本格式 X.509 数字证书结构 X.509 ...

  • CA、数字证书、数字签名

    本文介绍 CA、数字证书和数字签名的概念和原理。 目录 相关概念 数字签名 数字证书 公钥基础设施 数字证书认证机...

  • 数字证书详解

    数字证书 数字证书(digital certificate),又叫做公钥证书(public key certifi...

  • 数字证书格式简述和OPENSSL证书制作

    各种数字证书的格式总结. 1.证书编码方式分类 2.证书包含内容分类 3.证书文件类型 4.openssl制作CA...

网友评论

      本文标题:数字证书的制作

      本文链接:https://www.haomeiwen.com/subject/jygxqftx.html