一 首次需要生成CA根证书

1 生成CA密钥 : ca.key
cd /mnt/d/work
mkdir cert
cd cert

#生成ca的密钥(需要输入密码)
#其它可以一直回车用默认
openssl genrsa -des3 -out ca.key 2048
2 生成CA证书 : ca.crt
openssl req -new -x509 -days 17305 -key ca.key -out ca.crt

-days指有效期多少天

二 首次还需要创建必须的子目录和一些文件

1 创建子目录和一些文件
mkdir ca
cd ca
mkdir newcerts
cd ..
touch ca/index.txt
touch ca/serial
echo "01" > ca/serial
2 修改 openssl 配置文件
vim /etc/ssl/openssl.cnf

在 [ CA_default ] 里,将 dirs 修改为 ./ca

三 开始生成某个域名的泛域名证书

1 生成域名证书的密钥

以下 "hwj.im"是要自理的域名,实际使用中自行替代成自己的域名

openssl genrsa -des3 -out hwj.im.pem 1024
2 创建 csr

#特别要注意,这里在输入 "Common Name" 时要输入 *.hwj.im ,以满足泛域名的需求
openssl req -new -key hwj.im.pem -out hwj.im.csr


3 生成 crt
 openssl ca -policy policy_anything -days 17305 -cert ca.crt -keyfile ca.key -in hwj.im.csr -out hwj.im.crt

以上三步完成后,得到了三个文件 :

hwj.im.csr  #证书签名请求
hwj.im.pem  #密钥
hwj.im.crt  #证书

四 实际使用,比如在nginx中,可能需要将 hwj.im.cst 里面的内容和 ca.cst 时面的内容合并成一个 证书文件(即,软件同时需要域名的证书和ca的证书)

标签: none