Arch Linux下安装Crypt::SSLeay失败,无法运行SSL版nikto求助
解决Arch Linux本地Perl环境下SSL相关模块安装问题
1. 修复sudo找不到cpan的问题
本地安装的Perl默认不会加入sudo的PATH,直接指定cpan的绝对路径即可。先定位本地Perl的bin目录:
which perl
假设输出为/home/your_user/perl5/perlbrew/perls/perl-5.40.0/bin/perl,则cpan的路径为该目录下的cpan,用sudo执行时写绝对路径:
sudo /home/your_user/perl5/perlbrew/perls/perl-5.40.0/bin/cpan
也可临时将本地Perl的bin目录加入sudo的PATH:
sudo PATH="$PATH:/home/your_user/perl5/perlbrew/perls/perl-5.40.0/bin" cpan
2. 解决Crypt::SSLeay/Net::SSL编译时SSLv3函数未定义的错误
Arch Linux默认使用OpenSSL 3.x,该版本已移除SSLv3相关API,旧版本的Crypt::SSLeay依赖这些API,按以下步骤解决:
- 先安装系统级OpenSSL开发包:
sudo pacman -S openssl
- 安装Crypt::SSLeay时指定OpenSSL路径参数:
PERL_MM_OPT="LIBS=-L/usr/lib64 OPENSSL_PREFIX=/usr" cpan Crypt::SSLeay
- 若仍失败,可强制跳过测试(应急方案,不推荐长期使用):
cpan -f -i Crypt::SSLeay
3. 解决Net::SSLeay安装后无法查询的问题
先确认Net::SSLeay是否真的安装成功:
perl -MNet::SSLeay -e 'print "Installed\n"'
若输出Installed,说明模块已安装,只是cpan shell索引未刷新,执行以下命令更新索引:
cpan reload index
之后再执行r Net::SSLeay即可查询到。若上述命令报错,说明安装未完成,重新安装Net::SSLeay:
PERL_MM_OPT="LIBS=-L/usr/lib64 OPENSSL_PREFIX=/usr" cpan Net::SSLeay
4. 解决LWP::Protocol::https依赖问题
直接安装缺失的依赖模块:
cpan IO::Socket::SSL IO::Socket::SSL::Utils
安装完成后重新安装LWP::Protocol::https:
cpan LWP::Protocol::https
5. 验证nikto的SSL支持
完成所有模块安装后,测试nikto的SSL扫描功能:
nikto -h https://example.com
若能正常执行扫描,说明SSL支持已生效。
内容的提问来源于stack exchange,提问作者rustymanito
相关产品推荐
相关产品推荐

