生成密钥对
首先,我们需要生成一对密钥,用来进行证书的生成和签名。可以使用Java的keytool工具来生成密钥对。
keytool -genkeypair -alias mykey -keyalg RSA -keysize 2048 -validity 365 -keystore mykeystore.jks
上述命令中的各个参数含义如下:
- -genkeypair:生成密钥对
-alias mykey:指定密钥对的别名为"mykey"
-keyalg RSA:指定密钥算法为RSA
-keysize 2048:指定密钥长度为2048位
-validity 365:指定证书的有效期为365天
-keystore mykeystore.jks:指定保存密钥对的文件名为"mykeystore.jks" 生成证书请求 生成密钥对后,我们需要生成一个证书请求文件,用于向证书颁发机构(CA)请求签名证书。
keytool -certreq -alias mykey -file mycertreq.csr -keystore mykeystore.jks
上述命令中的各个参数含义如下:
- -certreq:生成证书请求
-alias mykey:指定要使用的密钥对的别名为"mykey"
-file mycertreq.csr:指定保存证书请求的文件名为"mycertreq.csr"
-keystore mykeystore.jks:指定密钥对所在的密钥库文件为"mykeystore.jks"
keytool -importcert -alias mykey -file mycert.cer -keystore mykeystore.jks(本地不用执行这一句)
keytool -importkeystore -srckeystore mykeystore.jks -destkeystore mykeystore.p12 -deststoretype PKCS12
上述命令中的各个参数含义如下:
- -importcert:导入签名证书
-alias mykey:指定要导入证书的密钥对的别名为"mykey"
-file mycert.cer:指定要导入的证书文件名为"mycert.cer"
-keystore mykeystore.jks:指定密钥库文件为"mykeystore.jks"
-importkeystore:导入密钥库
-srckeystore mykeystore.jks:指定要导入的密钥库文件名为"mykeystore.jks"
-destkeystore mykeystore.p12:指定导出的p12文件名为"mykeystore.p12"
-deststoretype PKCS12:指定密钥库类型为PKCS12格式