• 周五. 5月 2nd, 2025

利用openssl 生成证书 CA证书

利用openssl 生成证书 CA证书:

a. 创建ca目录;

b. 创建CA私钥

openssl genrsa -des3 -out ca/ca-key.pem 1024  ;  -des代表该私钥需要输入密码,如下显示

Seven:test Seven$ openssl genrsa -des3 -out ca/ca-key.pem 1024
Generating RSA private key, 1024 bit long modulus
…………………………………………………………………………….++++++
……………++++++
e is 65537 (0x10001)
Enter pass phrase for ca/ca-key.pem:

也可以用以下指令创建不需要密码的证书,即去密码。

openssl rsa -in ca/ca-key.pem -out ca-key.notneedpassword.pem

c. 请求创建证书,指令如下:

openssl req -new -out ca/ca-req.csr -key ca/ca-key.pem 需要密码

openssl rsa -in ca/ca-key.pem -out ca-key.notneedpassword.pem 不需要密码

以上两个结果一样。

d. 自签署证书:

openssl x509 -req -in ca/ca-req.csr -out ca/ca-cert.pem -signkey ca/ca-key.pem -days 3650  ; days 在效期10年。

e. 导出p12证书:

openssl pkcs12 -export -clcerts -in ca/ca-cert.pem -inkey ca/ca-key.pem -out ca/ca.p12

openssl pkcs12 -export -nokeys -cacerts -in ca/ca-cert.pem -inkey ca/ca-key.pem -out ca/ca1.p12 ; 不导出私钥。

f. 转成Android 支持的BKS格式:

keytool -importcert -trustcacerts -keystore key.bks -file ca/ca-cert.pem -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider

 

g. keytool 错误: java.lang.ClassNotFoundException: org.bouncycastle.jce.provider.BouncyCastleProvider

下载 bcprov-jdk15on-161.jar 库,并存放在jre/lib/ext/ 目录下即可解决问题。下载地址如下:

bcprov-jdk15on-161.jar

发表评论

您的电子邮箱地址不会被公开。