温馨提示×

linux openssl怎么配置ssl

小樊
44
2026-10-10 11:15:10
栏目: 云计算

在 Linux 上使用 OpenSSL 配置 SSL(通常指 TLS) 一般包含以下几个步骤:生成私钥、生成证书签名请求(CSR)、自签或申请 CA 签发证书,然后在服务端(如 Nginx / Apache)中配置使用。

下面以 Nginx + 自签名证书 为例,完整说明流程。


一、安装 OpenSSL

大多数 Linux 已自带:

openssl version

如未安装:

# CentOS / RHEL
yum install openssl -y

# Ubuntu / Debian
apt install openssl -y

二、生成 SSL 证书(自签名)

1️⃣ 生成私钥

openssl genrsa -out server.key 2048

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

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

按提示填写:

  • Country
  • State
  • Organization
  • Common Name(必须填域名或 IP)

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

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

✅ 生成文件:

  • server.key(私钥)
  • server.crt(证书)

三、Nginx 配置 SSL

1️⃣ 移动证书文件

mkdir -p /etc/nginx/ssl
mv server.key server.crt /etc/nginx/ssl/

2️⃣ 编辑 Nginx 配置

server {
    listen 443 ssl;
    server_name example.com;

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

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    location / {
        root /usr/share/nginx/html;
        index index.html;
    }
}

3️⃣ 测试并重载

nginx -t
systemctl reload nginx

四、Apache 配置 SSL(简要)

<VirtualHost *:443>
    ServerName example.com
    SSLEngine on
    SSLCertificateFile /etc/httpd/ssl/server.crt
    SSLCertificateKeyFile /etc/httpd/ssl/server.key
</VirtualHost>

五、使用 CA 签发证书(生产环境)

生产环境不建议自签名,可使用:

  • Let’s Encrypt(免费)
certbot --nginx
  • 或向正规 CA 提交 CSR

六、常见问题

❓ 浏览器提示不安全

因为是自签名证书,需手动信任。

❓ 私钥权限问题

chmod 600 server.key

如果你告诉我:

  • 使用的 Linux 发行版
  • Web 服务(Nginx / Apache / 其他)
  • 是否用于 公网 / 内网 / 本地测试

我可以给你更精确的配置示例。

0 踩