| Autor | Zpráva | ||
|---|---|---|---|
| jirivo2 Profil |
Zdravím Vás, potřeboval bych poradit s jednou záludností. Přes funkci PHP curl zasílám data ve formátu json na externí URL. Po spuštění mi to hodí tuto chybu:
error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version Zkoušel jsem skript spustit z jiného webu, kde vše fungovalo bez problému. Oba weby běží pod Forpsi, akorát s rozdílem, že jeden je na serveru s OS Windows s doinstalovaným PHP a druhý běží na Linuxu. Na obou je nainstalovaný DV SSL certifikát. Je možné, že na Windows serveru je nějaké omezení, které blokuje spuštění skriptu, nebo je spíš problém v certifikátu? Ukázka kódu odeslání dat: $url = 'https://api.webovastranka.cz/test/';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Accept: application/json', 'Content-Type: application/json'));
$data = <<<DATA
{
"auth": "12345",
"data": "data",
"email": "email@email.cz"
}
DATA;
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
$resp = curl_exec($curl);
echo curl_error($curl);
curl_close($curl);
echo $resp; |
||
| ttttttt Profil * |
#2 · Zasláno: 6. 3. 2022, 00:26:15
S certifikátem to nesouvisí, problém je v protokolu, kterým spolu servery komunikují. Pokud to dobře čtu, tak server odmítne TLSv1, které klient nabízí. Je zřejmě potřeba aktualizovat openssl na novější verzi a komunikovat přes TLSv1.2 nebo TLSv1.3.
|
||
| N71 Profil * |
#3 · Zasláno: 7. 3. 2022, 20:32:55
Na běžnou HTTP komunikaci nemá smysl používat cURL. Použij file_get_contents() s vlastním stream_context_create().
|
||
|
Časová prodleva: 4 roky
|
|||
0