Please join your peers on either March 26 (8pm GMT) or March 28 (8am GMT) to watch as user extraordinaire and forum legend @"lindsay.stevens" demonstrates OpenClinica Insight.

See preview and register at https://openclinica.com/insight-webinar

Insight makes it easy to ask questions of ALL of your clinical and operational data and visualize answers via interactive reports and dashboards. The idea is simple, but the results are powerful: ask your questions, choose your visualizations, then return often for updated, interactive results that link you to all of the underlying data.

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: 403 ✭✭✭
    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
  • mrz23cwrumrz23cwru Posts: 1
    I've also run into this issue. I have Tomcat's security configured, but I'm missing something in the PHP.

    Could anyone suggest a tutorial that goes over what Lindsay mentioned above more in depth?

    Thanks,
    Matt

Sign In or Register to comment.