WEB service in https
5 naročnikov
5 naročnikov
Pozdravljeni,
poskušam kreirati WEB service, ki mi vrne željene podatke če delam preko http. Ko ga zamenjam s https pa mi vrne naslednje
HTTP Error: cURL ERROR: 35: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
url: https://domena.com:443/server.php
content_type:
http_code: 0
header_size: 0
request_size: 0
filetime: -1
ssl_verify_result: 0
redirect_count: 0
total_time: 0.008901
namelookup_time: 0.008614
connect_time: 0.008923
pretransfer_time: 0
size_upload: 0
size_download: 0
speed_download: 0
speed_upload: 0
download_content_length: -1
upload_content_length: -1
starttransfer_time: 0
redirect_time: 0
Kakšna ideja kaj narediti, da bo to delovalo?
14 odgovorov
Verjetno nisi podal certifikata na svoji strani...
CURLESSLCONNECT_ERROR (35)
A problem occurred somewhere in the SSL/TLS handshake. You really want the error buffer and read the message there as it pinpoints the problem slightly more. Could be certificates (file formats, paths, permissions), passwords, and others.
S https nisem delal še nikoli... me lahko malce usmeriš kje lahko najdem kakšno enostavno razlago oz. kako naj iščem (kw).
Kje pa dobim certifikat oz. kako delat s tem? Saj nisi mislil na tistega od sigence, nlb-ja in ostalih, ki se s tem ukvarjajo?
Certifikat sam generiraš z openssl-om, manual si boš moral pa pogledati kar lepo na php/curl strani...
dodaj tole pa bo delalo brez problema s SSL, ne rabis nobenih certov generirat...
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
Hvala, zaenkrat nisem delal s CURL-om ampak sem uporabil NUSOAP.
Ena izmed možnih opcij pa je tudi CURL v prihodnje.
Malce obujam temo... pojavila se je potreba, da bi zadeve malce bolj zaščitil v sami kodi.
Se da kako dobiti domeno, IP ali pa host mašine kjer stoji client skripta? Iskal in nič našel.
Jaz pa uporabljam tole funkcijo:
function getClientIPAddress()
{
if (!empty($_SERVER['HTTP_CLIENT_IP']))
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['REMOTE_ADDR'];
}
return $ip;
}
Gogy:
Naj si še odgovorim... deluje seveda klasika $SERVER['REMOTEADDR']
Sem že na nekaj strežnikih videl, da tale spremenljivka prikaže strežnikov IP, zato priporočam Dejan-ovo funkcijo.