在 Linux 上使用 OpenSSL “开启 TLS”通常有两种常见场景:
下面分别说明。
先查看版本:
openssl version
TLS 1.2 / 1.3 支持情况:
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 正常。
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes
openssl s_server -cert cert.pem -key key.pem -accept 8443
openssl s_client -connect localhost:8443
✅ 这样就“开启”了一个 TLS 服务。
OpenSSL 本身不“运行服务”,而是被 Nginx / Apache 调用。
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
ssl_protocols TLSv1.2 TLSv1.3;
不要写 SSLv3、TLSv1、TLSv1.1
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,可以告诉我,我给你对应配置。