title: Invalid keystore format with SSL in Tomcat 6
body: <p>I'm trying to setup SSL in my local Tomcat 6 installation. For this, I followed the official <a href="http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html" rel="noreferrer">How-To</a> doing the following:</p>
  
  <pre><code>$JAVA_HOME/bin/keytool -genkey -v -keyalg RSA -alias
            tomcat -keypass changeit -storepass changeit
  $JAVA_HOME/bin/keytool -export -alias tomcat -storepass
            changeit -file /root/server.crt
  </code></pre>
  
  <p>Then changing the $CATALINA_BASE/conf/server.xml, in-commenting this:</p>
  
  <pre><code>&lt;Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
             maxThreads="150" scheme="https" secure="true"
             clientAuth="false" sslProtocol="TLS"
             keystoreFile="/root/.keystore" keystorePass="changeit" /&gt;
  </code></pre>
  
  <p>After starting Tomcat, I get this Exception:</p>
  
  <pre><code>INFO: Initializing Coyote HTTP/1.1 on http-8080
  30.06.2011 10:15:24 org.apache.tomcat.util.net.jsse.JSSESocketFactory getStore
  SCHWERWIEGEND: Failed to load keystore type JKS with path /root/.keystore
  due to Invalid keystore format
  java.io.IOException: Invalid keystore format
        at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:633)
        at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:38)
        at java.security.KeyStore.load(KeyStore.java:1185)
  </code></pre>
  
  <p>When I look into the keystore with <code>keytool -list</code> I get</p>
  
  <pre><code>root@host:~# $JAVA_HOME/bin/keytool -list
  Enter key store password: changeit
  Key store type: gkr
  Key store provider: GNU-CRYPTO
  
  Key store contains 1 entry(ies)
  
  Alias name: tomcat
  Creation timestamp: Donnerstag, 30. Juni 2011 - 10:13:40 MESZ
  Entry type: key-entry
  Certificate fingerprint (MD5): 6A:B9:...C:89:1C
  </code></pre>
  
  <p>Obviously, the keystore types are different. How can I change the type and will this fix my problem? Thank you!</p>