Bug 1038795

Summary: Add support for SNI to m2crypto package.
Product: Red Hat Enterprise Linux 7 Reporter: Miloslav Trmač <mitr>
Component: m2cryptoAssignee: Miloslav Trmač <mitr>
Status: CLOSED CURRENTRELEASE QA Contact: Hubert Kario <hkario>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.0CC: hkario, mitr
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
URL: https://bugzilla.osafoundation.org/show_bug.cgi?id=13073
Whiteboard:
Fixed In Version: m2crypto-0.21.1-12.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 1029246 Environment:
Last Closed: 2014-06-13 09:52:18 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On: 1029246    
Bug Blocks:    

Description Miloslav Trmač 2013-12-05 20:16:47 UTC
A reasonable thing to add to the API before 7.0.

+++ This bug was initially created as a clone of Bug #1029246 +++

Description of problem:
M2Crypto doesn't support SNI (Server Name Indication).
http://en.wikipedia.org/wiki/Server_Name_Indication
This feature is necessary for selecting the right SSL-protected web site hosted using name-based virtual hosting on a shared IP address.
All modern browsers support this feature.
However, Python programs which use M2Crypto for programmatic access to SSL-protected web services can't use SNI because it's not implemented in M2Crypto.
The manifestation of lack of SNI support is error message about wrong site certificate.

Version-Release number of selected component (if applicable):
0.21.1

How reproducible:
Connect using Connection class from M2Crypto.SSL.Connection module to any SSL-protected site hosted using name-based virtual hosting, which requires SNI support to distinguish between virtual hosts.

One of the programs using M2Crypto is osc
(https://github.com/openSUSE/osc)
which is packaged for Fedora.
You can use it to test lack of support for SNI in M2Crypto, but if solution proposed below is implemented, osc needs a separate patch to use SNI.

Steps to Reproduce:
osc ls https://jr.infoserver.lv/obsapi

Actual results:
Error about wrong SSL certificate.

Expected results:
No error about wrong SSL certificate.

Additional info:
This is a known issue described here:
https://bugzilla.osafoundation.org/show_bug.cgi?id=13073
This bug report has a patch attached which enables SNI support in M2Crypto.

Unfortunately, M2Crypto development has stopped in January 2011 (this is when the last commit to http://svn.osafoundation.org/m2crypto/trunk Subversion repository was made).
Hence, we're stuck with adding patches to packages.

I've attached the patch adding SNI support to M2Crypto.
You can find SRPM of m2crypto with SNI support here:
https://jr.infoserver.ru/dists/fedora-obs/19/source/m2crypto-0.21.1-12.1.fc19.src.rpm

--- Additional comment from Miloslav Trmač on 2013-11-12 10:29:39 EST ---

Sounds reasonable, thanks for the patch.

(I should investigate using %rename like many other wrappers do.)

Comment 24 Ludek Smid 2014-06-13 09:52:18 UTC
This request was resolved in Red Hat Enterprise Linux 7.0.

Contact your manager or support representative in case you have further questions about the request.