##更改一些默认配置
rm -rf /etc/pki/CA/*.old
touch /etc/pki/CA/index.txt
echo 01 > /etc/pki/CA/serial
echo 02 > /etc/pki/CA/serial
##准备证书生成目录
cd /home/cert/
rm -rf keys
mkdir keys
#1.生成【根证书】RSA私钥
openssl genrsa -out keys/RootCA.key 2048
#2.使用步骤1生成的 RSA 私钥生成自签名证书,证书有效期设置为3650(10年)
opensslreq -new -x509 -days 3650 -key keys/RootCA.key -out keys/RootCA.crt -subj "/C=CN/ST=SD/L=JN/O=DW/OU=DW/CN=RootCA"
#3.生成【二级证书】RSA私钥
openssl genrsa -out keys/secondCA.key 2048
openssl rsa -in keys/secondCA.key -out keys/secondCA.key
#4.生成【二级证书请求文件】secondCA.csr,-subj的值最好与根证书保持一致
openssl req -new -days 3650 -key keys/secondCA.key -out keys/secondCA.csr -subj "/C=CN/ST=SD/L=JN/O=DW/OU=DW/CN=SecCA"
#5.根证书【认证】二级证书
openssl ca -extensions v3_ca -in keys/secondCA.csr -config /etc/pki/tls/openssl.cnf -days 3650 -out keys/secondCA.crt -cert keys/RootCA.crt -keyfile keys/RootCA.key -batch
#6.生成【服务器】RSA私钥
openssl genrsa -out keys/server.key 2048
openssl rsa -in keys/server.key -out keys/server.key
#7.生成【服务器证书请求文件】server.csr 此处CN的值应填写服务器的IP
openssl req -new -days 3650 -key keys/server.key -out keys/server.csr -subj "/C=CN/ST=SD/L=JN/O=DW/OU=DW/CN=10.1.91.241"
#8.二级证书【认证】服务器证书
openssl ca -in keys/server.csr -config /etc/pki/tls/openssl.cnf -days 3650 -out keys/server.crt -cert keys/secondCA.crt -keyfile keys/secondCA.key -batch
#9.证书公钥转格式 crt转换为PEM
cd keys/
openssl x509 -in secondCA.crt -out second-cert.pem -outform PEM
openssl x509 -in RootCA.crt -out RootCA-cert.pem -outform PEM
#10.公钥合并,这一步的主要作用是构建证书链:根证书 => 二级证书 => 服务器证书
cat second-cert.pem >> server.crt
cat RootCA-cert.pem>> server.crt
#11.将服务器证书转换为电脑能够安装的P12格式 ,密码自定义,此处为666666
openssl pkcs12 -export -clcerts -in server.crt -inkey server.key -out server.p12 - password pass:666666 -passin pass:666666 -passout pass:666666
##最后这两步使用keytool命令,执行前,确认服务器正确安装配置了JDK,建议1.8
#12.生成服务器配置用的 server.jks
keytool -importkeystore -srckeystore server.p12 -destkeystore server.jks -srcstoretype pkcs12 -deststoretype jks -srcstorepass 666666 -deststorepass 666666 -storepass 666666 -destalias server -srcalias 1
#13.根证书导入信任正式库,生成 servertrust.jks 服务器配置用
keytool -import -alias root -trustcacerts -file RootCA-cert.pem -keystore servertrust.jks -keypass 666666 -storepass 666666 -noprompt