华为云差旅服务-证书FAQ:openssl证书生成和使用
openssl证书生成和使用
以OpenSSL 1.0.2k-fips版本说明,按以下三个步骤:
- 生成私钥文件rsaprivatekey_pass.pem
生成4096位RSA私匙文件rsaprivatekey_pass.pem,用aes256加密,口令为123456:
openssl genrsa -out rsaprivatekey_pass.pem -passout pass:123456 -aes256 4096
注:
- 私钥文件及其口令企业自己负责保管。
企业用私钥文件进行数据签名。
企业可自行修改口令值123456为其它值,企业侧本地代码读取aes256加密后的本地私钥文件时需要使用此口令解密私钥文件。
- 如果企业用JAVA语言开发,JAVA语言无法直接读取不了以上命令生成的私钥文件,需将以上命令生成的私钥文件(pem文件名后缀,rsaprivatekey_pass.pem)转换成pkcs8格式(der文件名后缀,rsaprivatekey_pass.der),JAVA代码才能读取私钥文件,格式转换命令如下:
openssl pkcs8 -topk8 -inform PEM -outform DER -in rsaprivatekey_pass.pem -out rsaprivatekey_pass.der -nocrypt
- 生成公钥证书rsapublic_cert.cert
生成公钥证书文件到rsapublic_cert.cert文件,days参数为证书有效天数,可以不加:
openssl req -new -x509 -key rsaprivatekey_pass.pem -out rsapublic_cert.cert -days 1095 -passin pass:123456
企业需将公钥证书文件rsapublic_cert.cert证书文件提供给平台服务商。
- 验证证书有效性(私钥签名,公钥验签)
步骤1:使用私钥对test.txt文本内容进行数字签名,签名输出到test.sig:
openssl rsautl -sign -in test.txt -out test.sig -inkey rsaprivatekey_pass.pem -passin pass:123456
步骤2:使用公钥证书对数字签名进行验证,输出到test.vfy:
openssl rsautl -verify -in test.sig -out test.vfy -inkey rsapublic_cert.cert -certin
步骤3:检查以上2步输出的test.vfy和test.txt的内容,必须完全一致。