华为云差旅服务-证书FAQ:openssl证书生成和使用

时间:2023-11-01 16:16:03

openssl证书生成和使用

以OpenSSL 1.0.2k-fips版本说明,按以下三个步骤:

  1. 生成私钥文件rsaprivatekey_pass.pem

生成4096位RSA私匙文件rsaprivatekey_pass.pem,用aes256加密,口令为123456:

openssl genrsa -out rsaprivatekey_pass.pem -passout pass:123456 -aes256 4096

注:

  1. 私钥文件及其口令企业自己负责保管。

企业用私钥文件进行数据签名。

企业可自行修改口令值123456为其它值,企业侧本地代码读取aes256加密后的本地私钥文件时需要使用此口令解密私钥文件。

  1. 如果企业用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

  1. 生成公钥证书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. 验证证书有效性(私钥签名,公钥验签)

步骤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的内容,必须完全一致。

support.huaweicloud.com/api-hctms/hctms-0035.html