证书签名请求生成器

为 SSL 证书生成 CSR 的最新、经过充分测试的工具。

CSR 生成器
填写下面的表单,为 SSL 证书生成 CSR。

选择此证书的预期用途

这是你希望保护的完全限定域名

证书签名使用的哈希算法

用于签署证书的算法

RSA 密钥的位数。更长的密钥更安全,但可能更慢。

自动证书管理

需要管理 SSL 证书?

试用我们的证书管理平台,在 AWS、Azure、GCP 和其他云服务商上自动完成 SSL 证书的申请、部署和续期,让 HTTPS 管理更简单。

工具简介

证书签名请求(CSR)是获取 SSL/TLS 证书的第一步。为网站配置 HTTPS 时,需要先生成 CSR 文件,再提交给证书颁发机构签名。

在线 CSR 生成器让这个过程更简单,也更安全:

  • 完全在本地处理:CSR 全部在浏览器中生成,私钥不会离开你的设备
  • 支持多种算法:支持 RSA(2048/3072/4096 位)和 ECDSA(P-256/P-384/P-521)签名算法
  • 配置灵活:可以添加多个域名(SAN)、通配符域名等
  • 无需安装:不必安装 OpenSSL 或其他命令行工具,直接在浏览器中生成 CSR

安全提示

使用 CSR 生成器时,私钥和 CSR 都在浏览器本地生成,不会上传到任何服务器。此工具可以完全离线使用。

什么时候需要生成 CSR?

以下情况需要生成 CSR:

  1. 购买新的 SSL 证书:首次为域名申请 SSL/TLS 证书
  2. 为即将到期的证书续期:现有证书即将到期,需要重新生成
  3. 更改域名信息:需要修改证书中的域名或组织信息
  4. 密钥可能泄露:如果怀疑私钥泄露,应立即生成新的密钥对和 CSR

如何为 CSR 选择哈希算法

哈希算法用于为证书创建数字签名。选择合适的哈希算法对证书安全很重要。此 CSR 生成器支持三种主流哈希算法:

SHA-256 是目前使用最广的哈希算法,在安全性和性能之间最均衡:

  • 安全性:输出 256 位,足以抵御目前已知的攻击
  • 兼容性:现代浏览器和操作系统都支持
  • 性能:计算速度快,适合大多数场景
  • 建议用途:99% 的情况都应选择它

SHA-384

SHA-384 安全性更高,计算开销也略大:

  • 安全性:输出 384 位,安全余量更大
  • 适用场景:金融、医疗等对安全要求极高的行业
  • 兼容性:现代系统都支持

SHA-512

SHA-512 提供最高级别的安全性:

  • 安全性:输出 512 位,安全保证最强
  • 性能影响:计算和验证相对更慢
  • 适用场景:只有极少数有特殊安全要求的场合需要它

建议

对绝大多数用户,建议使用 SHA-256。除非有特殊合规要求,SHA-256 已经足够安全。

如何为 CSR 选择签名算法

在线生成 CSR 时需要选择签名算法。主要有两种:RSA 和 ECDSA。

RSA 算法

RSA 是最传统、使用最广的签名算法:

优点:

  • 兼容性广:几乎所有设备和浏览器都支持,包括旧系统
  • 成熟稳定:经过数十年实际使用验证
  • 证书颁发机构普遍支持:所有证书颁发机构都支持

缺点:

  • 密钥较长:通常需要 2048 位或 4096 位才能保证安全
  • 性能开销:加密和解密相对较慢
  • 证书较大:生成的证书文件更大

建议的密钥长度:

  • 2048 位:标准选择,安全且性能好,适合大多数场景
  • 4096 位:安全性更高,但性能影响明显,适合高安全要求

ECDSA 算法

ECDSA(椭圆曲线数字签名算法)是更现代的选择:

优点:

  • 密钥更短:256 位 ECDSA 密钥的安全性约相当于 3072 位 RSA 密钥
  • 性能好:签名生成和验证更快
  • 节省带宽:证书更小,传输更快
  • 适合移动设备:更适合资源有限的设备

缺点:

  • 兼容性:部分旧系统可能不支持(例如 Windows XP、Android 4.x 及更早版本)
  • 证书颁发机构支持:部分证书颁发机构可能不支持,或会额外收费

建议的曲线:

  • P-256(secp256r1):标准选择,支持广泛
  • P-384(secp384r1):安全级别更高

应该选哪一个?

建议:RSA 2048

如果网站需要覆盖所有用户(包括使用旧设备的用户),RSA 2048 位是最稳妥的选择。可以用在线 CSR 生成工具轻松创建 RSA 证书签名请求。

建议:ECDSA P-256

移动应用通常对性能和带宽更敏感。ECDSA 体积小、性能高,是合适的选择。现代移动设备都支持 ECDSA。

建议:RSA 2048 或更长

