证书请求格式 RSA公私钥格式 RSA私钥构成

2016-12-07 22:12:00
admin
原创 2022
摘要:证书请求格式 RSA公私钥格式 RSA私钥构成

一、证书请求格式

默认pkcs10格式:

-----BEGIN CERTIFICATE REQUEST-----
-----END CERTIFICATE REQUEST-----

newhdr选项生成NEW格式:

-----BEGIN NEW CERTIFICATE REQUEST-----
-----END NEW CERTIFICATE REQUEST-----


参数说明:

-key pem和der格式秘钥都支持,如果不指定,req自动生成pkcs8格式秘钥;

-sha256 指定消息摘要算法;

-newhdr 生成NEW格式证书;

-x509 不生成证书请求,直接生成自签名证书;


示例命令:

生成证书主题时,回车则使用默认值,输入'.'则忽略字段;

openssl req -new -key private.pem -sha256 -out req.csr -subj "$subject"


二、RSA私钥格式

openssl默认生成pkcs1格式私钥,C程序使用格式:

-----BEGIN RSA PRIVATE KEY-----

-----END RSA PRIVATE KEY-----


pkcs8格式私钥,专门打包私钥的格式,分加密和未加密2种:

-----BEGIN PRIVATE KEY-----
-----END PRIVATE KEY-----

-----BEGIN ENCRYPTED PRIVATE KEY-----
-----END ENCRYPTED PRIVATE KEY-----


格式转换:

openssl pkcs8 −topk8:pkcs1转换为pkcs8

openssl pkcs8:pkcs8转换为pkcs1

−nocrypt表示私钥不加密


三、RSA公钥格式

-RSAPublicKey_out生成pkcs1格式公钥:

-----BEGIN RSA PUBLIC KEY-----
-----END RSA PUBLIC KEY-----


-pubout生成pkcs8格式公钥,默认公钥格式:

-----BEGIN PUBLIC KEY-----
-----END PUBLIC KEY-----


四、RSA私钥构成查看

openssl genrsa 32 2>/dev/null | openssl rsa -text -noout
Private-Key: (32 bit)
modulus: 3943717597 (0xeb105add)
publicExponent: 65537 (0x10001)
privateExponent: 150132933 (0x8f2d8c5)
prime1: 63299 (0xf743)
prime2: 62303 (0xf35f)
exponent1: 53375 (0xd07f)
exponent2: 47415 (0xb937)
coefficient: 2987 (0xbab)


说明:

modulus即n=p*q,n长度就是秘钥长度

publicExponent即公开幂e

privateExponent即私有幂d

prime1即n的素数因子p

prime2即n的素数因子q

exponent1等于d mod (p−1)
exponent2等于d mod (q−1)
coefficient是CRT系数q–1 mod p


五、RSA工具

openssl genrsa:生成秘钥,默认不加密,可以使用-des3加密;

openssl rsa:提取公钥,格式转换,显示秘钥内容,比如modulus等;

openssl rsautl:签名验签、加密解密,签名和加密的数据长度不能超过keysize

发表评论
评论通过审核之后才会显示。