TOMCAT配置SSL认证

keytool 用法:

 

-certreq     [-v] [-protected]

             [-alias <alias>] [-sigalg <sigalg>]

             [-file <csr_file>] [-keypass <keypass>]

             [-keystore <keystore>] [-storepass <storepass>]

             [-storetype <storetype>] [-providerName <name>]

             [-providerClass <provider_class_name> [-providerArg <arg>]]

 

-delete      [-v] [-protected] -alias <alias>

             [-keystore <keystore>] [-storepass <storepass>]

             [-storetype <storetype>] [-providerName <name>]

             [-providerClass <provider_class_name> [-providerArg <arg>]]

 

-export      [-v] [-rfc] [-protected]

             [-alias <alias>] [-file <cert_file>]

             [-keystore <keystore>] [-storepass <storepass>]

             [-storetype <storetype>] [-providerName <name>]

             [-providerClass <provider_class_name> [-providerArg <arg>]]

 

-genkey      [-v] [-protected]

             [-alias <alias>]

             [-keyalg <keyalg>] [-keysize <keysize>]

             [-sigalg <sigalg>] [-dname <dname>]

             [-validity <valDays>] [-keypass <keypass>]

             [-keystore <keystore>] [-storepass <storepass>]

             [-storetype <storetype>] [-providerName <name>]

             [-providerClass <provider_class_name> [-providerArg <arg>]]

 

-help

 

-identitydb  [-v] [-protected]

             [-file <idb_file>]

             [-keystore <keystore>] [-storepass <storepass>]

             [-storetype <storetype>] [-providerName <name>]

             [-providerClass <provider_class_name> [-providerArg <arg>]]

 

-import      [-v] [-noprompt] [-trustcacerts] [-protected]

             [-alias <alias>]

             [-file <cert_file>] [-keypass <keypass>]

             [-keystore <keystore>] [-storepass <storepass>]

             [-storetype <storetype>] [-providerName <name>]

             [-providerClass <provider_class_name> [-providerArg <arg>]]

 

-keyclone    [-v] [-protected]

             [-alias <alias>] -dest <dest_alias>

             [-keypass <keypass>] [-new <new_keypass>]

             [-keystore <keystore>] [-storepass <storepass>]

             [-storetype <storetype>] [-providerName <name>]

             [-providerClass <provider_class_name> [-providerArg <arg>]]

 

-keypasswd   [-v] [-alias <alias>]

             [-keypass <old_keypass>] [-new <new_keypass>]

             [-keystore <keystore>] [-storepass <storepass>]

             [-storetype <storetype>] [-providerName <name>]

             [-providerClass <provider_class_name> [-providerArg <arg>]]

 

-list        [-v | -rfc] [-protected]

             [-alias <alias>]

             [-keystore <keystore>] [-storepass <storepass>]

             [-storetype <storetype>] [-providerName <name>]

             [-providerClass <provider_class_name> [-providerArg <arg>]]

 

-printcert   [-v] [-file <cert_file>]

 

-selfcert    [-v] [-protected]

             [-alias <alias>]

             [-dname <dname>] [-validity <valDays>]

             [-keypass <keypass>] [-sigalg <sigalg>]

             [-keystore <keystore>] [-storepass <storepass>]

             [-storetype <storetype>] [-providerName <name>]

             [-providerClass <provider_class_name> [-providerArg <arg>]]

 

-storepasswd [-v] [-new <new_storepass>]

             [-keystore <keystore>] [-storepass <storepass>]

             [-storetype <storetype>] [-providerName <name>]

             [-providerClass <provider_class_name> [-providerArg <arg>]]

1、配置证书

 

 

  1. 在命令行 windows使用cmd,linux在命令行模式下   
  2. 创建证书   
  3. 1.服务器中生成证书:(注:生成证书时,CN要和服务器的域名相同,如果在本地测试,则使用localhost)   
  4. keytool -genkey -alias tomcat -keyalg RSA -keystore c:/mykeystore -dname "CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN" -keypass changeit -storepass changeit   
  5. 2.导出证书,由客户端安装:   
  6. keytool -export -alias tomcat -keystore d:/mykeystore -file c:/mycerts.cer -storepass changeit   
  7. 3.客户端配置:为客户端的JVM导入密钥(将服务器下发的证书导入到JVM中)   
  8. keytool -import -trustcacerts -alias tomcat -keystore "%JAVA_HOME%/JRE/LIB/SECURITY/CACERTS" -file c:/mycerts.cer -storepass changeit   
  9. 生成的证书可以交付客户端用户使用,用以进行SSL通讯,或者伴随电子签名的jar包进行发布者的身份认证。   
  10.   
  11. 错误解决方案;   
  12. keytool生成根证书时出现如下错误:   
  13.   
  14. keytool错误:java.io.IOException:keystore was tampered with,or password was incorrect   
  15.   
  16. 原因是在你的home目录下是否还有.keystore存在。如果存在那么把他删除掉,后再执行   
  17.   
  18. 或者删除"%JAVA_HOME%/JRE/LIB/SECURITY/CACERTS 再执行  

 

2、配置TOMCAT

  1. 第二个大步骤是把secure socket配置在$CATALINA_HOME/conf/server.xml文件里。$CATALINA_HOME代表安装Tomcat的目录。一个例子是SSL连接器的元素被包括在和Tomcat一起安装的缺省server.xml文件里。它看起来象是这样:   
  2.   
  3. $CATALINA_HOME/conf/server.xml   
  4.   
  5. < -- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->   
  6.   
  7. < !--   
  8.   
  9. < Connector   
  10.   
  11. port="8443" minProcessors="5" maxProcessors="75"  
  12.   
  13. enableLookups="true" disableUploadTimeout="true"  
  14.   
  15. acceptCount="100" debug="0" scheme="https" secure="true";   
  16.   
  17. clientAuth="false" sslProtocol="TLS" keystorePass="changeit"/>   
  18.   
  19. -->   
  20.   
  21. Connector元素本身,其默认形式是被注释掉的(commented out),所以需要把它周围的注释标志删除掉。然后,可以根据需要客户化(自己设置)特定的属性。一般需要增加一下keystoreFile和keystorePass两个属性,指定你存放证书的路径(如:keystoreFile="C:/mykeystore")和刚才设置的密码(如:keystorePass="changeit")。关于其它各种选项的详细信息,可查阅Server Configuration Reference。   
  22.   
  23. 在完成这些配置更改后,必须象重新启动Tomcat,然后你就可以通过SSL访问Tomcat支持的任何web应用程序。只不过指令需要像下面这样:https://localhost:8443  

 

你可能感兴趣的:(TOMCAT配置SSL认证)