WEB service in https

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);
2

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.

Naj si še odgovorim... deluje seveda klasika $SERVER['REMOTEADDR']

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;
    }

Imaš morda kakšno idejo kaj dobiš drugače s HTTPCLIENTIP ?

V kakšnem primeru se ta pogoj ne izvrši?

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.