📜  openssl 生成证书 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:44:54.851000             🧑  作者: Mango

OpenSSL 生成证书 - Shell-Bash

OpenSSL是一款用于可靠的安全通信的开放源代码软件包,它支持SSL和TLS协议以及其他一些加密协议和算法。在本文中,我们将介绍如何使用OpenSSL生成证书。

生成密钥对

我们首先需要生成一个私钥和一个公钥。下面的命令将生成一个2048位RSA密钥对:

openssl genrsa -out private_key.pem 2048

这将生成一个名为private_key.pem的文件,其中包含私钥。

要从私钥中提取公钥,可以使用以下命令:

openssl rsa -in private_key.pem -out public_key.pem -outform PEM -pubout

这将生成一个名为public_key.pem的文件,其中包含公钥。

生成自签名证书

现在我们可以使用生成的私钥和公钥来创建自签名证书。自签名证书是由项目签名的证书,也就是说,没有任何第三方机构对其进行验证。

以下命令将生成一个自签名证书:

openssl req -new -x509 -key private_key.pem -out certificate.pem -days 365

这将创建一个有效期为365天的自签名证书。当执行此命令时,您将需要回答几个关于证书信息的问题。

生成证书请求

要生成由CA签名的证书,我们需要生成一个证书请求。证书请求是一份包含有关受信任的实体的信息的Digital Certification请求。它通常由服务器构建并发送到CA,以便该实体可以获得由CA签名和认证的证书。

以下命令将生成一个证书请求:

openssl req -new -key private_key.pem -out certificate_request.pem

该命令将生成一个名为certificate_request.pem的文件,其中包含证书请求。

生成CA证书

CA证书是一份由CA签名的证书,用于证明该机构是可信任的,并且可以用于签名其他证书。如果您是自己的CA,则可以使用以下命令生成自签名CA证书:

openssl req -new -x509 -key private_key.pem -out ca_certificate.pem -days 365
签署证书

现在我们可以使用CA证书签署证书请求,生成由CA签名的证书。以下命令将使用CA证书签署证书请求:

openssl x509 -req -in certificate_request.pem -CA ca_certificate.pem -CAkey private_key.pem -CAcreateserial -out signed_certificate.pem -days 365

该命令将生成一个名为signed_certificate.pem的文件,其中包含由CA签名的证书。

结论

使用OpenSSL生成证书是非常简单的。只需几个简单的步骤,我们就可以生成私钥、公钥、自签名证书、证书请求、CA证书和由CA签名的证书。这些工具可以用于创建各种安全通信方案,包括HTTPS、SSH和VPN。