一级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导入到系统证书库中,“受信任的根证书”