OpenSSL是由自由软件社区提供的免费安全协议和实现库。许多企业在其系统和产品中使用OpenSSL库。OpenSSL库和算法可以与 openssl
命令。在本教程中,我们将查看不同的用例 openssl
命令。
私钥
私钥应该保密。通常用于解密数据的私钥。
公钥
每个人都提供公钥,而不是秘密的。通常用于加密数据的公钥。
证书
证书包含密钥和相关信息。证书通常持有公钥。
生成私钥和证书签名请求
我们可以通过证书签名请求生成私钥。我们可以发送生成的 CertificateSigningRequest.csr
向证书颁发机构申请批准,然后我们可以使用 privateKey.key
$ openssl req -out CertificateSigningRequest.csr -new -newkey rsa:2048 -nodes -keyout privateKey.key

生成自签名证书
如果我们将在本地环境和系统中使用证书,则无需通过全球证书颁发机构对其进行签名。因此,我们可以使用以下命令生成自签名证书。
$ openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt
使用现有证书生成证书签名请求(CSR)
如果我们已经准备好了一个证书,但是我们需要由全局证书颁发机构批准它,那么我们需要使用以下命令生成证书签名请求。
$ openssl req -out CSR.csr -key privateKey.key -new
从私钥中删除密码短语
私钥通常存储为加密的,以使其更安全。但是每次我们想用私钥的时候我们都得解密。为了更实用,我们可以提取私钥并存储为未加密的。
$ openssl rsa -in privateKey.pem -out newPrivateKey.pem
检查并打印证书签名请求(CSR)
我们可以在shell上打印证书签名请求提供的所有信息。我们将为此使用以下命令。
$ openssl req -text -noout -verify -in CertificateSigningRequest.csr

检查并打印私钥
我们可以使用以下命令打印和检查私钥。这将打印关键信息。
$ openssl rsa -in privateKey.key -check
检查并打印证书
我们可以使用以下命令打印证书信息和相关部分。
$ openssl x509 -in certificate.crt -text -noout
检查并打印PKCS#12证书(.pfx,.p12)
我们可以检查和打印 PKCS#12
具有以下命令的证书。
$ openssl pkcs12 -info -in keyStore.p12
检查SSL连接和证书
OpenSSL提供了一个web客户端,它可以用SSL/TLS连接web服务器并打印SSL/TLS证书信息。
$ openssl s_client -connect poftut.com:443

将DER(.crt.cer.DER)转换为PEM
证书可以以不同的格式存储。 DER
和 PEM
是用于存储证书的两种流行格式。我们可以转换 DER
到 PEM
使用以下命令。
$ openssl x509 -inform der -in certificate.cer -out certificate.pem
将PEM转换为DER
与…相反的对话 PEM
到 DER
可通过以下步骤完成。
$ openssl x509 -outform der -in certificate.pem -out certificate.der
将PKCS#12(.pfx.p12)转换为PEM
我们可以转换 PKCS#12
将文件格式化为 PEM
使用以下命令创建文件。
$ openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodes
将PEM转换为PKCS#12(.pfx.p12)
我们可以转换 PEM
格式化到 PKCS#12
使用以下命令格式化。
$ openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt