| (Photo credit: Wikipedia) |
Many web sites use Secure Socket Layer or SSL to provide
secure communications and as part of access control to their web sites. But that SSL may be blocking customers from
using your web site! The issue comes
when your web sites certificate expires.
While you may have correctly updated that certificate there are a couple
of steps that are not generally found in the documentation that should be taken
care of. The problem arises in that the
expired certificate may be cached in several locations down stream of your of
your web server. The certificated may be
cached in your proxy (or your hosting services proxies), end user’s proxies
(i.e. a companies proxy) and other firewall services and devices and finally in
the browser.
The steps to deal with these are fairly simple:
1)
Update
your certificate before it expires! A number of proxies and firewalls will
block sites once they are deemed to be providing invalid certificates. A
certificate is invalid if it has expired. Some proxies and firewalls will need
to be reset in order to allow your site back through, even though you have put
out a new valid certificate.
2)
Change
the serial number on the Certificate! If you are purchasing your
certificate from a Certificate Authority they should have done this out of
hand. If you are generating a certificate
using opensll or genkey make sure
to provide a new serial number. If the new certificate and the old certificate
have the same serial number, browsers, proxies and firewalls will for trying to
be efficient continue using the old certificate. All of these look at the
serial number to decide whether or not there is a new certificate.
3)
Check it.
To check that you have installed
your new certificate correctly use the openssl command. Below is an example pointing at Google. (Note
that path does not have the protocol on it)
openssl s_client -connect
encrypted.google.com:443
The openssl
s_client does not hold onto any cached certificate and will allow you
read the certificate signature, expiration date, serial number and other
important information. If you run it on
the host machine against localhost it will tell you if it is installed on the
server. Running it from other locations
will then tell you if the site has been blocked by some intervening proxy or
firewall has held onto the old
certificate or blocked your site. If you
see the correct certificate and your browser is seeing the old certificate then
you know it is a browser issue.
Openssl is installed by default on almost
all version of Linux any more, include Mac’s. You can download it for Windows.
(Part 4 is only needed if you did not do 1,2 and 3, and somebody has
accessed your certificate, MAKE SURE NOT TO LET IT HAPPEN!!)
4)
Provide
instructions for browser if you let your Certificate expire. If you updated
your cert before it expired and you changed the serial number browser will automatically
grab the new one. If you did not, most browsers will get the new cert and use
it if you remove the old cert. How to
remove the cert from any particular browser is easy to find on the web. However, the current version of Firefox will
hold on to the old one if you let your cert expire. To get Firefox to read the
new certificate. I include the
instructions here because it was not easy to find that this extra step was
needed.
For Firefox:
1)
Remove the old cert by going to PreferencesàAdvancedàEncryptionàView
Certificates
Go through the list and find the cert and delete it.
2)
Reset Firefox to its default state as below.(copied
from Mozilla) Firefox will save all your settings, cookies, preferences, etc.
How do I reset Firefox to its
default state?
- On the menu bar, click the Help menu and select Troubleshooting Information.
- Click the Reset Firefox button in the upper-right corner of the Troubleshooting Information page.
- To continue, click Reset Firefox in the confirmation sheet that slides down.
- Firefox will close and be reset. When it's done, a window will list the information that was imported. Click Done and Firefox will open.









