bg-tutorials

如何为SSL证书生成CSR

您可以在三个地方生成CSR:使用OpenSSL命令行、在服务器的控制面板或管理控制台中(cPanel、IIS、Plesk),或者如果您没有服务器访问权限,可以使用我们的在线工具。无论选择哪种方式,您都需要填写关于域名和组织的相同信息,最终会得到两个文件:随证书订单一起提交的CSR,以及必须妥善保管的私钥(有些控制面板会为您存储该私钥)。

如果您对此还不熟悉,CSR(证书签名请求的缩写)是向证书颁发机构申请颁发SSL证书所需的文件。以下是在任何平台上创建CSR的方法。


6步生成CSR的方法

  1. 决定在哪里生成:在将托管证书的服务器上(命令行或控制面板),或使用免费的CSR生成器。
  2. 打开服务器的SSL工具或运行OpenSSL命令,开始创建新的CSR和私钥。
  3. 输入您的域名作为通用名称(Common Name,即您想要保护的确切地址,例如www.example.com)。
  4. 添加您的组织信息:组织、部门、城市、州/省、国家和电子邮件。
  5. 生成后,妥善保管CSR和私钥。有些控制面板会为您存储私钥。
  6. 在订购证书时,复制CSR并提交给您的证书颁发机构。

这六个步骤适用于所有平台。要了解您所使用平台上的具体操作和命令,请在下方选择相应平台。如果未列出您所需的平台,下方的通用方法几乎适用于任何平台。


按平台分类的CSR生成指南

开始之前需要准备的内容

  • 对将托管证书的服务器或控制面板的访问权限,如果没有,可以使用我们的CSR生成器。
  • 与法定注册信息完全一致的组织信息。证书颁发机构会针对OV和EV证书核实这些信息。
  • 关于密钥类型的决定:RSA 2048位是最低标准。ECC(例如P-256)是更快的现代选项,如果您的服务器支持的话。
  • 每个证书对应一个CSR。每次使用新密钥订购或续订证书时,都需要生成新的CSR。

每个CSR都需要填写相同的字段。以下是每个字段应填写的内容:

字段填写内容示例
通用名称(CN)要保护的确切域名(FQDN)www.example.com
组织(O)您公司的法定名称Example LLC
组织单位(OU)部门(可选)IT
所在地(L)城市Austin
州/省(ST)完整的州或地区名称,不要缩写Texas
国家(C)两字母的ISO国家代码US
电子邮件联系邮箱(可选)[email protected]

最终生成的文件是标准的PKCS #10请求。它携带您的公钥以及这些详细信息,并使用您的私钥进行签名,以便证书颁发机构确认两者确实相互匹配。

提示:对于通配符证书,请将通用名称设置为*.example.com。若要在一张证书上包含多个域名,应将主域名设为通用名称,并将其他域名添加为使用者备用名称(SAN),而不是作为额外的通用名称。


方法一:使用OpenSSL生成CSR(Apache、Nginx、Linux)

OpenSSL是在Apache、Nginx以及大多数Linux服务器上生成CSR的通用方式。通过SSH连接到您的服务器,然后运行:

openssl req -new -newkey rsa:2048 -nodes -keyout example.key -out example.csr

以下是各部分的作用:

  • req -new创建一个新的CSR。
  • -newkey rsa:2048同时生成一个新的2048位RSA私钥。
  • -nodes使私钥不设置密码短语,因此服务器重启时可以直接加载而无需提示输入。
  • -keyout example.key保存私钥。
  • -out example.csr保存CSR。

随后OpenSSL会要求输入上表中的字段。请输入您的通用名称、组织和位置信息。挑战密码(challenge password)可以留空。

要跳过提示并在一行中添加SAN,可以直接传递主题和扩展信息:

openssl req -new -newkey rsa:2048 -nodes -keyout example.key -out example.csr \
  -subj "/C=US/ST=Texas/L=Austin/O=Example LLC/OU=IT/CN=www.example.com" \
  -addext "subjectAltName=DNS:example.com,DNS:www.example.com"

