如何使用 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 进行签名的过程顺利进行。
相关文章
有用资源
linux 参考教程 - 该教程包含有关 linux 的更多信息:https://www.cainiaomax.com/linux/

