15%

全场主机优惠15%

测试技能,享折扣

使用代码:

Skills
开始使用
30.10.2024
2 +1

什么是CSR以及如何创建?完整的分步指南

使用HTTPS保护您的网站已不再是可选项——它是用户信任、数据保护和搜索引擎排名的基本要求。每次SSL/TLS证书颁发的核心是一个关键但常被误解的组件:证书签名请求(CSR)。无论您是开发人员、系统管理员还是网站所有者,了解如何正确生成和提交CSR可以为您节省数小时的故障排查时间,并确保您的网站得到妥善保护。

在本综合指南中,我们将详细解释CSR是什么、为何重要,并带您了解多种创建方法——包括OpenSSL、cPanel和IIS。

什么是CSR(证书签名请求)?

A 证书签名请求(CSR)是一段Base64编码的文本,您在服务器上生成后提交给证书颁发机构(CA)——例如Let’s Encrypt、DigiCert或Sectigo——以申请SSL证书。CA读取CSR中嵌入的信息,并使用这些信息颁发数字签名证书,从而为您的域名启用HTTPS。

可以将CSR视为一份正式申请表:它告诉CA您是谁、您想保护哪个域名,并提供将嵌入最终证书的加密公钥。

CSR包含哪些信息?

标准CSR包含以下字段:

字段描述示例
通用名称(CN)要保护的完全限定域名(FQDN)www.example.com
组织名称(O)公司或个人的法定名称Example Corp Ltd
组织单位(OU)部门或分部(可选)IT Department
所在地(L)组织所在城市New York
州/省(ST)完整的州或省名称New York
国家(C)两字母ISO国家代码US
电子邮件地址联系邮箱(可选)admin@example.com
公钥用于加密的加密密钥RSA 2048位或更高

> 重要提示:CSR包含您的私钥。私钥与CSR一同生成,但必须始终安全存储在您的服务器上,绝不与任何人共享——包括CA。

为什么CSR很重要?

了解CSR的作用有助于理解为什么每次SSL证书颁发都从这一步骤开始。

1. 它启动SSL证书请求

没有CSR,CA就无法知道您想保护哪个域名、谁拥有它,或者要在证书中嵌入哪个公钥。CSR是启动整个证书颁发工作流程的正式机制。

2. 它建立加密基础

CSR包含您的公钥,它与您的私钥在数学上配对。这两个密钥共同构成SSL/TLS的非对称加密基础。当浏览器连接到您的服务器时,它使用公钥(来自证书)加密数据,您的服务器使用私钥解密——确保第三方无法拦截通信。

3. 它实现身份验证

根据您申请的SSL证书类型,CA将使用CSR中的信息执行不同级别的身份验证:

  • 域名验证(DV):CA仅验证您控制该域名。快速且自动化。
  • 组织验证(OV):CA除验证域名控制权外,还验证您组织的法律存在。
  • 扩展验证(EV):最严格的审查——CA验证法律身份、实际地址和运营状态。

如果您运营的是企业网站或电子商务平台,选择正确的验证级别至关重要。您可以浏览AlexHost的SSL证书系列,找到最符合您安全需求的选项。

如何创建CSR:分步说明

创建CSR涉及两个主要步骤:生成私钥,然后使用该密钥生成CSR文件。以下介绍最常见的方法。

方法1:使用OpenSSL(Linux、macOS、Windows)

OpenSSL是生成CSR最广泛使用且普遍可用的工具。它适用于Linux服务器、macOS和Windows(需安装OpenSSL)。

#### 步骤1:生成私钥

打开终端(或Windows上的命令提示符)并运行以下命令:

openssl genrsa -out private.key 2048

此命令的作用:

  • genrsa — 生成RSA私钥
  • -out private.key — 将密钥保存到名为private.key的文件
  • 2048 — 指定密钥长度(位数)(2048位是最低推荐值;使用4096位可获得更高安全性)

> 安全提示:private.key存储在安全的、访问受限的目录中。切勿将其上传到公共位置或通过电子邮件共享。

#### 步骤2:生成CSR

创建私钥后,运行以下命令生成CSR:

openssl req -new -key private.key -out yourdomain.csr

OpenSSL将提示您以交互方式填写CSR字段:

Country Name (2 letter code) [AU]: US
State or Province Name (full name) [Some-State]: California
Locality Name (eg, city) []: San Francisco
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Example Corp Ltd
Organizational Unit Name (eg, section) []: IT Department
Common Name (e.g. server FQDN or YOUR name) []: www.example.com
Email Address []: admin@example.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

> 专业提示:除非您的CA明确要求,否则将”challenge password”留空。在大多数现代工作流程中,它增加了复杂性但没有实质性的安全益处。

完成后,您的CSR将保存到yourdomain.csr。您可以使用以下命令查看其内容:

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

#### 步骤3:在单个命令中同时生成密钥和CSR

为提高效率,您可以将步骤1和步骤2合并为一个命令:

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

这将同时生成私钥和CSR,并提示您输入相同的字段信息。

#### 步骤4:将CSR提交给您的证书颁发机构

在文本编辑器中打开yourdomain.csr文件,复制其全部内容——包括-----BEGIN CERTIFICATE REQUEST----------END CERTIFICATE REQUEST-----行。在购买或续期SSL证书时,将其粘贴到CA的提交表单中。

#### 步骤5:保护您的私钥