请注意:-addext标志需要OpenSSL 1.1.1或更高版本。一些较旧的CentOS 7和RHEL 7服务器仍然使用OpenSSL 1.0.2,其中不存在该标志。在这些系统上,请改为通过配置文件添加SAN。如果不确定版本,可以运行openssl version查看。

打开生成的example.csr文件,复制从—–BEGIN CERTIFICATE REQUEST—–到—–END CERTIFICATE REQUEST—–之间的全部内容。请对example.key保密。安装证书时需要用到它,一旦丢失将无法恢复。

更喜欢ECC吗?先生成密钥,再基于它创建CSR:

openssl ecparam -genkey -name prime256v1 -out example.key
openssl req -new -key example.key -out example.csr

想了解您所用发行版的具体步骤?请查看我们针对Apache、Nginx、Ubuntu、Debian和Red Hat Linux撰写的指南。


方法二:在cPanel中生成CSR

如果您的主机使用cPanel,则无需使用命令行。

  1. 登录cPanel,在安全部分下打开SSL/TLS。
  2. 点击证书签名请求(CSR)。
  3. 在生成新的证书签名请求(CSR)下,填写上表中的字段。将您的完整域名用作Domains或通用名称的值。
  4. 点击生成。

cPanel会在下一个界面显示编码后的CSR。复制它用于您的订单。cPanel会在私钥(Private Keys)下为您存储对应的私钥,因此您不必手动保存,但请记下它的位置以便日后安装证书时使用。

如果之后找不到CSR,它仍会保留在同一个证书签名请求界面上,因此您可以再次复制,而无需重新生成。

使用WHM而不是cPanel?操作流程几乎相同,位于SSL/TLS → 生成SSL证书和签名请求下。详细分步指南请见:cPanel和WHM。


方法三:在Windows(IIS)上生成CSR

在运行IIS的Windows服务器上:

  1. 打开IIS管理器,在左侧面板中选择您的服务器名称。
  2. 双击服务器证书。
  3. 在操作面板中,点击创建证书请求。
  4. 填写可分辨名称字段:通用名称、组织、组织单位、城市、州/省和国家。
  5. 选择加密提供程序,并将位长设置为2048或更高,然后将CSR保存为文件。

除非您有特定理由需要更改,否则请将提供程序保留为Microsoft RSA SChannel Cryptographic Provider。否则可能会导致日后颁发的证书更难绑定到您的站点。

IIS会将待处理的私钥保存在服务器的证书存储中,因此证书颁发后,请通过完成证书请求来完成该请求。在此期间不要重建服务器或删除待处理请求,否则密钥会丢失,您将需要重新颁发证书。在没有安装IIS的Windows计算机上,您可以改用certreq或MMC证书管理单元来生成CSR。

完整教程:Microsoft IIS和Microsoft Windows。


方法四:使用我们的免费CSR生成器生成CSR

没有服务器访问权限,或者只想在几秒钟内完成?使用我们的免费工具。

打开CSR生成器,填写您的通用名称、组织和位置信息,然后生成。该工具会立即创建CSR和私钥,并将密钥以邮件形式发送给您作为备份。将CSR复制用于您的订单,并将私钥妥善保存在安全的地方。

两点需要如实说明:

  • 该工具会为您生成私钥,这对于大多数DV和OV证书来说是完全没问题的。如果您的安全策略要求私钥不能离开您自己的服务器,请改用OpenSSL或控制面板。
  • 该生成器不适用于代码签名证书。自2023年6月起,代码签名密钥必须在安全硬件上创建和存储,因此请在您的令牌或HSM上生成这些密钥。

立即生成您的CSR →


生成CSR之后:验证与后续步骤

在提交CSR之前,值得快速检查一下。

解码工具可以显示CSR中的内容,但无法确认它是否与其旁边的密钥相匹配。如果两者是分别生成的,或者服务器上存有多个密钥,请在下单前确认CSR与私钥是否为一对。

  1. 验证它。将CSR粘贴到我们的CSR解码器中,确认通用名称和组织信息正确无误。此处的一个拼写错误会导致日后需要重新颁发证书。
  2. 提交它。将完整的CSR复制到您的证书订单中。证书颁发机构会对其进行验证并颁发您的X.509 SSL证书。
  3. 安装证书。证书颁发后,请按照我们的如何安装SSL证书指南操作,使用您之前保存的私钥。

