Fórum Root.cz
Hlavní témata => Server => Téma založeno: Granda Urso 03. 07. 2012, 15:00:17
-
Zdravím,
potřebuji se dostat do testovacího prostředí na https://test.firma.cz/ . Problém je v tom, že při přístupu přes např. FIREFOX to hlásí, že je nedůvěryhodný certifikát. Z firmy poslali root_CA_certifikát.crt, ten naimportuji do záložky CA AUtority a FIREFOX už nehlásí problém. Klientská stanice, která volá https://test.firma.cz/ je LINUX debian 6.
Ovšem jako úložiště je použito vlastní místo mozilly.
To se ale projevuje pouze a jen u mozily firefoxu pod přihlášeným uzivatelem [user].
Celkově v celém systému se to neprojeví.
2. Další možnost
certutil -d sql:$HOME/.pki/nssdb -A -t TC -n "test.firma.cz" -i Root_CA_firma.crt
taky nepomohla, pravděpodobně se aktualizuje pouze mozilla úložiště certifikátů přihlášeného uživatele /home/uzivatel/.pki/nssdb/
3. Zkusit tinyca2 pro linux?
4. Jako systémové úložiště certifikátů je pravděpodobně /etc/ssl/certs/ kde jsou symbolické odkazy na např. /usr/share/ca-certifikates/mozilla/Comodo_Secure.crt
To by mělo být ono.
Takže jsem vytvořil symbolický odkaz v /etc/ssl/certs/Root_CA_firma.pem na /usr/share/ca-certificates/mozilla/Root_CA_firma.crt
Nyní by to mělo být obsaženo v systému, nicméně volání přes wget stále hlásí chybu:
wget --certificate=osobnicert.pem https://isbtst.pse.cz/kmapp/services/cdcpPort4?wsdl
--2012-06-29 16:52:35-- https://isbtst.pse.cz/kmapp/services/cdcpPort4?wsdl
Enter PEM pass phrase: zadané správné heslo
Resolving test.firma.cz... 172.16.10.49
Connecting to isbtst.pse.cz|172.16.10.49|:443... connected.
ERROR: cannot verify isbtst.pse.cz's certificate, issued by `/C=CZ/O=Prague Stock Exchange/OU=Prague Stock Exchange CA':
Self-signed certificate encountered.
To connect to isbtst.pse.cz insecurely, use `--no-check-certificate'.
Pokud dám tu volbu --no-check-certificate tak se wget připojí a stáhne ten WDSL.
Takže volání ISBTST v PHP5 stále hlásí chybu také:
Zdrojový kód:
<?php
$protected_url = "https://isbtst.pse.cz/kmapp/services/cdcpPort4?wsdl";
$client = new SoapClient($protected_url, array('local_cert' =>file_get_contents('osobnicert.pem'), 'passphrase' =>'heslo') );
?>
Tohle mne odmění chybovou hláškou:
Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://isbtst.pse.cz/kmapp/services/cdcpPort4?wsdl' : failed to load external entity "https://isbtst.pse.cz/kmapp/services/cdcpPort4?wsdl"
in /home/urso/1/soap_client9.php:3
Stack trace:
#0 /home/urso/1/soap_client9.php(3): SoapClient->SoapClient('https://isbtst....', Array)
#1 {main}
thrown in /home/urso/1/soap_client9.php on line 3
Neví tu někdo, jak ten root_CA_certifikat.crt dostat do systému DEBIAN 6 tak, aby wget nehlásil chyby a pak (možná) by šlo i PHP5 volání přes SOAP?
-
Self-signed certificate encountered.
Rekl bych, ze tohle je tvuj problem. Ten certifikat nemas totiz podepsanej certifikacni autoritou. Naka "Prague Stock Exchange CA" rozhodne neni autorita, kterou by vsechny prohlizece meli v sobe jako overenou a autorizovanou.
Mas 2 moznosti: pozadat o poradnej certifikat, overenej uznavanou CA (treba Thawte, VeriSign, GeoTrust, atd). Nebo se smirit s tim, ze pokazde kdyz se podivas na stranku zabezpecenou neoverenym certifikatem, tvuj prohlizec te bude varovat. Coz je nakonec taky uplne spravne!
-
Ta chybova hlaska wgetu vypada, jako by certifikat weboveho serveru, se kterym to zkousis, byl self-signed, tj. nebyl overeny zadnou CA, a proto nejde overit certifikatem CA.
-
hm, zeby /etc/ca-certificates?
http://packages.debian.org/squeeze/ca-certificates
-
imho ta hlaska o self-sgined se vztahuje na ten rootCA cert, kterejzto je vzdy self-signed
zkus ten wget zavolat takhle, jestli se to povede:
wget --certificate=osobnicert.pem --ca-certificate=root_CA_certifikát.crt https://isbtst.pse.cz/kmapp/services/cdcpPort4?wsdl
-
wget --certificate=osobnicert.pem --ca-certificate=root_CA_certifikát.crt https://isbtst.pse.cz/kmapp/services/cdcpPort4?wsdl
Tohle funguje, wget se po zadání hesla k osobnímu certifikátu hned připojí.
Taky se wget připojí s volbou --no-check-certificate bez zadání root_CA.
Já to ale potřebuji volat přes SOAP v PHP5 takto:
<?php
$client = new SoapClient("https://isbtst.pse.cz/kmapp/services/cdcpPort4?wsdl", array('local_cert' =>file_get_contents('osobnicert.pem'), 'passphrase' =>'heslo') );
?>
A zde si s tím dál nevím rady, hlásí to výše zmíněné chyby.