在OpenSSL中,您可以通过命令行或配置文件来设置SSL/TLS协议版本。以下是两种方法的详细说明:
生成自签名证书(如果还没有):
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
使用openssl s_client测试连接:
openssl s_client -connect example.com:443 -tls1_2
这里的-tls1_2指定了使用TLS 1.2协议。您可以根据需要更改为其他版本,例如:
-tls1_3:使用TLS 1.3-tls1:使用TLS 1.0(不推荐,因为存在安全风险)-tls1_1:使用TLS 1.1(不推荐,因为存在安全风险)创建或编辑OpenSSL配置文件(通常是openssl.cnf):
[req]
default_bits = 2048
prompt = no
default_md = sha256
distinguished_name = dn
[dn]
C=US
ST=State
L=City
O=Organization
OU=Organizational Unit
CN=Common Name
[v3_req]
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = example.com
[ssl_server]
min_proto_version = TLSv1.2
max_proto_version = TLSv1.3
使用配置文件生成证书:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -config openssl.cnf -days 365 -nodes
启动服务器时指定配置文件:
openssl s_server -cert cert.pem -key key.pem -config openssl.cnf
通过以上方法,您可以在OpenSSL中灵活地设置SSL/TLS协议版本。