您可以在三个地方生成CSR:使用OpenSSL命令行、在服务器的控制面板或管理控制台中(cPanel、IIS、Plesk),或者如果您没有服务器访问权限,可以使用免费在线CSR生成器。无论选择哪种方式,您都需要填写关于域名和组织的相同信息,最终会得到两个文件:随证书订单一起提交的CSR,以及必须妥善保管的私钥(有些控制面板会为您存储该私钥)。
如果您对此还不熟悉,CSR(证书签名请求的缩写)是向证书颁发机构申请颁发SSL证书所需的文件。以下是在任何平台上创建CSR的方法。
6步生成CSR的方法
- 决定在哪里生成:在将托管证书的服务器上(命令行或控制面板),或使用免费的CSR生成器。
- 打开服务器的SSL工具或运行OpenSSL命令,开始创建新的CSR和私钥。
- 输入您的域名作为通用名称(Common Name,即您想要保护的确切地址,例如www.example.com)。
- 添加您的组织信息:组织、部门、城市、州/省、国家和电子邮件。
- 生成后,妥善保管CSR和私钥。有些控制面板会为您存储私钥。
- 在订购证书时,复制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,则无需使用命令行。
- 登录cPanel,在安全部分下打开SSL/TLS。
- 点击证书签名请求(CSR)。
- 在生成新的证书签名请求(CSR)下,填写上表中的字段。将您的完整域名用作Domains或通用名称的值。
- 点击生成。
cPanel会在下一个界面显示编码后的CSR。复制它用于您的订单。cPanel会在私钥(Private Keys)下为您存储对应的私钥,因此您不必手动保存,但请记下它的位置以便日后安装证书时使用。
如果之后找不到CSR,它仍会保留在同一个证书签名请求界面上,因此您可以再次复制,而无需重新生成。
使用WHM而不是cPanel?操作流程几乎相同,位于SSL/TLS → 生成SSL证书和签名请求下。详细分步指南请见:cPanel和WHM。
方法三:在Windows(IIS)上生成CSR
在运行IIS的Windows服务器上:
- 打开IIS管理器,在左侧面板中选择您的服务器名称。
- 双击服务器证书。
- 在操作面板中,点击创建证书请求。
- 填写可分辨名称字段:通用名称、组织、组织单位、城市、州/省和国家。
- 选择加密提供程序,并将位长设置为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复制到您的证书订单中。证书颁发机构会对其进行验证并颁发您的X.509 SSL证书。
- 安装证书。证书颁发后,请按照我们的如何安装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完全相同,只需将通用名称设置为*.example.com。一张通配符证书即可涵盖所有一级子域名,例如mail.example.com和shop.example.com。如果您还想涵盖不带子域名的example.com本身,请将该裸域名添加为SAN。
您无法从已颁发的证书中取回CSR,但可以使用相同的信息重新创建一个。从您当前的证书中读取主题信息:openssl x509 -in your.crt -noout -subject
如果该证书已在您的站点上正式使用,我们的SSL Checker会显示相同的详细信息。然后使用这些值生成新的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是一段较短的Base64文本,通常约为一千字节,保存为.csr扩展名的文件。它总是以相同的标记行开头和结尾:-----BEGIN CERTIFICATE REQUEST----- MIICvDCCAaQCAQAwdzELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBVRleGFzMQ8wDQYD VQQHDAZBdXN0aW4xFDASBgNVBAoMC0V4YW1wbGUgTExDMRcwFQYDVQQDDA53d3cu ZXhhbXBsZS5jb20... -----END CERTIFICATE REQUEST-----
这段看似混乱的文本编码了您的公钥以及您输入的详细信息。请将从BEGIN到END的全部内容(包括标记行)提交给您的证书颁发机构。与您的私钥不同,CSR可以安全地分享出去:它不包含任何机密材料。