收到并安装SSL证书后,确保private.key

  • 以受限文件权限存储(Linux上为chmod 600 private.key
  • 在安全的加密位置备份
  • 绝不通过不安全的渠道传输

如果私钥丢失或泄露,您必须生成新的密钥对、创建新的CSR并申请重新颁发证书。

方法2:使用cPanel(共享主机和VPS)

如果您的托管环境使用cPanel,您可以直接通过图形界面生成CSR——无需命令行经验。这对于使用共享虚拟主机带cPanel的VPS的用户来说非常理想。

步骤:

  1. 登录您的cPanel账户。
  2. 导航到安全部分,点击SSL/TLS
  3. 证书签名请求(CSR)下,点击“生成、查看或删除SSL证书签名请求。”
  4. 填写CSR表单字段:
  • 密钥大小:选择2048(推荐)或4096位
  • 域名:输入您的FQDN(例如,www.example.com
  • 城市、州、国家:您组织的位置详情
  • 公司和部门:法定组织名称和部门
  • 电子邮件:联系邮箱地址
  1. 点击生成
  2. cPanel将显示您的CSR。复制完整文本并提交给您的CA。

> cPanel还会自动存储您的私钥并将其与CSR关联,从而简化后续的证书安装步骤。

方法3:在Windows Server上使用IIS

对于在带有Internet Information Services(IIS)的Windows Server上管理网站的管理员,IIS管理器提供了内置的CSR生成向导。

步骤:

  1. 打开IIS管理器inetmgr)。
  2. 在左侧的连接面板中,选择您的服务器名称(而非特定站点)。
  3. 在中间面板中,双击服务器证书
  4. 在右侧的操作面板中,点击创建证书请求…
  5. 填写可分辨名称属性
  • 通用名称、组织、组织单位、城市、州、国家
  1. 点击下一步
  2. 加密服务提供程序属性页面:
  • 加密服务提供程序:Microsoft RSA SChannel Cryptographic Provider
  • 位长度:2048(最低)或4096
  1. 点击下一步,选择保存CSR的文件路径,然后点击完成
  2. 打开保存的.txt文件,复制其内容并提交给您的CA。

> 注意:IIS在内部存储待处理的私钥。在成功安装颁发的证书之前,请勿从IIS管理器中删除待处理的请求。

CSR生成:方法快速比较

方法平台技能水平最适合
OpenSSL CLILinux、macOS、Windows中级开发人员、系统管理员、VPS用户
cPanel GUI任何基于cPanel的主机初级共享主机、托管VPS用户
IIS管理器Windows Server中级基于Windows的Web服务器

常见CSR错误及避免方法

即使是经验丰富的管理员在生成CSR时也偶尔会出错。以下是最常见的陷阱:

  1. 使用错误的通用名称:CN必须与您想保护的域名完全匹配。对于通配符证书,使用*.example.com。对于多域名(SAN)证书,您CA的界面将单独处理其他域名。
  1. 缩写州/省字段:始终拼写完整名称(例如,”California”而非”CA”)。某些CA会拒绝缩写条目。
  1. 丢失私钥:CSR和私钥是配对的。如果在安装证书之前丢失私钥,您需要重新开始。
  1. 使用低于2048位的密钥大小:现代CA和浏览器要求最低2048位RSA密钥。使用更小的密钥将导致拒绝或浏览器警告。
  1. 重复使用旧CSR:每次新的证书请求或续期时,始终生成新的CSR。重复使用CSR可能带来安全风险,且某些CA可能会拒绝。

CSR之后:安装您的SSL证书

一旦您的CA验证了CSR并颁发了证书,您将收到一个或多个.crt.pem文件。安装步骤因平台而异:

  • Linux上的Apache/Nginx:在虚拟主机配置中配置证书文件路径
  • cPanel:使用SSL/TLS管理器将证书与匹配的私钥一起安装
  • IIS:在IIS管理器中使用”完成证书请求”导入颁发的证书
  • Plesk / DirectAdmin:使用内置的SSL证书管理界面

对于使用VPS主机独立服务器的用户,您拥有完整的root访问权限,可以直接通过命令行或您首选的控制面板管理证书安装。

关于CSR的常见问题

我可以将一个CSR用于多个证书吗?

技术上可以,但强烈不建议这样做。每次证书请求都应使用新生成的CSR和密钥对,以保持适当的安全卫生。

CSR的有效期是多长?

CSR本身不会过期,但由其颁发的证书会过期(现代SSL证书通常为1年)。每次续期证书时,您应该生成新的CSR。

CSR和证书有什么区别?

CSR是您获取证书的*请求*。证书是CA颁发的*文件*,用CA的私钥签名,受浏览器信任。

Let’s Encrypt需要CSR吗?

Let’s Encrypt的ACME协议(由Certbot等工具使用)在后台自动处理CSR生成。但是,如果需要,您也可以提供自定义CSR。

结论

证书签名请求(CSR)是为您的网站获取SSL/TLS证书的必要第一步。它将您的公钥和组织身份打包成标准化格式,证书颁发机构使用该格式颁发受信任的证书——启用HTTPS、加密用户数据并建立访客信任。

无论您是在Linux VPS上使用OpenSSL、在共享主机计划上使用cPanel图形界面,还是在Windows Server上使用IIS管理器,该过程都遵循相同的基本原则:生成安全的私钥、使用准确信息创建CSR、将其提交给CA,并在整个过程中保护您的私钥。

准备好保护您的网站了吗?浏览AlexHost的SSL证书,提供适合各种项目规模和预算的选项——从基本域名验证到企业环境的扩展验证证书。将您的SSL证书与可靠的VPS主机独立服务器配合使用,确保您的基础设施与您的安全态势同样稳健。

15%

全场主机优惠15%

测试技能,享折扣

使用代码:

Skills
开始使用