如何使用 OpenSSL 生成证书签名请求 (CSR)?


简介

证书签名请求 (CSR) 是一种包含请求 SSL/TLS 证书的实体信息的文档。CSR 包括公钥以及与实体相关的识别信息,例如其名称和位置。证书颁发机构 (CA) 使用此信息来验证请求证书的实体是否为其声称的实体。

CSR 是获取 SSL/TLS 证书过程中的一个重要组成部分,因为它允许验证您的身份和您对域名的所有权。如果没有有效的 CSR,您将无法获得 SSL/TLS 证书,这意味着您的网站将无法通过加密进行保护。

了解 OpenSSL 及其组件

OpenSSL 是一个开源工具包,它在互联网上两个机器之间提供安全的通信通道。它利用各种加密功能来确保数据机密性、完整性和真实性。OpenSSL 已成为世界上使用最广泛的加密库之一,支持各种操作系统,包括 Linux、Windows 和 macOS。

私钥

私钥是一个加密安全的密钥,个人或实体可以使用它对消息进行数字签名,以便只有拥有其对应公钥的人才能验证。

使用 OpenSSL 生成 CSR 时,务必记住,您的私钥必须始终保密,因为如果它落入坏人之手,可能会被用于恶意目的,例如身份盗用或伪造。要使用 OpenSSL 生成私钥,我们使用以下命令:

openssl genrsa -out my_private_key.key 2048 

这将在我们的当前目录中创建一个名为 `my_private_key.key` 的新文件,其中包含我们新生成的私钥,我们稍后将在生成 CSR 时使用它。

公钥

公钥充当您的私钥的标识符,允许其他人向您发送加密的消息,而不会危及他们的隐私,因为您的私钥始终保密。SSL/TLS 的基础公钥加密依赖于这些密钥在数学上相关但又不同;从另一个密钥生成一个密钥在计算上应该是不可行的。

要使用 OpenSSL 生成公钥,我们使用以下命令:

openssl rsa -in my_private_key.key -out my_public_key.crt -pubout 

这将在我们的当前目录中创建一个名为 `my_public_key.crt` 的新文件,其中包含我们新生成的公钥。我们稍后将在生成 CSR 时使用此公钥。

使用 OpenSSL 生成私钥

什么是私钥以及为什么它很重要?

私钥是一种用于保护双方之间通信的加密密钥。在 SSL/TLS 的情况下,私钥用于加密从服务器发送到客户端的数据。生成私钥非常重要,因为它允许您在服务器和客户端之间创建安全连接,这对于确保诸如信用卡号和密码等敏感信息的安全至关重要。

使用 OpenSSL 生成私钥的分步说明

要使用 OpenSSL 生成私钥,请按照以下简单步骤操作:

  • 打开您的终端或命令提示符并输入以下命令:

openssl genrsa -out example.com.key 2048 

将“example.com”替换为您的域名。

  • 然后系统将提示您输入私钥的密码。

    此密码应为易于记住的强密码。

  • 输入密码后,OpenSSL 将生成您的私钥并将其另存为当前目录中的“example.com.key”。

    需要注意的是,生成私钥后,应妥善保管。

从私钥创建公钥

公钥的定义及其在生成 CSR 中的重要性

公钥是一种用于加密数据和验证数字签名的加密密钥。它广泛用于网络安全协议(例如 SSL/TLS),在这些协议中,它有助于在服务器和客户端之间建立安全通信。

然后,CA 使用此公钥创建可用于安全通信的 SSL 证书。公钥在生成 CSR 中的重要性怎么强调都不为过。

使用 OpenSSL 从私钥创建公钥的分步说明

要使用 OpenSSL 从私钥创建公钥,请按照以下步骤操作:

  • 打开一个终端窗口并导航到存储私钥的目录。

  • 输入以下命令:

openssl rsa -in privkey.pem -pubout -out pubkey.pem 

将“privkey.pem”替换为您私钥文件的名称,并将“pubkey.pem”替换为您要赋予新创建的公钥文件的名称。

  • 按 Enter 键。

  • 如果在生成过程中设置了私钥密码,系统将提示您输入该密码。

  • 成功输入后,您应该会看到类似于以下内容的输出:

writing RSA key -----BEGIN PUBLIC KEY----- 
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5mg4yAgzgzY6rS/yz1lx lXTCjLv6NifJ45XQmOt3G+zs2RLpT8coUhU04KNxMm5N+RyOoK7Fw9ud1PvS0yRG 
tCji8bz0Hbszgde4hZl7ogcZffKtWXAkg/TltaiUxrOaEgWJ5jBNs9wAMRqvBR4k 5fetn1Gz/SNSd03LqAFg48mvn67/NA+iQlLOyBbLjMoxoJ2kRSsEnUU6K0AFiXrI 
uPVPYHzDv7qc+eTsqyzKrHG4hg/kVI6xCZNFGX4aWBFEkz50VibLooRv15ymW72y SvqfMY8dZKM033IFDhgx4wjBKCEGD04ehqicI7cP89LCBQr3A+RzfV02riB0UFTs 
DwIDAQAB -----END PUBLIC KEY----- 

此输出表示您新创建的公钥。恭喜,您已成功使用 OpenSSL 从私钥创建了公钥!

当使用 OpenSSL 时,从私钥生成公钥是创建有效证书签名请求的重要步骤。

创建证书签名请求 (CSR)

CSR 的定义及其重要性。

证书签名请求 (CSR) 是一个包含组织信息和将包含在 SSL/TLS 证书中的公钥的数字文件。请求 SSL/TLS 证书时,CSR 会发送到证书颁发机构 (CA)。

CA 将使用此信息创建已签名的证书,该证书可验证组织的身份。生成 CSR 很重要,因为没有它,组织就无法获得 SSL/TLS 证书。

SSL/TLS 证书会加密在 Web 服务器和客户端浏览器之间通过互联网传输的敏感数据,从而提供安全的通信。

有关如何使用 OpenSSL 创建证书签名请求的分步说明。

要使用 OpenSSL 生成 CSR,请按照以下步骤操作:

  • 打开您的终端或命令提示符

  • 创建私钥:

openssl genpkey -algorithm RSA -out example.com.key
  • 将您的详细信息输入 CSR

openssl req -new -key example.com.key -out example.com.csr
  • 系统将提示您输入各种详细信息,例如国家/地区名称、州/省名称、组织名称等,根据需要填写这些字段。

  • 您的 CSR 已生成并保存在 example.com.csr 文件中。

务必安全存储您的私钥文件以及生成的 CSR 文件,因为它们都是从 CA 获取已签名的 SSL/TLS 证书的关键组件。

验证您的证书签名请求 (CSR)

创建 CSR 后,必须验证其准确性,以避免在证书签名过程中出现潜在错误。要验证您的 CSR,您可以使用 OpenSSL 的内置验证工具。

首先,运行以下命令以检查 CSR 是否与私钥匹配:

openssl req -noout -modulus -in [csr_file].csr | openssl md5 

接下来,运行此命令以确保 CSR 中的信息正确:

openssl req -text -in [csr_file].csr 

如果一切都正确匹配并且没有错误,您可以继续提交 CSR 以进行签名。

结论

使用 OpenSSL 生成证书签名请求 (CSR) 乍一看可能是一项艰巨的任务;但是,它是为您的网站或应用程序获取已签名的 SSL 证书的关键步骤。通过遵循本文中概述的步骤并验证 CSR 的准确性,您可以确保在将其提交给您选择的 CA 进行签名时,流程顺利进行。

更新于: 2023-06-06

540 次浏览

开启你的职业生涯

通过完成课程获得认证

立即开始
广告