570
文章
·
29209
阅读
570
文章
·
29209
阅读

有15人阅读过 使用openssl创建安卓应用的证书,格式*.pk8和*.pem 【群晖/linux】
发布于2023/11/29 更新于2023/11/30
[ 教程仅保证更新时有效,请自行测试。]

ssh登录服务器后,使用以下命令,验证是否安装openssl

openssl version

image.png

切换到工作目录,创建一个保存文件的目录,并进入工作目录,例如

cd /var/packages/iptv/target/apktool
mkdir make_cer
cd make_cer

执行以下脚本,按提示输入三次密码

openssl.rar

 bash openssl.sh

image.png


以下为原理,可以参考


以下开始创建证书

# 生成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


文章对你有帮助吗?
  • 一般[0]
  • 很赞[0]
  • 没用[0]
  • 垃圾[0]
  • 无语[0]
扫一扫,手机浏览手机访问本站