bg-tutorials

如何在CentOS中生成CSR

本指南介绍如何在 CentOS 上使用 OpenSSL 命令行生成 CSR(证书签名请求)。您只需运行一条命令,回答几个关于您的域名和组织的提示,OpenSSL 就会写出两个文件:一个是您发送给证书颁发机构的 CSR,另一个是保留在服务器上的私钥。相同的步骤适用于 CentOS Stream、AlmaLinux、Rocky Linux 和 Red Hat Enterprise Linux,因为它们都使用相同的 openssl 工具。

关于 CentOS 版本的说明:CentOS Linux 8 于 2021 年 12 月 31 日停止支持,CentOS Linux 7 于 2024 年 6 月 30 日停止支持。这些版本不再接收安全更新,因此不要将它们用于新的公共网站。CentOS Stream 是 CentOS 项目当前维护的版本,而 AlmaLinux 和 Rocky Linux 是旧版 CentOS Linux 的替代方案。以下的 CSR 命令在所有这些系统上都完全相同。

步骤 1:通过 SSH 登录您的服务器

使用 SSH 连接到您的 CentOS 服务器。将 user 替换为您的账户名,将 server-ip 替换为服务器的主机名或 IP 地址:

ssh user@server-ip

生成密钥和 CSR 并不需要 root 权限,但您需要对运行命令的目录具有写入权限。使用以下命令确认 OpenSSL 是否可用:

openssl version

如果该命令缺失,请在 CentOS 7 上使用 sudo yum install openssl 安装,或在 CentOS Stream、AlmaLinux 和 Rocky Linux 上使用 sudo dnf install openssl 安装。

步骤 2:创建私钥和 CSR

在提示符下运行以下命令。它会一步创建一个 2048 位的 RSA 私钥和一个匹配的 CSR:

openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr -addext "subjectAltName=DNS:yourdomain.com,DNS:www.yourdomain.com"

yourdomain 替换为您的实际域名,以便日后容易识别这些文件。例如,如果您的域名是 example.com,则文件将变为 example.keyexample.csr。以下是命令各部分的作用:

  • req -new 创建一个新的证书签名请求。
  • -newkey rsa:2048 生成一个 2048 位的新 RSA 私钥,这是目前公共证书的最低要求。
  • -nodes 使私钥保持未加密状态,以便 Web 服务器在启动时读取它,而无需输入密码提示。
  • -keyout yourdomain.key 设置私钥的文件名。
  • -out yourdomain.csr 设置 CSR 的文件名。

OpenSSL 默认使用 SHA-256 对现代 CSR 进行签名,这正是证书颁发机构所要求的。如果您希望使用椭圆曲线密钥而不是 RSA,可以改用 P-256 密钥:

openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -nodes -keyout yourdomain.key -out yourdomain.csr -addext "subjectAltName=DNS:yourdomain.com,DNS:www.yourdomain.com"

请保管好您的私钥。.key 文件绝不能离开您的服务器,也绝不能发送给证书颁发机构或其他任何人。只有 .csr 文件才需要提交。任何拥有私钥的人都可以冒充您的网站,因此请妥善保护它,并将其备份到安全的位置。

步骤 3:输入您的组织详细信息

运行命令后,OpenSSL 会提示您输入将写入 CSR 的详细信息。请按以下说明回答每个问题:

  • 国家名称(Country Name):您组织所在地的两字母 ISO 国家代码。例如,美国输入 US,英国输入 GB。请使用 GB,而不要用 UK:UK 不是有效的 ISO 代码,会导致 CSR 无效。
  • 州或省名称(State or Province Name):州或省的完整名称,不要使用缩写(例如 California)。
  • 城市名称(Locality Name):您组织所在城市或城镇的全名。
  • 组织名称(Organization Name):对于企业验证(OV)或扩展验证(EV)证书,请输入公司的准确法定名称。对于域名验证(DV)证书,您可以改用您的全名。
  • 组织单位名称(Organizational Unit Name):管理您证书的部门,例如 IT 部或 Web 管理部。此字段可选,可留空。
  • 通用名称(Common Name):您要保护的完全限定域名(FQDN),例如 www.example.com。对于通配符证书,请在域名前加上星号,例如 *.example.com。不要包含 https:// 或其他字符。
  • 电子邮件地址(Email Address):现代证书颁发机构在验证时会忽略此字段。您可以留空,也可以填写联系邮箱。
  • 挑战密码(A challenge password):请将此字段留空。这是一个证书颁发机构不再使用的旧式字段,填写它可能会在某些订购系统中导致问题。

完成提示后,OpenSSL 会将两个文件都写入您当前的目录。列出它们以确认已生成:

ls -l yourdomain.key yourdomain.csr

步骤 4:提交前验证 CSR

在将 CSR 发送给证书颁发机构之前,请先检查它。这可以确认详细信息正确无误、签名有效,从而避免订单被拒绝:

openssl req -noout -text -verify -in yourdomain.csr

在输出中查找 verify OK,然后检查 Subject 行是否显示了您输入的通用名称、组织和国家,以及密钥是否符合预期(例如,RSA 2048 位、SHA-256 签名)。如果您更喜欢在浏览器中操作,可以将 CSR 粘贴到我们的在线CSR 解码器中查看相同的详细信息。

步骤 5:复制 CSR 并订购您的证书

打开 CSR 以复制其内容:

cat yourdomain.csr

复制整个代码块,包括 —–BEGIN CERTIFICATE REQUEST—–—–END CERTIFICATE REQUEST—– 这两行以及其间的所有内容。每个标记两侧各有五个连字符。购买证书时,将整个代码块粘贴到订单表单中。如果您想在下单前提前准备好请求,也可以将其粘贴到我们的CSR 生成器中。

证书颁发机构验证 CSR 并颁发证书后,请按照我们的CentOS SSL 安装说明进行安装。证书通过 HTTPS 生效后,使用我们的SSL Checker对其进行扫描,以确认证书及证书链均已正确提供。

在其他 Linux 平台上生成 CSR

OpenSSL 命令在各个发行版上都是相同的。如果您使用不同的系统,请参阅我们的Red Hat LinuxDebianUbuntu 指南。

立即订购 SSL 证书, 可节省 10% 的费用!

快速发行, 强大加密, 99.99% 的浏览器信任度, 专业支持和 25 天退款保证. 优惠券代码 SAVE10

龙飞行的详细图像
撰写人

经验丰富的内容撰稿人, 擅长 SSL 证书. 将复杂的网络安全主题转化为清晰, 引人入胜的内容. 通过有影响力的叙述, 为提高数字安全作出贡献.