{"record":{"id":"8089ded2e9a67f15","repo":"epi052/feroxbuster","slug":"ssl-e","errorCode":null,"errorMessage":":SSL: {e}","messagePattern":":SSL: \\{e\\}","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/utils.rs","lineNumber":311,"sourceCode":"\n                    let report = create_report_string(\n                        &msg_status,\n                        method,\n                        \"-1\",\n                        \"-1\",\n                        \"-1\",\n                        &fancy_message,\n                        output_level,\n                    );\n\n                    send_command!(tx_stats, AddError(Redirection));\n\n                    ferox_print(&report, &PROGRESS_PRINTER)\n                };\n            } else if is_certificate_error(&e) {\n                log::warn!(\"Certificate error detected: {e}\");\n                send_command!(tx_stats, AddError(Certificate));\n                bail!(\":SSL: {e}\");\n            } else if e.is_connect() {\n                send_command!(tx_stats, AddError(Connection));\n            } else if e.is_request() {\n                send_command!(tx_stats, AddError(Request));\n            } else {\n                send_command!(tx_stats, AddError(Other));\n            }\n\n            log::warn!(\"Error while making request: {e}\");\n            bail!(\"{}\", e)\n        }\n        Ok(resp) => {\n            log::trace!(\"exit: make_request -> {resp:?}\");\n            send_command!(tx_stats, AddStatus(resp.status()));\n            Ok(resp)\n        }\n    }\n}","sourceCodeStart":293,"sourceCodeEnd":329,"githubUrl":"https://github.com/epi052/feroxbuster/blob/1f595dab5c76858d5a14fbc47dabf2563d729c62/src/utils.rs#L293-L329","documentation":"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.","triggerScenarios":"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).","commonSituations":"Scanning internal hosts with self-signed certs, MITM proxies presenting their own certificate, expired certificates, or SNI/hostname mismatches.","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"],"exampleFix":"// before\nferoxbuster -u https://self-signed.internal\n// after\nferoxbuster -u https://self-signed.internal --insecure","handlingStrategy":"try-catch","validationCode":"echo | openssl s_client -connect target:443 -servername target 2>/dev/null | openssl x509 -noout -dates -subject","typeGuard":null,"tryCatchPattern":"// run with --insecure when self-signed certs are expected:\n// feroxbuster -u https://host --insecure\n// or pre-validate TLS and skip such hosts","preventionTips":["Use -k/--insecure for internal self-signed hosts","Trust your MITM proxy's CA in the OS store","Check certificate expiry before scanning"],"tags":["tls","ssl","certificate","network"],"backgroundTag":"ssl-certificate-error","analyzedSha":"1f595dab5c76858d5a14fbc47dabf2563d729c62","analyzedAt":"2026-09-13T19:33:06.208Z","contentChangedAt":"2026-09-13T19:33:06.208Z","schemaVersion":2},"datasetVersion":"2026-09-16T09:17:16.951Z"}