Perl脚本迁移后出现SSL_verify_mode警告,如何消除该提示?
解决Perl REST API脚本SSL_verify_mode弃用警告的方案
- 移除废弃的环境变量设置:原代码里的
$ENV{'PERL_LWP_SSL_VERIFY_HOSTNAME'} = 0;在LWP::UserAgent 6.x版本已被标记为废弃,这就是警告的直接来源,直接删掉这行代码。 - 显式配置LWP::UserAgent的SSL参数:
如果脚本直接使用LWP::UserAgent实例,替换为以下方式设置SSL选项:use IO::Socket::SSL; my $ua = LWP::UserAgent->new; $ua->ssl_opts( SSL_verify_mode => SSL_VERIFY_NONE, verify_hostname => 0, ); - 适配REST::Client场景:
由于REST::Client底层依赖LWP::UserAgent,先创建配置好SSL参数的UA实例,再传入REST::Client:use IO::Socket::SSL; use LWP::UserAgent; use REST::Client; my $ua = LWP::UserAgent->new; $ua->ssl_opts( SSL_verify_mode => SSL_VERIFY_NONE, verify_hostname => 0, ); my $client = REST::Client->new({ useragent => $ua }); - 关键说明:
- 当前使用的IO::Socket::SSL 1.94完全支持上述
verify_hostname参数,和旧机器版本兼容,无需升级模块。 - 必须彻底移除原有的环境变量设置,否则警告仍会触发。
- 这种显式配置的方式是LWP官方推荐的替代方案,比依赖环境变量更清晰可控。
- 当前使用的IO::Socket::SSL 1.94完全支持上述
内容的提问来源于stack exchange,提问作者Denis.A
相关产品推荐
相关产品推荐

