温馨提示×

linux openssl怎样生成csr

小樊
34
2026-10-19 05:15:31
栏目: 云计算

在 Linux 下使用 OpenSSL 生成 CSR(证书签名请求) 通常分几种常见场景。下面给你最常用、最清晰的做法。


一、生成私钥 + CSR(最常用)

1️⃣ 生成私钥并同时生成 CSR

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

说明:

  • rsa:2048:2048 位 RSA 私钥(也可 4096)
  • -nodes:私钥不加密(无密码)
  • domain.key:生成的私钥
  • domain.csr:生成的 CSR

执行后会提示输入:

  • Country Name (CN)
  • State or Province
  • Locality
  • Organization Name
  • Organizational Unit
  • Common Name(域名或 IP,最重要)
  • Email Address

二、已有私钥,只生成 CSR

如果你已经有私钥(如 domain.key):

openssl req -new -key domain.key -out domain.csr

三、使用配置文件生成 CSR(推荐生产环境)

1️⃣ 创建配置文件 csr.conf

[req]
default_bits       = 2048
prompt             = no
default_md         = sha256
distinguished_name = dn
req_extensions     = v3_req

[dn]
C  = CN
ST = Beijing
L  = Beijing
O  = My Company
OU = IT
CN = example.com

[v3_req]
subjectAltName = @alt_names

[alt_names]
DNS.1 = example.com
DNS.2 = www.example.com

2️⃣ 生成 CSR

openssl req -new -key domain.key \
-config csr.conf -out domain.csr

四、生成 EC(椭圆曲线)密钥 + CSR(更现代)

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

五、查看 CSR 内容(验证)

openssl req -in domain.csr -noout -text

六、常见用途对照

用途 命令
Web 服务器证书 Common Name = 域名
多域名 使用 SAN(subjectAltName)
本地测试 CN = localhost
企业内部 O / OU 填写公司信息

如果你告诉我:

  • 是 Nginx / Apache / Tomcat
  • 是否需要 多域名 / 通配符
  • 是否用于 内网 / 公网

我可以直接帮你写出可用的命令或配置文件。

0 踩