View Issue Details

IDProjectCategoryView StatusLast Update
0001718Slicer4Core: Scripting (Wrapping, Python)public2013-12-04 12:51
Reportersunilk Assigned Tojcfr  
PrioritynormalSeveritytweakReproducibilityalways
Status closedResolutionfixed 
Product VersionSlicer 4.0.1 
Target VersionSlicer 4.3.0Fixed in VersionSlicer 4.3.0 
Summary0001718: SSL / HTTPS Issues with Python Interactor and QT - Windows 7
Description

On the Windows 7 platform, any attempt to access HTTPS websites (or anything involving SSL) results in a blank QT-Real window. Code below entered into the Python Interactor:

v = qt.QWebView()
v.show()

Below does not work--could be any site with a HTTPS protocol

v.setURL(qt.Qrl("https://twitter.com"))

Below works fine

v.setURL(qt.Qrl("http://www.google.com"))

Additional Information

It seems like an issue with QT. Per JC's reply on the dev mailing list, the default install of QT doesn't handle SSL.

TagsNo tags attached.

Relationships

related to 0002352 resolvedjcfr Include more python packages in standard install 
related to 0002998 closedjcfr Integrate OpenSSL 
related to 0003236 closedjcfr Build curl with OpenSSL support 

Activities

2012-02-09 11:44

 

httpsNotWorking.png (256,768 bytes)
httpsNotWorking.png (256,768 bytes)
jcfr

jcfr

2013-08-30 18:44

administrator   ~0009756

Fixed in r22220
See http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=22220

// -----------------------------------------
ENH: Add SSL support

Having the application interacting with services or downloading resources
served over https protocol is now required. More particularly,
it became necessary to access resources stored on Github (extension
manager - issue 0002354) or to download python packages from pip server
at run time.

The CMake option "Slicer_USE_PYTHONQT_WITH_OPENSSL" allowing to enable or
disable OpenSSL support has been introduced is set to OFF by default.

Building OpenSSL

On Windows, since Perl is required, OpenSSL binaries have been
generated and uploaded on kitware packages server. See [1]

The project allowing to re-generate the Windows OpenSSL archive is currently
hosted here [2].

On unix-like system, OpenSSL is built has part of the Superbuild. To ensure
is can be built in parallel, a patch is also applied [3].

Finally, since python is built with OpenSSL support, the python launcher
is now configured on all platform so that python can properly load the built
OpenSSL shared library when it is used to build project like numpy.

[1] http://packages.kitware.com/packages/application/view?applicationId=20
[2] https://gist.github.com/jcfr/6030240
[3] https://raw.github.com/Alexpux/Qt-builds/master/patches/openssl/openssl-1.0.1-parallel-build.patch

OpenSSL support in Qt, python, curl

Practically, it means that library like Qt, python, curl need to be
built with OpenSSL support.

This commit only address OpenSSL support for Python and Qt.

Curl support is not yet enabled.

For Qt OpenSSL support, Qt has to be built with the flags:
-openssl
-I /path/to/OpenSSL/include
-L /path/to/OpenSSL/lib

On unix-like system, available binaries are already OpenSSL ready, Qt
has to be explicitly built only on windows. On windows, Qt will have to
be built.

Certificates

In case X.509v3 certificates are available on the system where Slicer is
executed, a certificate bundle "Slicer.crt" is also provided. The set of
scripts allowing to generate the bundle are provided by BLFS
(Beyond Linux From Scratch).
More details in Base/QTCore/Resources/Certs/README

Application integration

The Slicer core application will load the Slicer.crt bundle if needed.

qSlicerExtensionsInstallWidget now derives from a re-usable widget
named qSlicerWebWidget.

qSlicerSslTest has been added to check that "https" connection can
be established using Qt library.

Issue History

Date Modified Username Field Change
2012-02-09 11:44 sunilk New Issue
2012-02-09 11:44 sunilk Status new => assigned
2012-02-09 11:44 sunilk Assigned To => jcfr
2012-02-09 11:44 sunilk File Added: httpsNotWorking.png
2012-08-21 11:52 jcfr Target Version => Slicer 4.3.0
2012-08-27 05:29 pieper Relationship added related to 0002352
2013-08-30 18:42 jcfr Relationship added related to 0003236
2013-08-30 18:43 jcfr Relationship added related to 0002998
2013-08-30 18:44 jcfr Note Added: 0009756
2013-08-30 18:44 jcfr Status assigned => resolved
2013-08-30 18:44 jcfr Fixed in Version => Slicer 4.3.0
2013-08-30 18:44 jcfr Resolution open => fixed
2013-12-04 12:51 jcfr Status resolved => closed