I'm trying to debug a problem with SSL in Apache. I've used Wireshark to capture the packets, and I see the client hello message go out, and then about 10 seconds or so later, I get back a server hello. Once the SSL connection is established, subsequent HTTPS request are faster.
I am using /dev/urandom for entropy, and I think I have plenty available. My CPU load is next to nothing, but I receive about 10 requests/second.
I'm using the stock settings in Apache 2.2.14 on Ubuntu 10.04. My certificate is a SAN certificate from GoDaddy.
What steps should I take to find out why my server takes so long to respond over SSL? HTTP is snappy, but HTTPS is dead slow.
Edit:
Here is an image that shows the client hello, and then about 10 seconds later, the server hello:

cat /proc/sys/kernel/random/entropy_availreport?entropy_availis the number of bits of random data available. It should be in the 2000+ range for a normal server. Being under 200 is very near "running out" for a SSL server that commonly requires 64-128 bits of random data per new connection. There's quite a few articles around for gathering more entropy. I'm not sure if Linux uses hardware sources by default, I've seen more than a few articles about daemons necessary (at some point in time) to gather entropy from hardware sources.urandomis the non-blocking entropy souce, but I'm not sure OpenSSL will use it...