温馨提示×

linux openssl怎么部署证书

小樊
39
2026-10-19 05:16:32
栏目: 云计算

在 Linux 上使用 OpenSSL 部署证书,通常分为 生成证书(或申请证书) 和 在服务中配置证书 两部分。下面按常见场景给你一个完整、实用的说明。


一、使用 OpenSSL 生成自签名证书(最常用)

1. 生成私钥

openssl genrsa -out server.key 2048

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

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

填写信息示例:

  • Country:CN
  • Common Name:你的域名(如 www.example.com)

3. 生成自签名证书(有效期 365 天)

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

✅ 得到三个文件:

  • server.key(私钥)
  • server.csr(证书请求)
  • server.crt(证书)

二、部署到常见服务

✅ Nginx 部署 HTTPS 证书

  1. 将文件放到目录:
/etc/nginx/ssl/server.crt
/etc/nginx/ssl/server.key
  1. 修改 Nginx 配置:
server {
    listen 443 ssl;
    server_name www.example.com;

    ssl_certificate     /etc/nginx/ssl/server.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;

    location / {
        root /var/www/html;
        index index.html;
    }
}
  1. 测试并重载:
nginx -t
systemctl reload nginx

✅ Apache 部署证书

cp server.crt /etc/ssl/certs/
cp server.key /etc/ssl/private/

配置:

<VirtualHost *:443>
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/server.crt
    SSLCertificateKeyFile /etc/ssl/private/server.key
    ServerName www.example.com
</VirtualHost>
systemctl restart apache2

三、使用 CA 签发证书(正式环境)

如果你是 真实公网证书(如 Let’s Encrypt):

Let’s Encrypt(推荐)

apt install certbot
certbot --nginx

自动生成:

  • /etc/letsencrypt/live/域名/fullchain.pem
  • /etc/letsencrypt/live/域名/privkey.pem

四、查看和验证证书

查看证书信息

openssl x509 -in server.crt -noout -text

测试 HTTPS

openssl s_client -connect www.example.com:443

五、常见问题

❌ 浏览器提示不安全
→ 自签名证书正常,需手动信任

❌ 私钥权限错误

chmod 600 server.key

❌ 域名不匹配
→ Common Name 或 SAN 必须和访问域名一致


如果你能告诉我:

  • 用的是什么服务(Nginx / Apache / Tomcat / Docker)
  • 是内网还是公网
  • 自签名还是正式证书

我可以直接给你 针对性配置示例。

0 踩