企业环境可能需要支持多种操作系统版本,RSA 的兼容性优势更明显。如果有特殊安全要求,可以选择 RSA 4096。

建议:ECDSA P-256

API 服务通常由现代客户端调用,可以充分利用 ECDSA 的性能优势,缩短 TLS 握手时间。

如何使用 OpenSSL 生成 CSR

在线 CSR 生成器已经很方便,了解如何用命令行生成 CSR 仍然有用。OpenSSL 是最常用的命令行工具。

RSA 证书签名请求

# Generate 2048-bit RSA private key and CSR
openssl req -new -newkey rsa:2048 -nodes \
  -keyout domain.key \
  -out domain.csr

# Generate 4096-bit RSA private key and CSR
openssl req -new -newkey rsa:4096 -nodes \
  -keyout domain.key \
  -out domain.csr

执行后,系统会提示输入以下信息:

  • Country Name(国家或地区代码,例如 US)
  • State or Province(省或州)
  • Locality Name(城市)
  • Organization Name(组织名称)
  • Organizational Unit(部门)
  • Common Name(域名,例如 autossl.dev)
  • Email Address(可选)

先创建配置文件 csr.conf:

# Request configuration section
[req]
default_bits = 2048              # RSA key size in bits
prompt = no                      # Disable interactive prompts
default_md = sha256              # Hash algorithm for signature
distinguished_name = dn          # Reference to DN section below
req_extensions = req_ext         # Reference to extensions section

# Distinguished Name (certificate subject information)
[dn]
C = US                           # Country code
ST = California                  # State or Province
L = San Francisco                # Locality (city)
O = Example Company              # Organization name
CN = autossl.dev                 # Common Name (primary domain)

# Request extensions (additional certificate attributes)
[req_ext]
subjectAltName = @alt_names      # Reference to alternative names section

# Subject Alternative Names (additional domains for this certificate)
[alt_names]
DNS.1 = autossl.dev              # Primary domain
DNS.2 = www.autossl.dev          # Subdomain with www
DNS.3 = *.autossl.dev            # Wildcard for all subdomains

然后生成 CSR:

openssl req -new -nodes \
  -newkey rsa:2048 \
  -keyout domain.key \
  -out domain.csr \
  -config csr.conf
openssl req -new -newkey rsa:2048 -nodes \
  -keyout domain.key -out domain.csr \
  -subj "/C=US/ST=California/L=San Francisco/O=Example Company/CN=autossl.dev"

注意:此方法无法添加 SAN(主体备用名称)。

ECDSA 证书签名请求

# Generate ECDSA private key using P-256 curve
openssl ecparam -genkey -name prime256v1 -out domain.key

# Using P-384 curve
openssl ecparam -genkey -name secp384r1 -out domain.key

# Generate CSR based on private key
openssl req -new -key domain.key -out domain.csr

检查生成的 CSR

生成 CSR 后,可以用以下命令检查内容:

# View detailed CSR information
openssl req -text -noout -in domain.csr

# Verify CSR signature
openssl req -verify -in domain.csr

# Extract domain information from CSR
openssl req -noout -subject -in domain.csr

私钥安全

生成的私钥文件(例如 domain.key)必须妥善保管,不能向任何人泄露。建议设置严格的文件权限:chmod 600 domain.key

常见问题

CSR 和私钥是什么关系?

生成 CSR 时,实际生成的是一对密钥:私钥和公钥。CSR 包含公钥和身份信息,私钥必须保密。证书颁发机构根据 CSR 中的信息签发证书,该证书只能与对应的私钥一起使用。

同一份 CSR 可以重复使用吗?

技术上可以,但不建议。每次申请新证书时,最好生成新的密钥对和 CSR。证书到期或需要重新签发(例如更换证书颁发机构)时,应生成新的证书签名请求。

提交 CSR 之后必须保留什么?

必须保留私钥文件。证书签发后,配置 SSL/TLS 需要这把私钥。如果丢失私钥,即使拿到证书也无法使用,只能重新申请。

在线工具和命令行生成有什么区别?

功能上没有区别。此 CSR 生成器使用 Web Crypto API 在浏览器中生成密钥,结果与 OpenSSL 生成的结果兼容。在线工具的优势是更直观,不需要安装软件,也不需要记忆命令。

最佳实践

  1. 选择密钥长度:RSA 至少使用 2048 位;ECDSA 使用 P-256 或更高
  2. 按时续期:不要等到证书到期再续期,建议提前 30 天续期
  3. 使用 SHA-256:除非有特殊要求,SHA-256 是最合适的选择
  4. 添加 SAN:如果网站有多个域名(例如 autossl.dev 和 www.autossl.dev ),生成 CSR 时把所有域名都加上
  5. 保护私钥:使用严格的文件权限,并考虑加密存储
  6. 备份私钥:把私钥备份到安全的位置,同时确保备份本身也受到保护

现在就可以使用 CSR 生成器,为网站快速、安全地生成证书签名请求。