Installing SSL on CentOS
Extracted from the Source with modification:
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):
-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…