温馨提示×

linux openssl如何启用tls

小樊
41
2026-07-29 09:22:17
栏目: 云计算

在 Linux 上,OpenSSL 本身不需要“启用 TLS”,而是在使用 OpenSSL 的程序或命令中指定 TLS 协议。下面分几种常见场景说明。


一、确认 OpenSSL 是否支持 TLS

openssl version -a

查看输出中是否包含 TLS 字样,或查看支持的协议:

openssl s_client -help 2>&1 | grep -i tls

✅ 现代 Linux(CentOS 7+/Ubuntu 18.04+)默认支持 TLS 1.2 / TLS 1.3


二、使用 OpenSSL 命令行启用 TLS(最常用)

1️⃣ TLS 客户端(连接服务器)

openssl s_client -connect example.com:443 -tls1_2

或 TLS 1.3:

openssl s_client -connect example.com:443 -tls1_3

不加版本时,OpenSSL 会自动协商最高可用 TLS 版本。


2️⃣ TLS 服务端(测试用)

生成测试证书

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

启动 TLS 服务

openssl s_server \
  -cert server.crt \
  -key server.key \
  -accept 8443 \
  -tls1_2

✅ 这里 -tls1_2 表示启用 TLS 1.2


三、查看支持的 TLS 版本

openssl ciphers -v | grep TLS

四、在程序中启用 TLS(举例)

1️⃣ Nginx(OpenSSL + TLS)

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate     server.crt;
    ssl_certificate_key server.key;

    ssl_protocols TLSv1.2 TLSv1.3;
}

✅ 重启 Nginx 后生效


2️⃣ OpenSSL 库(C 程序)

SSL_CTX *ctx = SSL_CTX_new(TLS_client_method());

或指定版本:

SSL_CTX_new(TLSv1_2_client_method());

五、禁用不安全协议(重要)

❌ 不要启用:

  • SSLv2
  • SSLv3

✅ 推荐:

  • TLS 1.2
  • TLS 1.3

六、常见问题

❓ OpenSSL 没有 TLS 选项?

  • OpenSSL 版本太旧(< 1.0.2)
  • 升级:
yum install openssl
# 或
apt install openssl

❓ 如何强制 TLS 1.3?

openssl s_client -tls1_3 -connect host:443

七、总结一句话

OpenSSL 默认支持 TLS,只需要在命令或配置中指定 TLS 版本即可。

如果你有具体场景(如:
✅ HTTPS 服务
✅ 邮件 TLS
✅ 自签名证书
✅ Docker / Kubernetes
✅ 程序调用 OpenSSL)

可以告诉我,我可以给你精确到配置文件的示例

0