You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenSSL:如何缩小/etc/ssl/openssl.cnf中Options配置的生效范围

缩小UnsafeLegacyServerConnect配置生效范围的方法

方法1:为目标PHP邮件应用单独指定自定义OpenSSL配置文件

这种方法仅让你的PHP邮件应用加载允许旧重协商的配置,不影响服务器上的其他应用:

  • 复制全局OpenSSL配置到专属路径:
    cp /etc/ssl/openssl.cnf /usr/local/etc/php-mail-openssl.cnf
    
  • 编辑这个新配置文件,在末尾添加以下内容:
    [openssl_init]
    ssl_conf = ssl_sect
    
    [ssl_sect]
    system_default = system_default_sect
    
    [system_default_sect]
    Options = UnsafeLegacyServerConnect
    
  • 让PHP应用加载该自定义配置:
    • 若使用PHP-FPM,编辑对应FPM池配置文件(如/usr/local/etc/php-fpm.d/www.conf),添加一行:
      env[OPENSSL_CONF] = /usr/local/etc/php-mail-openssl.cnf
      
    • 若为CLI模式运行的脚本,在启动前设置环境变量:
      export OPENSSL_CONF=/usr/local/etc/php-mail-openssl.cnf
      php /path/to/your/mail/app.php
      
  • 重启PHP-FPM或重新启动脚本,配置即可生效。

方法2:通过本地代理中转请求(临时场景适用)

如果无法修改PHP应用的配置,可以用openssl s_client搭建本地代理,仅让中转流量启用旧重协商:

  • 以SMTP为例,创建脚本监听本地端口(如2525),转发到目标旧服务器:
    # 监听本地2525端口,转发到目标SMTP服务器的25端口
    openssl s_client -connect old-smtp-server:25 -config /usr/local/etc/php-mail-openssl.cnf -listen 2525
    
  • 修改PHP邮件应用的服务器地址为localhost:2525,流量会通过代理中转并启用旧重协商支持。

注意事项

  • 始终避免全局启用UnsafeLegacyServerConnect,否则会让所有SSL连接暴露在中间人攻击风险下。
  • 优先尝试升级目标SMTP/IMAP服务器,使其支持RFC5746安全重协商,从根源解决问题。

内容的提问来源于stack exchange,提问作者yasu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 21:57:27