Попробуйте использовать CInternetSession :: OpenURL.Я не уверен, поможет ли это с вашей проблемой с недействительными сертификатами, но вы спрашивали альтернативы URLDownloadToFile.
CInternetSession connection;
CStdioFile* stream = connection.OpenURL("https://www.google.com");
const int capacity = 10000;
char* buffer = new char[capacity];
int bytes_read = stream->Read(buffer, capacity);
FILE* output = fopen("C:\\output.html", "w");
fwrite(buffer, 1, bytes_read, output);
fclose(output);