ODIN - php - accessing wsdl

Hi,

I installed OC3.12, OC-ws3.12, SSL.
https://myhost:mysslport/OpenClinica2-ws/ws/study/v1/studyWsdl.wsdl returns with an xml.

I installed ODIN-beta.
If I upload a file and try to validate:
* The page shows no message ("empty" yellow area)
* I get the error below (in apache error.log file).

PHP Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://myhost:mysslport/OpenClinica2-ws/ws/study/v1/studyWsdl.wsdl' : failed to load external entity "https://myhost:mysslport/OpenClinica2-ws/ws/study/v1/studyWsdl.wsdl"\n in /var/www/html/odinbeta/classes/OpenClinicaSoapWebService.php:61\nStack trace:\n#0 /var/www/html/odinbeta/classes/OpenClinicaSoapWebService.php(61): SoapClient->SoapClient('https://myhost....', Array)\n#1 /var/www/html/odinbeta/classes/OpenClinicaSoapWebService.php(103): OpenClinicaSoapWebService->callSoapClient('https://myhost....', 'http://openclin...', 'getMetadata', Object(SoapVar))\n#2 /var/www/html/odinbeta/validation.php(18): OpenClinicaSoapWebService->studyGetMetadata('default-study')\n#3 {main}\n thrown in /var/www/html/odinbeta/classes/OpenClinicaSoapWebService.php on line 61, referer: http://myhost/odinbeta/upload.php

No idea how to debug and solve.

Thanks for your help in advance,
Tamas

Answers

  • lindsay.stevenslindsay.stevens Posts: 388 ✭✭
    This code uses some PHP classes I wrote for SOAP integration. It looks like there is a problem communicating over https.

    Basically, PHP https connection defaults to "verify-full" when establishing a TLS connection. This involves a) checking the server host name against the server certificate, and b) checking the server certificate against the issuer certificate(s). It is possible to override this requirement but it's a bit involved, and would make TLS worthless anyway.

    Make sure that your PHP ini config refers to a CA bundle file that has the issuer certificate for the server you're trying to connect to. This file should have the PEM public certificates, in reverse order of the certification path (i.e. intermediates first). If it's a common CA then you might be able to use the Mozilla CA bundle.

    Once PHP has access to this information it should be able to connect over https.

  • Hi Tamas,

    Do you still have this issue? I am happy to help you with the debugging.

    Regards,

    Csaba
Sign In or Register to comment.