Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Testing if a URL requires SNI

Tags:

ssl

sni

I have a site which is served over HTTPS, but which iTunes can't find. My suspicion is that it's related to the iTunes backend server being Java 6, and Java 6 not supporting SNI. SSL Labs seems to hint that my site does require SNI (see this report, and search for SNI), but I can't think why. Have I misunderstood multi-domain certificates? I've got multiple sites running on the same server, but my understanding was that as long as all the URLs were listed as Subject Alternative Names on the certificate, that all would be well.

Does anyone know a good way to check if a URL requires SNI support on the client to access it? I don't have a Windows XP/Java 6 install around to play with sadly.

like image 677
Dominic Rodger Avatar asked Dec 19 '22 19:12

Dominic Rodger


1 Answers

The reports from SSLLabs regarding SNI are usually correct. Your understanding that SNI is not needed if your certificate contains all possible hosts is correct too. But, not needed in theory does not mean that your server setup does not require SNI anyway.

I don't have a Windows XP/Java 6 install around to play with sadly.

Given that you only specify what you don't have I will assume that you have everything else which might be used. A simple way to check is openssl:

 # without SNI
 $ openssl s_client -connect host:port 

 # use SNI
 $ openssl s_client -connect host:port -servername host

Compare the output of both calls of openssl s_client. If they differ in the certificate they serve or if the call w/o SNI fails to establish an SSL connection than you need SNI to get the correct certificate or to establish a SSL connection at all.

like image 64
Steffen Ullrich Avatar answered Dec 30 '22 10:12

Steffen Ullrich