一级CA自签名证书

2018-08-02  本文已影响0人  _瑾_

概述

数字证书,是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。

相关术语

pkcs : 公钥加密标准(Public Key Cryptography Standards, PKCS),该标注描述了一组公钥密码学标准。

jks : java 中支持的数字证书格式。
bks: android 上数字证书格式。
X509: 一种非常通用的证书格式,所有的证书都符合ITU-T X.509国际标准,因此(理论上)为一种应用创建的证书可以用于任何其他符合X.509标准的应用。


预期效果:


image.png

安装工具

安装openSSL

创建自签名证书

第一步: 生成CA


### 生成CA
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout ca.key -out ca.crt -subj /C=CN/ST=ShanXi/L=TaiYuan/O=XXX/OU=XXX/CN=XXX-Client -config openssl.cnf
### 恭喜你获得  ca.key  ca.crt 宝物 !

第二步: 创建自签名证书


### 创建自签名证书
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout root.key -out root.crt -subj /C=CN/ST=ShanXi/L=TaiYuan/O=XXX/OU=XXX/CN=XXX-Client -config openssl.cnf
### 恭喜你获得  root.key  root.crt 宝物 !

第三步: 生成证书请求


### 生成证书请求
openssl req -new -key root.key -subj "/C=CN/ST=ShanXi/L=TaiYuan/O=XXX/OU=XXX/CN=XXX-Client" -out root.csr
### 恭喜你获得 root.csr 宝物 !

第三步: 使用CA对证书进行签名


### CA签名
openssl x509 -req -in root.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out root.crt -days 1825 -extensions SAN -extfile san.cnf

###  san.cnf
[SAN]
subjectAltName=@alt_name
[alt_name]
#DNS/IP config
IP.1=127.0.0.1
DNS.1=127.0.0.1
### 恭喜你获得 root.crt证书一枚 宝物 !

第四步:将crt 转换成p12格式


### crt 转 p12
openssl pkcs12 -export -CAfile ca.crt  -in root.crt -inkey st.key -out server.p12 -name "server"

第四步:p12导入jks (keystore)


### 导入证书
keytool -importkeystore -srckeystore server.p12 -srcstoretype PKCS12 -deststoretype JKS -destkeystore st-client.keystore -deststorepass st-client.password

### 恭喜你获得 st-client.keystore  宝物 !

配置tomcat

<Connector port="8444" protocol="org.apache.coyote.http11.Http11Protocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" setProtocol="TLS" keystoreFile="conf/st-client.keystore"
               keystorePass="st-client.password" />

如要将上面生成的ca.crt导入到系统证书库中,“受信任的根证书”

这次有点绕,即用openssl ,又使用了keytool ,下次再讲下keytool下如何生成自签名CA证书。

赶紧试试吧!

上一篇下一篇

猜你喜欢

热点阅读