Not enough entropy?
While for Andrew this happened with httpd I’ve already run into this a couple of times with exim for my SMTPS relay. Exim just gets stuck during the TLS/SSL authentication and does not even say a thing at all. You want to send a mail – but nothing happens. You can’t even see anything from the logs. If you experience similar problems first thing to do (under Linux) is to check there is enough entropy available.
cat /proc/sys/kernel/random/entropy_avail
If the number is below 1000 that might be the problem. Essentially it means that your system does not generate enough randomness for cryptographically secure communications – and waits until there is. Indeed an easy (but bad) work around is to only use the pseudo random generator.
mv /dev/random /dev/random.old ; ln -s /dev/urandom /dev/random
But by definition those (pseudo) random numbers cannot be really random. Several sources provide suggestions and scripts to work around this by generating disk activity and have the disk interrupts generate the badly needed entropy. Unfortunately for me this never was really enough. (Maybe because it’s VServer?) Since I don’t have anything insanely sensitive to protect I just went with the hack as well. If someone has some wise words how to fix this in a better way – let me know. So far I found two daemons that are responsible for generating entropy. The EGD and the PRNGD. Feels a bit crazy to install a daemon just for that though.
Maybe finally a reason to have a mouse connected to a server. (generates a lot of entropy) …it only needs to become part of the hoster’s SLA to move them around from time to time. :-p