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

linuxoperating systemopen source

简介

证书签名请求 (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 进行签名的过程顺利进行。


相关文章


有用资源