There are several common modes of deployment for Tomcat on MS-Windows if HTTPS is enabled:
- Tomcat running behind IIS, OpenSSL is not used
- Tomcat running behind Apache, OpenSSL is that used by Apache
- Tomcat standalone server with JSSE connector (Java SSL), OpenSSL is not used
- Tomcat standalone server with APR connector, OpenSSL in use
If you have a standalone Tomcat server you can determine which HTTPS method is used by inspecting the Connector protocol configuration. The Apache provided Tomcat 6.0 binaries include APR (and hence OpenSSL) by default, though you may not be using it (upgrade anyway!). Further, if you have OpenSSL installed separately, it's irrelevant from Tomcat's point of view (though it might be used by your Apache or other web server).
If you are using an official (contrib) Apache-2.2 web server binary, the OpenSSL version number is typically encoded in the installer package file name. For 2.4 there are several different packaged versions. At least one (Apachehaus) documents the OpenSSL version and provide an openssl.exe you can run, though it may not be in the normal user PATH it's in the bin/ subdirectory of the Apache installation.
If you have LogLevel of "info" or higher, Apache will log the mod_ssl and OpenSSL versions on startup. Since 6.0.36, Tomcat6 does the same (bug #53057).
To peek at what DLLs a running process has loaded Process Explorer is handy, sadly though it appears that the normal Tomcat binary distribution link OpenSSL (and more) into a single DLL (tcnative-1.dll) rather than an easily identifiable (and replaceable) libssl.dll/libcrypto.dll (or similar) as is the convention on *nix systems. (This analysis will work on the Apachehaus Apache httpd though.)
A fairly primitive but reliable way then is to use find (or strings if you have it already), from a cmd prompt:
cd \Program Files\apache-tomcat\bin
find "OpenSSL" tcnative-1.dll
[...]
TLSv1 part of OpenSSL 1.0.1d 5 Feb 2013
SSLv3 part of OpenSSL 1.0.1d 5 Feb 2013
SSLv2 part of OpenSSL 1.0.1d 5 Feb 2013
DTLSv1 part of OpenSSL 1.0.1d 5 Feb 2013
Process Explorer will tell you the location of tcnative-1.dll for a running tomcat6 process if you cannot find it easily.
To summarise:
- check
netstat -abn -p TCP to see what's listening on 443 (or whatever HTTPS port you use)
- check your connector to see if, and how, Tomcat provides SSL
- check your webserver version and HTTPS configuration