Debian OpenSSL配置选项分类及常见项
Debian系统中,OpenSSL的主配置文件通常位于/etc/ssl/openssl.cnf,所有配置选项均集中在此文件中。修改前建议通过sudo cp /etc/ssl/openssl.cnf /etc/ssl/openssl.cnf.bak备份原始文件,避免误操作导致系统异常。
OpenSSL配置文件采用“节(Section)”结构,不同节对应不同功能模块,以下是常见节及配置选项:
[default_conf](默认配置节)定义全局默认配置,通常指向具体配置节(如openssl_init),是OpenSSL启动时的入口配置。
常见选项:openssl_conf = openssl_init(指定默认配置节为openssl_init)。
[req](证书签名请求(CSR)配置节)用于生成CSR文件(用于向CA申请证书或自签名证书),控制CSR的生成参数。
常见选项:
default_bits = 2048:密钥默认长度(单位:位),推荐使用2048位及以上(如4096位);distinguished_name = req_distinguished_name:指定DN(可辨别名称)的配置节(用于填写证书所有者信息);req_extensions = v3_req:指定CSR扩展配置节(如v3_req,用于添加密钥用途、扩展域名等);string_mask = utf8only:字符集设置,推荐使用UTF-8以支持中文等非ASCII字符。[v3_ca](CA证书配置节)用于定义CA证书的扩展属性(如自签名CA证书),确保证书的合法性和有效性。
常见选项:
subjectKeyIdentifier = hash:主题密钥标识符,自动生成(基于证书主题的哈希值);authorityKeyIdentifier = keyid:always,issuer:颁发者密钥标识符,指向自身密钥ID;basicConstraints = critical, CA:true:基本约束,标记为CA证书(CA:true)且为关键扩展(critical);keyUsage = critical, digitalSignature, cRLSign, keyCertSign:密钥用途,允许CA进行数字签名、CRL签发和证书签发;default_crl_days = 30:CRL(证书吊销列表)有效期(单位:天),推荐30天或更短。[v3_req](CSR扩展配置节)用于定义CSR的扩展属性(如服务器证书的密钥用途、扩展域名),增强证书的功能性。
常见选项:
keyUsage = keyEncipherment, dataEncipherment:密钥用途,适用于服务器证书(keyEncipherment用于加密会话密钥,dataEncipherment用于加密数据);extendedKeyUsage = serverAuth:扩展密钥用途,标记为服务器身份认证(适用于HTTPS等场景);subjectAltName = @alt_names:扩展域名(SAN,Subject Alternative Name),支持多域名或子域名(需在[alt_names]节中定义具体域名)。[alt_names](扩展域名配置节)配合[v3_req]节的subjectAltName选项使用,定义具体的扩展域名列表。
常见选项:
DNS.1 = yourdomain.com:主域名;DNS.2 = www.yourdomain.com:子域名(可根据需求添加多个,如DNS.3 = api.yourdomain.com)。[openssl_init](OpenSSL初始化配置节)用于初始化OpenSSL的全局设置,连接default_conf与具体安全配置。
常见选项:openssl_conf = openssl_init(指向openssl_init_section节)。
[system_default_section](系统默认安全配置节)定义OpenSSL的默认安全策略(如协议版本、加密套件),直接影响SSL/TLS连接的安全性。
常见选项:
SSLProtocol all -SSLv2 -SSLv3:允许的协议版本(启用所有协议,禁用不安全的SSLv2、SSLv3);SSLCipherSuite HIGH:!aNULL:!MD5:加密套件设置(优先选择高强度套件,禁用不安全的aNULL(无身份验证)、MD5(易碰撞)算法);SECLEVEL = 2:安全级别(Debian默认为2,平衡安全性与兼容性,级别越高限制越严格)。除安全配置外,OpenSSL的性能可通过以下配置选项优化(通常位于/etc/ssl/openssl.cnf或专用性能配置节):
[session_cache]节)启用会话缓存可减少SSL/TLS握手次数,提升重复连接的性能。
常见选项:
session_cache_mode = servers, shared, TLSv1.2:缓存模式(servers表示服务器端缓存,shared表示共享缓存,TLSv1.2指定支持的协议版本);session_cache_size = 102400:缓存大小(单位:字节,推荐100KB及以上)。[mem]节)调整内存使用上限,避免因内存不足导致性能下降。
常见选项:max_total_cache_size = 104857600:最大总缓存大小(单位:字节,推荐100MB及以上)。
[openssl_init]节)若系统支持AES-NI等硬件加速指令集,可启用以提升加密/解密性能。
常见选项:ssl_options = enable_tls1_3(同时需确保协议版本支持,如SSLProtocol中包含TLSv1.3)。
sudo systemctl restart openssl)使更改生效;sudo apt update && sudo apt upgrade openssl),修复已知安全漏洞。