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

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

一、证书请求格式

默认pkcs10格式:

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

newhdr选项生成NEW格式:

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


参数说明:

-key 支持私钥格式pem和der,不指定时自动生成pkcs8格式私钥

-sha256 指定消息摘要算法;

-newhdr 生成NEW格式证书;

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


示例命令:

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

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


二、证书文件格式

1、证书可以是pem格式,后缀可以是crt、cer;

2、证书可以是pkcs7格式,后缀可以是p7b、p7c;


三、RSA私钥格式

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

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

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


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

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

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


格式转换:

1、pkcs1转换为pkcs8,openssl pkcs8 −topk8 -nocrypt -in key.pem

2、pkcs8转换为pkcs1,openssl rsa -in key.pem


四、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

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