温馨提示×

linux openssl怎样开启tls

小樊
44
2026-09-10 13:23:22
栏目: 云计算

在 Linux 上使用 OpenSSL “开启 TLS”通常有两种常见场景:

  1. 用 OpenSSL 测试/启用 TLS(客户端或服务器)
  2. 在服务器程序(如 Nginx、Apache)中通过 OpenSSL 开启 TLS

下面分别说明。


一、确认 OpenSSL 已支持 TLS

先查看版本:

openssl version

TLS 1.2 / 1.3 支持情况:

  • OpenSSL ≥ 1.1.1:支持 TLS 1.3
  • OpenSSL ≥ 1.0.2:支持 TLS 1.2

二、使用 OpenSSL 命令行测试 TLS(最常见)

1️⃣ 测试服务器是否开启 TLS(客户端)

openssl s_client -connect example.com:443 -servername example.com

指定 TLS 版本:

# TLS 1.2
openssl s_client -connect example.com:443 -tls1_2

# TLS 1.3
openssl s_client -connect example.com:443 -tls1_3

看到 Verify return code: 0 (ok) 说明 TLS 正常。


2️⃣ 用 OpenSSL 启动一个简单的 TLS 服务器(测试用)

生成自签名证书

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes

启动 TLS 服务端

openssl s_server -cert cert.pem -key key.pem -accept 8443

客户端连接

openssl s_client -connect localhost:8443

✅ 这样就“开启”了一个 TLS 服务。


三、在 Web 服务中通过 OpenSSL 开启 TLS(真实环境)

OpenSSL 本身不“运行服务”,而是被 Nginx / Apache 调用。

Nginx 示例(TLS 1.2 + 1.3)

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate     /etc/ssl/certs/cert.pem;
    ssl_certificate_key /etc/ssl/private/key.pem;

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

重启 Nginx:

systemctl restart nginx

四、常见问题

❓ 如何只启用 TLS(禁用 SSL)

ssl_protocols TLSv1.2 TLSv1.3;

不要写 SSLv3TLSv1TLSv1.1


❓ 如何确认是否用了 TLS 1.3

openssl s_client -connect example.com:443 -tls1_3

五、总结

场景 命令
测试 TLS openssl s_client
启动 TLS 服务 openssl s_server
Web 开启 TLS Nginx / Apache + OpenSSL
生成证书 openssl req -x509

如果你指的是 某个具体服务(Nginx / MySQL / Redis / SSH)如何开启 TLS,可以告诉我,我给你对应配置。

0