OpenSSL常用命令有哪些 OpenSSL命令用法

142次阅读

共计 1732 个字符,预计需要花费 5 分钟才能阅读完成。

OpenSSL 是一个功能强大的命令行工具,可以用来完成公钥体系以及 https 相关的诸多任务。新手用户可能会对 OpenSSL 命令用法还不太了解,本文整理了常用的 OpenSSL 命令的使用方法,例如生成 CSR 文件、SSL 证书格式转换等。

OpenSSL 常用命令有哪些 OpenSSL 命令用法

一、使用 OpenSSL 命令生成 CSR 文件

有效的 SSL 证书通常是由可信权威的 CA 机构颁发的,我们在申请 SSL 证书前,需利用相关工具来生成一个证书签名请求文件(CSR 文件),该文件内容主要包括密钥对中的公钥、以及其他一些额外信息。

1、生成 CSR – RSA 加密算法

openssl req -out www_sslaaa_com.csr -new -sha256 -newkey rsa:2048 -nodes -keyout www_sslaaa_com.key

2、生成 CSR – ECC 加密算法

openssl ecparam -out server.key -name prime256v1 -genkey
openssl req -new -key server.key -out server.csr

3、生成自签发证书命令

openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt

4、从密钥生成 CSR

openssl req -out CSR.csr -key privateKey.key -new

5、从证书文件生成 CSR

openssl x509 -x509toreq -in certificate.crt -out CSR.csr -signkey privateKey.key

6、去除 Key 密码

openssl rsa -in privateKey.pem -out newPrivateKey.pem

二、SSL 证书常见格式转换

1、PEM 转 DER

可以将 PEM 编码的证书 domain.crt 转换为二进制 DER 编码的证书 domain.der:

openssl x509
-in domain.crt
-outform der -out domain.der

DER 格式通常用于 Java。

2、DER 转 PEM

同样,可以将 DER 编码的证书(domain.der)转换为 PEM 编码(domain.crt):

openssl x509
-inform der -in domain.der
-out domain.crt

3、PEM 转 PKCS7

将 PEM 证书(domain.crt 和 ca-chain.crt)添加到一个 PKCS7(domain.p7b)文件中:

openssl crl2pkcs7 -nocrl
-certfile domain.crt
-certfile ca-chain.crt
-out domain.p7b

使用 -certfile 选项指定要添加到 PKCS7 中的证书。

PKCS7 文件也被称为 P7B,通常用于 Java 的 Keystore 和微软的 IIS 中保存证书的 ASCII 文件。

4、PKCS7 转换为 PEM

使用下面的命令将 PKCS7 文件(domain.p7b)转换为 PEM 文件:

openssl pkcs7
-in domain.p7b
-print_certs -out domain.crt

如果 PKCS7 文件中包含多个证书,例如一个普通证书和一个中间 CA 证书,那么输出的 PEM 文件中将包含所有的证书。

5、PEM 转换为 PKCS12

可以将私钥文件(domain.key)和证书文件(domain.crt)组合起来生成 PKCS12 文件(domain.pfx):

openssl pkcs12
-inkey domain.key
-in domain.crt
-export -out domain.pfx

上面的命令将提示你输入导出密码,可以留空不填。

PKCS12 文件也被称为 PFX 文件,通常用于导入 / 导出微软 IIS 中的证书链。

6、PKCS12 转换为 PEM

另外,我们还可以将 PKCS12 文件(domain.pfx)转换为 PEM 格式(domain.combined.crt):

openssl pkcs12
-in domain.pfx
-nodes -out domain.combined.crt

要注意的是,如果 PKCS12 文件中包含多个条目,例如证书及其私钥,那么生成的 PEM 文件中将包含所有条目。

正文完