linux

OpenSSL中如何设置SSL/TLS协议版本

小樊
54
2025-07-03 16:34:56
栏目: 云计算

在OpenSSL中,您可以通过命令行或配置文件来设置SSL/TLS协议版本。以下是两种方法的详细说明:

方法一:通过命令行设置

  1. 生成自签名证书(如果还没有):

    openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
    
  2. 使用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(不推荐,因为存在安全风险)

方法二:通过配置文件设置

  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
    
  2. 使用配置文件生成证书

    openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -config openssl.cnf -days 365 -nodes
    
  3. 启动服务器时指定配置文件

    openssl s_server -cert cert.pem -key key.pem -config openssl.cnf
    

注意事项

通过以上方法,您可以在OpenSSL中灵活地设置SSL/TLS协议版本。

0
看了该问题的人还看了