epi052/feroxbuster · error
:SSL
Error message
:SSL: {e} What it means
make_request classifies reqwest errors after a failed call. When the error is identified as a certificate error (is_certificate_error), it is logged, counted as a Certificate error in stats, and bailed with the ':SSL: {e}' prefix so callers and users can immediately recognize TLS-level failures.
Solutions
- Re-run with --insecure (-k) to disable certificate verification
- Install the host's CA certificate into the system trust store
- Verify the certificate with openssl s_client -connect host:443 to see the actual defect
- If scanning through a proxy, configure the proxy's CA as trusted
Example fix
// before feroxbuster -u https://self-signed.internal // after feroxbuster -u https://self-signed.internal --insecure
Defensive patterns
Strategy: try-catch
Validate before calling
echo | openssl s_client -connect target:443 -servername target 2>/dev/null | openssl x509 -noout -dates -subject
Try / catch
// run with --insecure when self-signed certs are expected: // feroxbuster -u https://host --insecure // or pre-validate TLS and skip such hosts
Prevention
- Use -k/--insecure for internal self-signed hosts
- Trust your MITM proxy's CA in the OS store
- Check certificate expiry before scanning
When it happens
Trigger: reqwest returns an error where is_certificate_error(&e) is true - expired/invalid/self-signed certificates, hostname mismatch, unknown CA - during make_request (used by check_for_updates, process_response, extract requests, and normal scans).
Common situations: Scanning internal hosts with self-signed certs, MITM proxies presenting their own certificate, expired certificates, or SNI/hostname mismatches.
Understand the failure class
- SSL/TLS and certificate errors — how TLS handshakes and certificate validation fail.
Related errors
- JSON has no tag_name
- Could not connect to any target provided
- [ ] Unable to download wordlist from url
- err.to_string()
- Could not find any live targets to scan
AI-assisted analysis of epi052/feroxbuster@1f595dab5c (2026-09-13).
Data as JSON: /api/errors/8089ded2e9a67f15.
Report an issue: GitHub.
Appendix: source
Thrown at src/utils.rs:311
let report = create_report_string(
&msg_status,
method,
"-1",
"-1",
"-1",
&fancy_message,
output_level,
);
send_command!(tx_stats, AddError(Redirection));
ferox_print(&report, &PROGRESS_PRINTER)
};
} else if is_certificate_error(&e) {
log::warn!("Certificate error detected: {e}");
send_command!(tx_stats, AddError(Certificate));
bail!(":SSL: {e}");
} else if e.is_connect() {
send_command!(tx_stats, AddError(Connection));
} else if e.is_request() {
send_command!(tx_stats, AddError(Request));
} else {
send_command!(tx_stats, AddError(Other));
}
log::warn!("Error while making request: {e}");
bail!("{}", e)
}
Ok(resp) => {
log::trace!("exit: make_request -> {resp:?}");
send_command!(tx_stats, AddStatus(resp.status()));
Ok(resp)
}
}
}View on GitHub (pinned to 1f595dab5c)