Bug 1029246

Summary: Add support for SNI to m2crypto package.
Product: [Fedora] Fedora Reporter: Oleg Girko <ol+redhat>
Component: m2cryptoAssignee: Miloslav Trmač <mitr>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 19CC: gholms, mitr, ol+redhat
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
URL: https://bugzilla.osafoundation.org/show_bug.cgi?id=13073
Whiteboard:
Fixed In Version: m2crypto-0.21.1-13.fc20 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1038795 (view as bug list) Environment:
Last Closed: 2014-01-03 08:42:20 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:
Embargoed:
Bug Depends On:    
Bug Blocks: 1038795    
Attachments:
Description Flags
A patch adding SNI support to M2Crypto. none

Description Oleg Girko 2013-11-12 00:30:52 UTC
Created attachment 822696 [details]
A patch adding SNI support to M2Crypto.

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

Comment 1 Miloslav Trmač 2013-11-12 15:29:39 UTC
Sounds reasonable, thanks for the patch.

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

Comment 2 Fedora Update System 2013-12-18 17:11:03 UTC
m2crypto-0.21.1-13.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/m2crypto-0.21.1-13.fc20

Comment 3 Fedora Update System 2013-12-20 01:53:37 UTC
Package m2crypto-0.21.1-13.fc20:
* should fix your issue,
* was pushed to the Fedora 20 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing m2crypto-0.21.1-13.fc20'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2013-23645/m2crypto-0.21.1-13.fc20
then log in and leave karma (feedback).

Comment 4 Fedora Update System 2014-01-03 08:42:20 UTC
m2crypto-0.21.1-13.fc20 has been pushed to the Fedora 20 stable repository.  If problems still persist, please make note of it in this bug report.