“SSL peer certificate or SSH remote key was not OK”的分析和解决

  今天在给路由器配置安装程序的时候,出现了一个这样的问题:

     “SSL peer certificate or SSH remote key was not OK”

  这是程序在使用libcurl发送https请求时证书验证出问题导致的,这个提示是curl获取内容出错所返回的内容。

  那么有两种解决办法:1、不验证证书。  2、使用正确的证书。



 下面是使用第一种问题的解决办法

  在设置curl选项的时候,CURLOPT_SSL_VERFYPEERCURLOPT_SSL_VERIFYHOST两个选项设置成如下所示: 

curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0);  //当没有设置这个选项为0的时候,出现上述的错误。当然这个错误也是不一定会出现的,这取决于证书是否正确


 CURLOPT_SSL_VERFYPEER :

        设置这个选项,将会决定curl是否会验证证书的有效性,0 表示不会验证,1 表示会验证。默认值为1。

  CURLOPT_SSL_VERIFYHOST :

         当建立 TLS 和 SSL 连接的时候,服务器会发一个证书来表明它的身份。

        值为0时,不管证书的上的名称,也不验证证书是否正确。

        值为1时,检查证书中是否包含名称。

        值为2的时候,就表示要求服务器返回的证书中包含的服务器名称,必须和curl请求Url上的域名是一样的,否则连接会失败。(有可能弹出上述错误: “SSL peer certificate or SSH remote key was not OK”)



 如果在其它程序中出现类似的问题,那就很可能是软件使用的证书有问题,导致无法加载页面。
1、
断网可能可以解决一出现这个问题的一些情况。
2、使用另外一个版本的程序。
3、破解。



附上参考的链接:

   1、http://stackoverflow.com/questions/14192837/ssl-peer-certificate-or-ssh-remote-key-was-not-ok

   2、http://curl.haxx.se/libcurl/c/CURLOPT_SSL_VERIFYHOST.html

   3、http://curl.haxx.se/libcurl/c/CURLOPT_SSL_VERIFYPEER.html


 


你可能感兴趣的:(C++,libcurl)