Skip to content
August 4, 2010 / nerd

Installing SSL on CentOS


Extracted from the Source with modification:

Recently on a couple of older CentOS machines I’ve found that the stock Python doesn’t have SSL support, which obviously makes trying to make a HTTPS connection impossible.

The error that comes back from the socket module is:

AttributeError: 'module' object has no attribute 'ssl'

To get SSL support you will have to compile Python from source and it’s not the most intuitive problem to solve. First up check you have OpenSSL installed correctly. OpenSSL is normally installed in "/usr/bin/openssl", you can use yum to check if it’s installed;

yum list installed | grep ssl

if for some reason you don’t have it, you can easily install it using yum.

yum install openssl openssl-devel

Then you will need to get a copy of the Python source, which you can find from the download site.

You then need to edit the Modules/Setup.dist file and uncomment the following (starting on line number 215 in my 2.6 source):


_ssl _ssl.c

    -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl

    -L$(SSL)/lib -lssl -lcrypto

(You might also need to uncomment the line above starting SSL to point it to your openssl instillation if it can’t be found in your $PATH)

Then run the standard setup:


make altinstall prefix=~/python2.6.5 exec-prefix=~/python2.6.5

(NOTE: If you are installing a separate Python version from the one 
that comes with the distro, it's normally sensible to use the
 altinstall option and not throttle the existing instillation. 
That way you don't interfere with OS specific stuff using 
Python - such as yum on CentOS)

Once it’s all done, you can test by running the following:

python -c 'from socket import ssl'

All done! probably shouldn’t be as tricky as that…



Leave a Comment
  1. sufehmi / Oct 23 2011 11:25 pm

    You can resolve this problem by installing the pyOpenSSL package :

    sudo yum install pyOpenSSL


  1. python on linux « 时光.漫步

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: