Curl-Zugriff auf https und CA-Zertifikat in PHP (Codebeispiel)

不言
Freigeben: 2023-04-05 16:02:01
nach vorne
4856 Leute haben es durchsucht

Der Inhalt dieses Artikels befasst sich mit dem Zugriff auf https- und CA-Zertifikate (Codebeispiele) in PHP. Ich hoffe, dass er für Sie hilfreich ist.

Das CA-Zertifikat wird verwendet, um zu überprüfen, ob es sich bei der anderen Website um ein von der CA beim Aufrufen von HTTPS-Ressourcen ausgestelltes Zertifikat handelt und nicht um ein von Ihnen selbst generiertes Zertifikat.

Curl-Befehl
1. Muss Laden Sie die Zertifizierungsstelle herunter. Die Adresse der Zertifikatsdatei lautet http://curl.haxx.se/ca/cacert.pem
2. Legen Sie die heruntergeladene Datei an diesem Speicherort ab:/etc/pki/tls/certs/ca-bundle.crt
3 .curl kann auf https-Ressourcen zugreifen

PHP-Code

function post($url, $data=array(), $refer = "", $timeout = 30, $header = array()){
    $curlObj = curl_init();
    $ssl = stripos($url,'https://') === 0 ? true : false;
    $options = array(
        CURLOPT_URL => $url,
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_POST => 1,
        CURLOPT_POSTFIELDS => $data,
        CURLOPT_FOLLOWLOCATION => 1,
        CURLOPT_AUTOREFERER => 1,
        CURLOPT_USERAGENT => 'Webface SelfService Form',
        CURLOPT_TIMEOUT => $timeout,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_0,
        CURLOPT_IPRESOLVE => CURL_IPRESOLVE_V4,
        CURLOPT_REFERER => $refer
    );  
    if (!empty($header)) {
        $options[CURLOPT_HTTPHEADER] = $header;
    }   
    if ($refer) {
        $options[CURLOPT_REFERER] = $refer;
    }   
    if ($ssl) {
        //注意看这里就是配置CA证书
        //只信任CA颁布的证书
        $options[CURLOPT_SSL_VERIFYPEER]=true;  
        //本地CA证书,用来验证网站的证书是否是CA颁布的
        $options[CURLOPT_CAINFO]=getcwd() . '/cacert.pem';
        //验证域名是否匹配
        $options[CURLOPT_SSL_VERIFYHOST] = 2;
        /*  
        //忽略证书验证,信任任何证书
        $options[CURLOPT_SSL_VERIFYHOST] = false;
        $options[CURLOPT_SSL_VERIFYPEER] = false;
        */
    }   
    curl_setopt_array($curlObj, $options);
    $returnData = curl_exec($curlObj);
    if (curl_errno($curlObj)) {
        $returnData = curl_error($curlObj);
    }   
    curl_close($curlObj);
    return $returnData;
}
$res=post("https://www.baidu.com");
var_dump($res);
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonCurl-Zugriff auf https und CA-Zertifikat in PHP (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:cnblogs.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage