2017-02-20 8 views
-2

メッセージ:fsockopenの():エラー:14090086:SSLルーチン:SSL3_GET_SERVER_CERTIFICATE:SSL操作はコードと1のOpenSSLエラーメッセージ失敗した証明書がfsockopenのSSLエラーSSL3_GET_SERVER_CERTIFICATE

+0

を確認に失敗しましたが、質問を指定してください。 – nvisser

+0

サーバーは、アクセスしているドメインのSSL証明書を認識しません。どのドメインにアクセスしようとしていますか(あなたがあなたが投稿したコードの '$ host'変数)? – ceejayoz

答えて

-1
function thread($url) { 

    //处理url 
    $parseurl = parse_url($url); 
    $host = $parseurl['host']; 

    if (isset($parseurl['query']) && $parseurl['query']) { 
     $requesturl = $parseurl['path'] . '?' . $parseurl['query']; 
    } else { 
     $requesturl = $parseurl['path']; 
    } 

    if ($parseurl['scheme'] == 'https') { 

     $fp = fsockopen('ssl://' . $host, 443, $errno, $errstr, 30); 

    } else { 
     $fp = fsockopen($host, 80, $errno, $errstr, 30); 
    } 

    if (!$fp) { 
     echo "$errstr ($errno)<br />\n"; 
    } else { 

     stream_set_blocking($fp,0); //开启非阻塞模式 

     $out = "GET $requesturl/HTTP/1.1\r\n"; 
     $out .= "Host: $host\r\n"; 
     $out .= "Connection: Close\r\n\r\n"; 
     fwrite($fp, $out); 
     usleep(5000); 
     fclose($fp); 
    } 
}