创建三个同级文件夹:qr、qr-sts、qr-sts-cli
一、制作Java适用JKS格式密钥库
1、创建CA密钥库
keytool -genkeypair -alias qr -keyalg RSA -validity 36500 -keystore qr.jks -storepass grgbanking -keypass grgbanking -dname CN=qr,OU=grgbanking,O=grg,L=gz,ST=gd,C=cn -ext bc:c 2、导出CA证书 keytool -exportcert -alias qr -file qr.cer -keystore qr.jks -storepass grgbanking 3、创建服务端密钥库 keytool -genkeypair -alias qr_sts -keyalg RSA -validity 36500 -keystore qr_sts.jks -storepass grgbanking -keypass grgbanking -dname CN=qr_sts,OU=grgbanking,O=grg,L=gz,ST=gd,C=cn 4、引入CA证书至服务端密钥库 keytool -importcert -alias qr -file ../qr/qr.cer -keystore qr_sts.jks -storepass grgbanking 5、创建证书授权验证请求文件 keytool -certreq -alias qr_sts -file qr_sts_auth_by_qr.csr -keystore qr_sts.jks -storepass grgbanking 6、创建证书文件 keytool -gencert -alias qr -infile ../qr-sts/qr_sts_auth_by_qr.csr -outfile ../qr-sts/qr_sts_auth_by_qr.cer -keystore ../qr/qr.jks -storepass grgbanking 7、导入密钥回复文件 D:\afc_cert\qr-sts>keytool -importcert -alias qr_sts -file qr_sts_auth_by_qr.cer -keystore qr_sts.jks -storepass grgbanking 8、创建客户端密钥库 keytool -genkeypair -alias qr_sts_cli -keyalg RSA -validity 36500 -keystore qr_sts_cli.jks -storepass grgbanking -keypass grgbanking -dname CN=qr_sts_cli,OU=grgbanking,O=grg,L=gz,ST=gd,C=cn 9、引入CA证书至客户端密钥库 keytool -importcert -alias qr -file ../qr/qr.cer -keystore qr_sts_cli.jks -storepass grgbanking 10、创建证书授权验证请求文件 keytool -certreq -alias qr_sts_cli -file qr_sts_cli_auth_by_qr.csr -keystore qr_sts_cli.jks -storepass grgbanking 11、创建证书文件 keytool -gencert -alias qr -infile ../qr-sts-cli/qr_sts_cli_auth_by_qr.csr -outfile ../qr-sts-cli/qr_sts_cli_auth_by_qr.cer -keystore ../qr/qr.jks -storepass grgbanking 12、导入密钥回复文件 keytool -importcert -alias qr_sts_cli -file qr_sts_cli_auth_by_qr.cer -keystore qr_sts_cli.jks -storepass grgbanking二、制作C++适用PKCS12格式密钥库 1、导出JKS密钥库至PKCS12格式 keytool -importkeystore -srcstoretype JKS -srckeystore ../qr/qr.jks -srcstorepass grgbanking -srcalias qr -srckeypass grgbanking -deststoretype PKCS12 -destkeystore ../qr/qr.p12 -deststorepass grgbanking -destalias qr -destkeypass grgbanking -noprompt 2、openssl工具导出密钥库中的CA证书(pem格式) openssl pkcs12 -in qr.p12 -passin pass:grgbanking -nokeys -out qr.pem