title: Tomcat HTTPS keystore certificate
body: <p>Ran into another problem using SSL and Tomcat: I've configured a keystore which contains a key and a certificate (the server certificate I wish to present to the clients connecting to the site). I've done the same for the truststore (I'm going to need client authentication).</p>
  
  <p>The problem I have now is that when I connect to my Tomcat instance via HTTPS, the certificate presented to me (the server certificate) is not my actual server certificate, but rather the <strong>key</strong> in the JKS keystore. Using -Djavax.net.debug=ssl reveals that it's presenting the correct CA for client authentication, but not the correct server certificate.</p>
  
  <pre>adding as trusted cert:
    Subject: CN=A
    Issuer:  CN=A
    Algorithm: RSA; Serial number: -
    Valid from Tue Nov 10 14:48:31 CET 2009 until Mon Feb 08 14:48:31 CET 2010
  
  adding as trusted cert:
    Subject: X
    Issuer:  X
    Algorithm: RSA; Serial number: -
    Valid from Wed Jan 19 01:00:00 CET 2005 until Mon Jan 19 00:59:59 CET 2015</pre>
  
  <p>I've replaced the real values with place holders. A = the domain name of the server (but in this case, for some reason this is the key and not the certificate). X = a VeriSign CA (this should be correct). I have an existing certificate I would like to use to present to the clients, which I imported into a JKS keystore using keytool.</p>
  
  <p>The Tomcat connector configuration:</p>
  
  <pre><code>&lt;Connector port="444" protocol="HTTP/1.1" SSLEnabled="true"
    maxThreads="150" scheme="https" secure="true"
    clientAuth="false" sslProtocol="TLS"     
    keystoreFile="conf/ssl/keystore.jks"
    keystorePass="xx"
    keyAlias="testkey"
    truststoreFile="conf/ssl/truststore.jks"
    truststorePass="xx" /&gt;
  </code></pre>
  
  <p>Any idea why my Tomcat instance is not presenting the correct certificate?</p>