温馨提示×

linux openssl怎样支持tls

小樊
44
2026-09-16 18:11:13
栏目: 云计算

在 Linux 上让 OpenSSL 支持 TLS,通常分三种情况来理解:
1️⃣ 系统已有 OpenSSL 且支持 TLS(最常见)
2️⃣ 编译/升级 OpenSSL 以启用或新增强版本 TLS
3️⃣ 在应用中使用 OpenSSL 启用 TLS(如 Nginx、curl、自写程序)

下面按场景说明。


一、确认 OpenSSL 是否已支持 TLS

1. 查看 OpenSSL 版本

openssl version

常见版本支持情况:

  • OpenSSL 1.0.2:支持 TLS 1.0 / 1.1 / 1.2
  • OpenSSL 1.1.1:支持 TLS 1.0–1.3 ✅
  • OpenSSL 3.x:支持 TLS 1.2 / 1.3(默认禁用旧 TLS)

2. 查看支持的 TLS 版本

openssl ciphers -v | grep TLS

或测试 TLS:

openssl s_client -connect example.com:443 -tls1_2
openssl s_client -connect example.com:443 -tls1_3

二、启用/使用 TLS(命令行示例)

1. 启动一个 TLS 测试服务端

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

2. 客户端连接(TLS)

openssl s_client -connect localhost:8443 -tls1_2

三、编译 OpenSSL 以全面支持 TLS(推荐方式)

1. 安装依赖

sudo apt update
sudo apt install build-essential libssl-dev

2. 下载并编译 OpenSSL(以 1.1.1 为例)

wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz
tar xzf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w

./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
make
sudo make install

3. 配置系统使用新 OpenSSL

echo "/usr/local/openssl/lib" | sudo tee /etc/ld.so.conf.d/openssl.conf
sudo ldconfig

四、应用层启用 TLS(常见服务)

Nginx 启用 TLS 1.2 / 1.3

server {
    listen 443 ssl;
    ssl_certificate     /path/cert.pem;
    ssl_certificate_key /path/key.pem;

    ssl_protocols TLSv1.2 TLSv1.3;
}

curl 使用 TLS

curl --tlsv1.2 https://example.com
curl --tlsv1.3 https://example.com

五、常见问题

❌ 不支持 TLS 1.3

  • OpenSSL < 1.1.1
  • 解决方法:升级 OpenSSL

❌ 旧系统只支持 TLS 1.0

  • CentOS 6 / 老旧发行版
  • 需要手动编译新版 OpenSSL

❌ “protocol is disabled”

  • OpenSSL 3.x 默认禁用 TLS 1.0/1.1
  • 需修改配置或重新编译

六、一句话总结

Linux 上 OpenSSL 支持 TLS 的关键是:使用 OpenSSL ≥ 1.1.1,并在应用/配置中明确启用 TLS 协议版本。

如果你有具体场景(如 Nginx、Python、C 程序、内网服务等),可以告诉我,我可以给你更精准的配置示例。

0