有些时候比如防火墙需要通过创建用户证书作为用户登录名来登录,导入的证书,应用会检测证书的一些扩展属性,比如华为防火墙的sslvpn就需要 “密钥用法”
若没有使用,就会导致证书显示不出来。
使用openssl 生成有些麻烦,通过cfssl 工具可能会更好些,下面是一个脚本。
#!/bin/bash
##@author
##@date 2023-04-25
if [ $# -ne 1 ];then
echo "请输入创建的用户,用户和sslvpn中创建用户要一样,例如: $0 shitian"
exit 0
fi
if [ ! -d userssl/$1 ];then
mkdir -p userssl/$1
fi
sed -i 's!"CN": .*,$!"CN": "'"$1"'",!g' config/user-csr.json
#生成用户公钥和私钥,
cfssl gencert -ca=CA/pki-ca.pem \
-ca-key=CA/pki-ca.key \
-config=config/cert-common-config.json \
-profile=xgd config/user-csr.json |cfssljson -bare userssl/$1/$1
#合并私钥和公钥生成p12格式证书
/usr/bin/openssl pkcs12 -password pass:$1 -export -out userssl/$1/$1.p12 -in userssl/$1/$1.pem -inkey userssl/$1/$1-key.pem
文件可以从这里下载
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!