diff --git a/include/Http.h b/include/Http.h index 456ab8b..84f49f7 100644 --- a/include/Http.h +++ b/include/Http.h @@ -17,4 +17,5 @@ public: static void StartProxy(); public: static bool isDownload; -}; \ No newline at end of file + static inline bool SkipSslVerify = false; +}; diff --git a/src/Network/Http.cpp b/src/Network/Http.cpp index 453d7fe..6f9b746 100644 --- a/src/Network/Http.cpp +++ b/src/Network/Http.cpp @@ -69,6 +69,10 @@ std::string HTTP::Get(const std::string& IP) { httplib::Client cli(IP.substr(0, pos).c_str()); cli.set_connection_timeout(std::chrono::seconds(10)); cli.set_follow_location(true); + if (SkipSslVerify) { + debug("Skipping SSL server validation via --skip-ssl-verify"); + cli.enable_server_certificate_verification(false); + } auto res = cli.Get(IP.substr(pos).c_str(), ProgressBar); std::string Ret; @@ -98,6 +102,10 @@ std::string HTTP::Post(const std::string& IP, const std::string& Fields) { httplib::Client cli(IP.substr(0, pos).c_str()); cli.set_connection_timeout(std::chrono::seconds(10)); + if (SkipSslVerify) { + debug("Skipping SSL server validation via --skip-ssl-verify"); + cli.enable_server_certificate_verification(false); + } std::string Ret; if (!Fields.empty()) { diff --git a/src/main.cpp b/src/main.cpp index b66ac7c..8c0dfe9 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -28,6 +28,13 @@ int main(int argc, char* argv[]) { GetEP(argv[0]); + for (int i = 0; i < argc; ++i) { + if (std::string_view(argv[i]) == "--skip-ssl-verify") { + info("SSL verification skip enabled"); + HTTP::SkipSslVerify = true; + } + } + InitLauncher(argc, argv); try {