openssl 命令详解

openssl genrsa 命令产生私钥

openssl genrsa 命令是会用来生成 RSA 私有秘钥,不会生成公钥,因为公钥提取自私钥。生成时是可以指定私钥长度和密码保护。

如果需要查看公钥或生成公钥,可以使用 openssl rsa 命令。

命令语法:

openssl genrsa -out filename -passout arg -f4 -3 -rand file(s) -engine id numbits -des -des3 -idea

openssl genrsa -out filename -passout arg -aes128 -aes192 -aes256 -camellia128 -camellia192 -camellia256 -des

-des3\] \[-idea\] \[-f4\] \[-3\] \[-rand file(s)\] \[-engine id\] \[numbits

penssl genrsa ?

|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| openssl genrsa ? usage: genrsa args numbits -des encrypt the generated key with DES in cbc mode -des3 encrypt the generated key with DES in ede cbc mode (168 bit key) -idea encrypt the generated key with IDEA in cbc mode -seed encrypt PEM output with cbc seed -aes128, -aes192, -aes256 encrypt PEM output with cbc aes -camellia128, -camellia192, -camellia256 encrypt PEM output with cbc camellia -out file output the key to 'file -passout arg output file pass phrase source -f4 use F4 (0x10001) for the E value -3 use 3 for the E value -engine e use engine e, possibly a hardware device. -rand file:file:... load the file (or the files in the directory) into the random number generator root@ecs-be9a CA# |

openssl genrsa -des3 -out test1.key 2048

生成私钥,私钥中含有公钥,如果需要公钥,需要单独提取公钥

从私钥导出公钥

从私钥导出公钥方法:

|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| openssl rsa -inform PEM\|NET\|DER -outform PEM\|NET\|DER -in filename -passin arg -out filename -passout arg -sgckey -aes128 -aes192 -aes256 -camellia128 -camellia192 -camellia256 -des -des3 -idea -text -noout -modulus -check -pubin -pubout -RSAPublicKey_in -RSAPublicKey_out -engine id |

openssl req 命令

openssl req 命令详解 :openssl req命令主要的功能有,生成证书请求文件, 查看验证证书请求文件,还有就是生成自签名证书。生成证书请求需要什么:申请者需要将自己的信息及其公钥放入证书请求中。但在实际操作过程中,

所需要提供的是私钥而非公钥,因为它会自动从私钥中提取公钥。另外,还需要将提供的数据进行数字签名(使用单向加密),保证该证书请求文件的完整性和一致性,防止他人盗取后进行篡改

|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| -new :说明生成证书请求文件 -x509 :说明生成自签名证书 -key :指定已有的秘钥文件生成秘钥请求,只与生成证书请求选项-new配合。 -newkey :-newkey是与-key互斥的,-newkey是指在生成证书请求或者自签名证书的时候自动生成密钥, 然后生成的密钥名称由-keyout参数指定。当指定newkey选项时,后面指定rsa:bits说明产生 rsa密钥,位数由bits指定。 如果没有指定选项-key和-newkey,默认自动生成秘钥。 -out :-out 指定生成的证书请求或者自签名证书名称 -config :默认参数在ubuntu上为 /etc/ssl/openssl.cnf, 可以使用-config指定特殊路径的配置文件 -nodes :如果指定-newkey自动生成秘钥,那么-nodes选项说明生成的秘钥不需要加密,即不需要输入passphase. -batch :指定非交互模式,直接读取config文件配置参数,或者使用默认参数值 |

openssl ca 命令 签署证书

openssl ca -in httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 730

ca命令也是用于签署证书的,所以它所需要的文件除了配置文件外就是私钥文件和证书请求文件,而签名后生成的文件是证书文件,因此使用"-in"指定的对象是待签署文件"-infiles"则是指定多个待签署文件,"-keyfile"是指定私钥文件,"-out"是指定输出的证书文件

进行自签名,如果证书请求文件的信息与签名用的CA证书的信息不一致就会出现类似如下的错误提示。

相关推荐
Lsetea1 天前
证书没到期却报certificate has expired:OpenSSL定位中间证书与系统时间
运维·https·ssl证书·openssl·证书链
Lsetea2 天前
Nginx报No required SSL certificate was sent:mTLS客户端证书排查
运维·nginx·https·ssl·openssl
Lsetea3 天前
部署证书后提示“证书名称与输入不匹配”:Safari 报错的三层排查
nginx·https·safari·ssl证书·openssl
Lsetea4 天前
OpenSSL快速生成域名证书:含SAN的自签命令、验证与排错
nginx·https·ssl证书·openssl·自签证书
Lsetea8 天前
CDN换了SSL证书仍显示旧证书?按边缘节点、SNI和缓存逐层排查
https·cdn·ssl证书·openssl·tls
Lsetea9 天前
Nginx HTTPS证书域名不匹配:用SAN与SNI定位 ERR_CERT_COMMON_NAME_INVALID
nginx·https·ssl证书·openssl·tls
bosins13 天前
Windows IIS 配置本地HTTPS 全流程指南:自签名证书 + 端口绑定 + 避坑详解
powershell·openssl
Lsetea17 天前
Nginx报SSL_CTX_use_PrivateKey failed:证书与私钥不匹配怎么排查
nginx·https·ssl证书·openssl·私钥
Lsetea19 天前
SSL证书快过期怎么自动检查:用OpenSSL checkend做7天预警与线上证书验收
https·ssl证书·openssl·systemd·证书监控
蜡台1 个月前
本机 局域网 搭建本地 HTTPS 域名完整方案
网络协议·http·https·openssl