您好我正在尝试从通过C++使用https的网页下载内容.我从Boost asio示例中获取的基本客户端程序编译并运行良好,但是当我测试它时,例如Google:www.google.co.uk/?gws_rd = sl,它给出了错误"握手:证书验证失败" .
我认为这是因为ctx.set_default_verify_paths()不包含带有Google证书的路径(我在Windows上).
我非常新的SSL,请你能帮助我以下的问题:
1)当我安装openSSL时,它是否在我的计算机上粘贴了一个受信任的认证机构列表?如果是这样,会导致Google的证书无法验证?
2)无论如何说我不关心验证,无论如何都要继续连接,就像在firefox中手动添加异常一样?我对连接是否可信并不特别感兴趣,因为我没有传输任何需要安全的东西.
任何一个的答案将不胜感激!
#include <iostream>
#include <istream>
#include <ostream>
#include <fstream>
#include <string>
#include <boost/asio.hpp>
#include <boost/asio/ssl.hpp>
using boost::asio::ip::tcp;
namespace ssl = boost::asio::ssl;
typedef ssl::stream<tcp::socket> ssl_socket;
int main(int argc, char* argv[])
{
try
{
if (argc != 3)
{
std::cout << argc;
std::cout << "Usage: sync_client <server> <path>\n";
std::cout << "Example:\n";
std::cout << " sync_client www.boost.org /LICENSE_1_0.txt\n";
return 1;
}
boost::asio::io_service io_service;
// Create a context that uses the default paths …Run Code Online (Sandbox Code Playgroud)