OpenSSL是一个功能非常强大的安全工具箱,安全相关的内容只要想到的都可以使用OpenSSL来实现。有时候需要在生成PKCS12格式的证书文件,使用openssl要怎么做呢?
步骤
- 找到openssl所在的目录,查看其配置文件指向的相关内容目录。
which openssl
vim openssl.conf
image-20191124121118466
# 创建配置文件中需要的目录及内容
sudo mkdir -p {certs,private,tls,crl,newcerts}
sudo echo 00 > serial
sudo touch index.txt
- 生成自签名的证书,因为它在使用命令的时候自己已经生成了。注意填写的内容
# openssl genrsa -des 使用DES加密生成的key,记得要输入密码
sudo openssl genrsa -out private/cakey.pem -des 1024
# 根据加密的key生成证书文件,首先要填写上一步生成key的密码,然后添加证书相关信息。
sudo openssl req -new -x509 -key private/cakey.pem -days 3650 -out cacert.pem
image.png
- 生成证书请求,然后给请求颁发证书。注意证书请求填写的内容要与上一步保持一致,否则会出现
The stateOrProvinceName field needed to be the same in the
CA certificate (ZHEJIANG) and the request (HANGZHOU)
或者其它错误
# 第一步要生成一对rsa的密钥
sudo openssl genrsa -out private/jmxdemo.key
# 生成颁发证书请求,指定私钥为刚才生成的私钥
sudo openssl req -new -key private/jmxdemo.key -days 365 -out jmxdemo.csr
# 颁发证书
sudo openssl ca -in jmxdemo.csr -out certs/jmxdemo.crt -days 365
image-20191124122106640
- 可以看到openssl的数据库有更新,如果后续颁发新的证书,记得要写不同的
Common Name
# 在openssl配置中database的文件位置
cat index.txt
- 将生成的证书导出为pkcs12格式的文件。
keytool -list -v -storetype pkcs12 -storepass 123456 -keystore jmxdemo-openssl.p12
- 查看生成的filename.p12内容,其中的别名是我们在spring boot应用中配置需要的。
keytool -list -v -storetype pkcs12 -storepass 123456 -keystore filename.p12
image-20191124122910368
最后
本篇主要演示了openssl如何生成自签名证书,如果创建pkcs12格式的证书。
网友评论