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

Ubuntu虚拟机安装sslscan遇编译错误:找不到openssl/err.h文件

解决sslscan编译时找不到openssl/err.h的问题

你遇到的核心问题是:编译sslscan时,工具默认去系统标准路径查找OpenSSL文件,但你安装的是自定义分支的openssl-chacha,路径不在默认搜索范围内,导致头文件找不到。下面是一步步的解决方案:

1. 先确认openssl-chacha的安装位置

首先得搞清楚你的openssl-chacha到底装在了哪里。如果是源码编译安装,默认路径通常是/usr/local/ssl。用这条命令检查该路径下是否存在缺失的头文件:

ls -l /usr/local/ssl/include/openssl/err.h
  • 如果输出显示文件存在:说明安装没问题,只是编译sslscan时没指定这个路径;
  • 如果文件不存在:那你需要重新正确安装openssl-chacha。

2. 重新安装openssl-chacha(若需要)

如果刚才的检查发现头文件不存在,按以下步骤重新安装:

  • 先装编译依赖(Ubuntu环境):
    sudo apt update && sudo apt install build-essential git
    
  • 克隆chacha分支源码:
    git clone https://github.com/openssl/openssl.git -b chacha
    cd openssl
    
  • 配置安装路径(指定为/usr/local/ssl方便后续引用):
    ./config --prefix=/usr/local/ssl
    
  • 编译并安装:
    make
    sudo make install
    

3. 配置环境变量,让系统找到自定义OpenSSL

为了让编译工具能识别你安装的openssl-chacha,需要设置环境变量:

  • 临时生效(仅当前终端会话):
    export LD_LIBRARY_PATH=/usr/local/ssl/lib:$LD_LIBRARY_PATH
    export C_INCLUDE_PATH=/usr/local/ssl/include:$C_INCLUDE_PATH
    
  • 永久生效(重启终端后依然有效):
    打开~/.bashrc文件,添加以下两行:
    export LD_LIBRARY_PATH=/usr/local/ssl/lib:$LD_LIBRARY_PATH
    export C_INCLUDE_PATH=/usr/local/ssl/include:$C_INCLUDE_PATH
    
    执行source ~/.bashrc让配置立即生效。

4. 指定OpenSSL路径编译sslscan

回到sslscan的源码目录,执行这条命令编译(把/usr/local/ssl换成你的实际安装路径):

make OPENSSL=/usr/local/ssl

如果你的sslscan Makefile不支持OPENSSL参数,就手动修改Makefile:
打开sslscan目录下的Makefile,找到CFLAGS和LDFLAGS的配置行,修改为:

CFLAGS += -Wall -Wextra -O2 -I/usr/local/ssl/include
LDFLAGS += -L/usr/local/ssl/lib -lssl -lcrypto

修改完再执行make,就能顺利编译了。

5. 验证sslscan是否可用

编译成功后,用这条命令测试:

./sslscan localhost:443

如果能正常输出SSL扫描结果,就说明安装成功了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:43:15