对于DV证书,大多数证书颁发机构会在几分钟内通过电子邮件发送颁发的证书,通常以.crt或.cer文件形式提供,并附带中间证书包。请将其与您生成的私钥一起存放。

在证书的整个有效期内,请对该私钥进行备份并保密。没有它,证书将无法安装。


常见的CSR错误及解决方法

  • 通用名称错误。证书仅保护您输入的确切内容。example.com和www.example.com是不同的。如果两者都需要,请同时添加(一个作为CN,另一个作为SAN)。
  • 缺少SAN。现代浏览器依赖使用者备用名称,而不仅仅依赖通用名称。请列出证书应涵盖的每一个域名。
  • CSR与私钥不匹配。CSR只能与生成时同时创建的密钥配合使用。如果密钥丢失或生成了新的CSR,必须重新颁发证书。在证书安装完成之前,切勿删除密钥。
  • 国家代码错误。国家字段应使用两字母的ISO代码(如US、GB、DE),而不是完整的国家名称。输入”United States”是CSR被拒绝的最常见原因之一。
  • 组织字段中使用缩写或特殊字符。请完整拼写州名,并避免在组织字段中使用@、&或带重音符号的字符,因为有些证书颁发机构会拒绝这些字符。
  • 将CSR生成器用于代码签名。代码签名CSR必须来自安全硬件。我们的CSR生成器仅适用于TLS/SSL证书。

常见问题解答

如何为通配符证书生成CSR?

生成方式与其他任何CSR完全相同,只需将通用名称设置为*.example.com。一张通配符证书即可涵盖所有一级子域名,例如mail.example.com和shop.example.com。如果您还想涵盖不带子域名的example.com本身,请将该裸域名添加为SAN。

如何从现有证书生成CSR?

您无法从已颁发的证书中取回CSR,但可以使用相同的信息重新创建一个。从您当前的证书中读取主题信息:
openssl x509 -in your.crt -noout -subject
如果该证书已在您的站点上正式使用,我们的SSL Checker会显示相同的详细信息。然后使用这些值生成新的CSR和私钥。

如何生成多域名(SAN)CSR?

将主域名保留为通用名称,并将其余域名添加为使用者备用名称。使用OpenSSL时,附加-addext “subjectAltName=DNS:example.com,DNS:www.example.com,DNS:mail.example.com”(需OpenSSL 1.1.1或更高版本)。在控制面板中,在SAN字段中输入额外的域名,然后订购多域名(UCC/SAN)证书。

CSR的有效期是多久,应该多久重新生成一次?

CSR本身不会过期,但它与某一个私钥绑定,且仅用于单次订单。每次使用新密钥订购或续订证书时,都应生成新的CSR。只有在保留相同私钥的情况下,重复使用旧的CSR才是安全的。

我可以在浏览器中生成CSR吗?

浏览器已移除了旧版内置的密钥生成功能,因此您无法再直接在浏览器中创建CSR。请使用我们的在线CSR生成器,它会为您运行生成过程,或者使用命令行。

CSR是什么样子的?

CSR是一段较短的Base64文本,通常约为一千字节,保存为.csr扩展名的文件。它总是以相同的标记行开头和结尾:
-----BEGIN CERTIFICATE REQUEST----- MIICvDCCAaQCAQAwdzELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBVRleGFzMQ8wDQYD VQQHDAZBdXN0aW4xFDASBgNVBAoMC0V4YW1wbGUgTExDMRcwFQYDVQQDDA53d3cu ZXhhbXBsZS5jb20... -----END CERTIFICATE REQUEST-----
这段看似混乱的文本编码了您的公钥以及您输入的详细信息。请将从BEGIN到END的全部内容(包括标记行)提交给您的证书颁发机构。与您的私钥不同,CSR可以安全地分享出去:它不包含任何机密材料。

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

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

龙飞行的详细图像
撰写人

I've been building and managing websites for over 20 years, with a heavy focus on the technical side of the cybersecurity, VPN, and SaaS industries. I know how sites are built from the ground up, which means I know how to secure them. Here at SSL Dragon, I write about web architecture, encryption, and keeping your infrastructure safe.

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.