温馨提示×

怎样生成linux openssl证书

小樊
47
2026-09-01 15:41:31
栏目: 云计算

在 Linux 下使用 OpenSSL 生成证书,常见场景有几种:

  • 自签名证书(测试用)
  • 生成 CA 并签发证书(更接近生产)
  • 生成证书签名请求(CSR)交给第三方 CA

下面按最常用方式一步步说明。


一、生成自签名证书(最简单,适合测试)

1️⃣ 一次性生成私钥 + 自签名证书

openssl req -x509 -newkey rsa:2048 -days 365 -nodes \
  -keyout server.key -out server.crt

参数说明:

  • -x509:生成自签名证书
  • rsa:2048:2048 位 RSA 私钥
  • -days 365:有效期 1 年
  • -nodes:私钥不加密(无密码)
  • server.key:私钥
  • server.crt:证书

执行后会提示输入:

  • Country Name
  • Common Name(域名或 IP,很重要)

二、分开生成(更规范)

1️⃣ 生成私钥

openssl genrsa -out server.key 2048

2️⃣ 生成证书签名请求(CSR)

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

3️⃣ 自签名 CSR

openssl x509 -req -days 365 -in server.csr \
  -signkey server.key -out server.crt

三、生成自己的 CA(推荐用于内部系统)

1️⃣ 生成 CA 私钥和证书

openssl req -x509 -newkey rsa:2048 -days 3650 -nodes \
  -keyout ca.key -out ca.crt

2️⃣ 生成服务器私钥和 CSR

openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr

3️⃣ CA 签发服务器证书

openssl x509 -req -days 365 \
  -in server.csr \
  -CA ca.crt -CAkey ca.key -CAcreateserial \
  -out server.crt

四、查看证书信息

openssl x509 -in server.crt -noout -text

查看 CSR:

openssl req -in server.csr -noout -text

五、Nginx / HTTPS 使用示例

ssl_certificate     /path/server.crt;
ssl_certificate_key /path/server.key;

六、常见注意事项

✅ Common Name 要写对(域名或 IP)
✅ 浏览器不信任自签证书,需手动信任
✅ 生产环境建议使用 Let’s Encrypt
✅ 私钥 *.key 一定要保密


如果你告诉我:

  • 用于 Nginx / Apache / Docker / K8s
  • 是否需要 多域名 / 通配符
  • 本地测试还是生产

我可以给你更精确的命令。

0