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.key 和 example.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 Linux、Debian 和 Ubuntu 指南。

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

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

龙飞行的详细图像
撰写人

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

Avatar of Sergiu Rosca
Technical Review by Sergiu Rosca

Sergiu Rosca is the core web developer behind SSL Dragon. He manages the technical infrastructure, platform performance, and backend integrations that keep the site running smoothly and securely. At SSL Dragon, Sergiu shares practical insights on web development, site optimization, and technical troubleshooting.

All SSL Dragon installation guides are tested on live server environments and undergo a strict peer-review process to ensure your infrastructure remains secure. Read our full Editorial Policy.