发布时间:2023-11-29 11:38:12
ssh登录服务器后,使用以下命令,验证是否安装openssl
openssl version
切换到工作目录,创建一个保存文件的目录,并进入工作目录,例如
cd /var/packages/iptv/target/apktool mkdir make_cer cd make_cer
执行以下脚本,按提示输入三次密码
bash openssl.sh
以下为原理,可以参考
以下开始创建证书
# 生成root.key openssl genrsa -out root.key 2048 # 生成root.cer # -subj拥有者信息,CN:姓名;OU:组织单位名称;O:组织名称;L:省/市/自治区名称;C:国家/地区代码 # days 36500 此处为天数(100年) openssl req -new -x509 -days 36500 -key root.key -out root.crt -subj "/C=CN/ST=Guangdong/L=Shenzhen/O=giraff/OU=giraff/CN=giraff" # 证书转换 openssl x509 -in root.crt -out root.pem openssl x509 -in root.crt -out root.cer -outform der openssl pkcs12 -export -in root.crt -inkey root.key -out root.p12 -name root -password pass: # 提取*.p12文件中的信息 openssl pkcs12 -in root.p12 -nodes -out tmp.rsa.pem
此时提示输入密码,实际用了空密码,直接回车一下,继续运行下面的代码
生成证书
# 提取所需证书密码,并创建两个文件 inputFile="tmp.rsa.pem" outputCertFile="cert.x509.pem" outputPrivateKeyFile="private.rsa.pem" startCert="-----BEGIN CERTIFICATE-----" endCert="-----END CERTIFICATE-----" startPrivateKey="-----BEGIN PRIVATE KEY-----" endPrivateKey="-----END PRIVATE KEY-----" certContent=$(sed -n "/$startCert/,/$endCert/p" "$inputFile") echo "$certContent" > "$outputCertFile" privateKeyContent=$(sed -n "/$startPrivateKey/,/$endPrivateKey/p" "$inputFile") echo "$privateKeyContent" > "$outputPrivateKeyFile" echo "Certificate content extracted and saved to $outputCertFile" echo "Private key content extracted and saved to $outputPrivateKeyFile" # 生成pk8格式私钥 openssl pkcs8 -topk8 -outform DER -in private.rsa.pem -inform PEM -out private.pk8 -nocrypt # 删除中间文件 rm private.rsa.pem tmp.rsa.pem root.p12 root.pem root.cer root.crt root.key