OpenSSL之genrsa&rsa&req&x509子命令用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenSSL之genrsa&rsa&req&x509子命令用法相关的知识,希望对你有一定的参考价值。

参考技术A genrsa、rsa、req、x509子命令主要用于RSA密钥的生成和处理,以及证书的申请和制作。

genrsa子命令主要用于生成RSA私钥。

openssl genrsa [args] [numbits]

-des 使用des cbc模式对私钥文件进行加密。
-des3 使用des3 cbc模式对私钥文件进行加密。
-idea 使用idea cbc模式对私钥文件进行加密。
-aes128, -aes192, -aes256 使用aes cbc模式对私钥文件进行加密。
-out file 指定输出私钥文件名。
-f4 指定F4做为E值,默认。
-3 指定3做为E值。
-seed arg 指定cbc的随机种子。
-rand file:file 指定随机数种子文件。

rsa子命令主要用于处理RSA公私钥文件。

openssl rsa [options] <infile >outfile

-inform arg 指定输入文件格式,可以为DER或PEM,默认为PEM。
-outform arg 指定输出文件格式,可以为DER或PEM,默认为PEM。
-in arg 指定输入文件。
-out arg 指定输出文件。
-pubin 指定输入文件为公钥,默认为私钥。
-pubout 指定输出文件为公钥,默认为私钥。
-passin arg 指定输入文件的口令保护来源。
-passout arg 指定输出文件的口令保护来源。
-des 使用des cbc模式对输出文件进行加密。
-des3 使用des3 cbc模式对输出文件进行加密。
-idea 使用idea cbc模式对输出文件进行加密。
-aes128, -aes192, -aes256 使用aes cbc模式对输出文件进行加密。
-text 打印密钥信息。
-noout 不向控制台打印密钥信息。
-modulus 打印RSA的模数信息。
-check 检查RSA私钥的有效性。

req子命令主要用于创建证书请求文件。

openssl req [options] <infile >outfile

-inform arg 指定输入文件格式,可以为DER或PEM,默认为PEM。
-outform arg 指定输出文件格式,可以为DER或PEM,默认为PEM。
-in arg 指定输入文件。
-out arg 指定输出文件。
-new 创建新的证书请求文件。
-key file 指定创建证书请求的私钥文件。
-keyform arg 指定创建证书请求的私钥文件的格式,可以为DER或PEM,默认为PEM。
-passin arg 指定私钥文件的口令保护来源。
-verify 校验证书请求文件的主体签名是否有效。
-noout 不打印证书请求信息。
-text 文本打印证书请求文件。
-modulus 输出证书请求的模数信息。
-subject 输出证书请求主体信息。
-subj arg 设置或修改证书请求的主体信息。
-multivalue-rdn 设置或修改证书请求的主体信息时,允许多RDN格式。
-utf8 输入字符为utf8编码,默认输入为ASCII编码。
-[digest] 指定创建证书请求的摘要算法。
-pubkey 提取证书请求文件中的公钥。

x509命令主要用于创建、修改x509证书。

openssl x509 [options] <infile >outfile

-inform arg 指定输入文件格式,可以为DER或PEM,默认为PEM。
-outform arg 指定输出文件格式,可以为DER或PEM,默认为PEM。
-keyform arg 指定私钥文件格式,可以为DER或PEM,默认为PEM。
-CAform arg 指定CA文件格式,可以为DER或PEM,默认为PEM。
-CAkeyform arg 指定CA私钥文件格式,可以为DER或PEM,默认为PEM。
-in arg 指定输入文件,默认为标准输入。
-out arg 指定输出文件,默认为标准输出。
-passin arg 指定私钥文件的口令保护来源。
-pubkey 提取持有者公钥。
-trustout 提取可信任证书。
-noout 不向控制台输出证书信息。
-text 打印证书信息。
-C 以C证言格式打印证书信息。
-serial 打印证书的序列号。
-subject_hash 打印持有者的摘要。
-issuer_hash 打印颁发者的摘要。
-hash 等同于-subject_hash。
-subject 打印持有者的DN信息。
-issuer 打印颁发者的DN信息。
-email 打印email地址。
-startdate 打印证书的生效时间。
-enddate 打印证书的失效时间。
-dates 打印证书的有效期。
-purpose 打印证书用途。
-modulus 打印证书中的RSA模数。
-fingerprint 打印证书微缩图。
-alias 打印证书别名。
-ocspid 打印持有者和公钥的OCSP摘要值。
-clrtrust 清除证书附加项里所有有关用途允许的内容。
-clrreject 清除证书附加项里所有有关用途禁止的内容。
-addtrust arg 添加证书附加项里所有有关用途允许的内容。
-addreject arg 添加证书附加项里所有有关用途禁止的内容。
-setalias arg 设置证书别名。
-days arg 设置证书有效期,默认30天。
-checkend arg 检查证书在给定的arg秒后是否还有效。
-signkey arg 指定自签名私钥文件。
-x509toreq 根据证书来生成证书请求,需要指定签名私钥。
-req 输入文件为证书请求。
-CA arg 设置CA文件,必须为PEM格式。
-CAkey arg 设置CA私钥文件,必须为PEM格式。
-CAcreateserial 创建序列号文件。
-CAserial arg 指定序列号文件。
-set_serial 设置证书序列号。
-<dgst> 指定使用的摘要算法,缺省为MD5。

从自己编写程序实现以上子命令的角度考虑,涉及RSA生成、存取API,涉及PEM读写,以及X509相关的数据格式的理解,总体来说要求还是挺高的,有兴趣的朋友可以尝试下。

以上是关于OpenSSL之genrsa&rsa&req&x509子命令用法的主要内容,如果未能解决你的问题,请参考以下文章

1.openssl genrsa

openssl genrsa

openssl genrsa

openssl 怎样生成公钥和密钥 x509格式

使用openssl生成RSA公私密钥

使用openssl 生成RSA公钥和私钥