证书请求格式 证书文件格式 RSA公私钥格式 RSA私钥构成
- 2016-12-07 22:12:00
- admin
- 原创 3594
一、证书请求格式
默认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;