We have many clients that all have multiple web sites. The majority of the web sites, we do not host. If I wanted to look up when their SSL certificate was going to expire and proactively notify them, does anyone know any way to do this through CF9?
I've done the following, but I don't get the information from the header that I'm looking for:
<cfhttp url="https://www.amazon.com" result="out"></cfhttp>
<cfdump var="#out#" />
However, in PHP, I simply set the following options before calling curl:
curl_setopt($ch[$i], CURLOPT_VERBOSE, true);
curl_setopt($ch[$i], CURLOPT_CERTINFO, true);
VERBOSE enables more info
CERTINFO enables the certificate information to pass in the header
then curl_getinfo() on my curl handler and it's in an array.
I ended up using PHP for this task, but it seems there ought to be a way to do it in CF.
Thanks for any thoughts anyone might have!
Sure you can do this in CF using Java:
<cfset factory = CreateObject("java", "javax.net.ssl.HttpsURLConnection").getDefaultSSLSocketFactory()>
<cfset socket = factory.createSocket("foundeo.com", JavaCast("int",443))>
<cfset certs = socket.getSession().getPeerCertificates()>
<cfloop from="1" to="#ArrayLen(certs)#" index="i">
<cfset cert = certs[i]>
<cfoutput>#cert.getSubjectDN().getName()# - Valid Until #DateFormat(cert.getNotAfter())#</cfoutput><br />
Europe, Middle East and Africa