SSL Certificates
Testing
Keeping up to date is very important as the world of cryptography is moving swiftly.
Your first port of call is SSLLabs where they will very kindly poke your site with a stick and tell you of its failing. Which will be legion.
Dan Goodin at Ars Technica is keeping a beady eye on these things and produces very useful cogent reports and how-tos.
Updates
RC4
August 2013
RC4 can be broken, so try to avoid it (SSLLabs will check for you).
Read about the RC4 changes which are something like:
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite "EECDH+ECDSA+AESGCM
EECDH+aRSA+AESGCM
EECDH+ECDSA+SHA384
EECDH+ECDSA+SHA256
EECDH+aRSA+SHA384
EECDH+aRSA+SHA256
EECDH
EDH+aRSA
!aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4"
SHA256
September 2014
Google are getting twitchy about the use of SHA1 in certificates. You can read more but the upshot is to specify SHA256 as the digest when signing certificates and certificate requests. This is easily done with -sha256 as an extra flag.
Logjam
May 2015
Thanks to weak "export" crypto (dating from the Clinton administration) we're at risk again. This time with Diffie-Hellman key exchange. In this instance we want to bump up the quality of the parameters we're using and (yet again!) tinker with the safe ciphers. Read more here but in summary:
openssl dhparam -out dhparams.pem 2048
edit ssl.conf:
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite "ECDHE-RSA-AES128-GCM-SHA256
ECDHE-ECDSA-AES128-GCM-SHA256
ECDHE-RSA-AES256-GCM-SHA384
ECDHE-ECDSA-AES256-GCM-SHA384
DHE-RSA-AES128-GCM-SHA256
DHE-DSS-AES128-GCM-SHA256
kEDH+AESGCM
ECDHE-RSA-AES128-SHA256
ECDHE-ECDSA-AES128-SHA256
ECDHE-RSA-AES128-SHA
ECDHE-ECDSA-AES128-SHA
ECDHE-RSA-AES256-SHA384
ECDHE-ECDSA-AES256-SHA384
ECDHE-RSA-AES256-SHA
ECDHE-ECDSA-AES256-SHA
DHE-RSA-AES128-SHA256
DHE-RSA-AES128-SHA
DHE-DSS-AES128-SHA256
DHE-RSA-AES256-SHA256
DHE-DSS-AES256-SHA
DHE-RSA-AES256-SHA
AES128-GCM-SHA256
AES256-GCM-SHA384
AES128-SHA256
AES256-SHA256
AES128-SHA
AES256-SHA
AES
CAMELLIA
DES-CBC3-SHA
!aNULL !eNULL !EXPORT !DES !RC4
!MD5 !PSK !aECDH
!EDH-DSS-DES-CBC3-SHA
!EDH-RSA-DES-CBC3-SHA
!KRB5-DES-CBC3-SHA"
SSLHonorCipherOrder on
SSLOpenSSLConfCmd DHParameters "{path to dhparams.pem}"
Note
That last entry, SSLOpenSSLConfCmd, is only available in Apache 2.4.8+ (not the stock CentOS 7's 2.4.6). However, thanks to this note, if we are running 2.4.7 then we can append the parameters to the certificate file!
cat dhparams.pem >> {path to}ssl.em
See the note for Postfix too!
Document Actions
