龍子 发表于 2017-1-16 08:59:22

Tomcat+java+ssl

  配置Tomcat+java+ssl安全证书无效的原因
  记得2008年9月初的样子,公司一实施人员打电话来,说,按照按照手册上的方法配置Tomcat+java+ssl安全证的方法没有生效,根本无法使用HTTPS方式访问页面。
  开始以为是他的配置方法或者某一环节有问题,打算通过VPN上去帮他配置。
  奇怪的事情发生了,我以非常熟练得速度按照手册上的方法配置成功,但居然也无法使用HTTPS方式访问页面。(这个我以前配置过不少次,难道是环境问题....)
  正在大家百思不得其解的状况下..........终于发现了一个问题。
  先卖个关子............呵呵。
  我先说说如何配置Tomcat+java+ssl安全证,然后再说是怎么解决现场实施人员的问题的。
  一. 配置Tomcat+java+ssl安全证的方法:
  配置过程
  1. 生成 name key :
  以命令行方式切换到目录%TOMCAT_HOME%,在command命令行输入如下命令(jdk1.4以上带的工具):
  keytool-genkey -alias tomcat -keyalg RSA -keypass password -storepass password-keystore name.keystore -validity 3600
  keytool -genkey -alias tomcat-keyalg RSA -keystore F:\tomcat.keystore -validity 36500
  用户名输入域名,如localhost(开发或测试用)或hostname.domainname(用户拥有的域名),其它全部以 enter 跳过,最后确认,此时会在%TOMCAT_HOME%name.keystore 文件。
  注:参数 -validity 指证书的有效期(天),缺省有效期很短,只有90天。
  2. 将证书导入的JDK的证书信任库中:
  这步对于Tomcat的SSL配置不是必须,但对于CAS SSO是必须的,否则会出现如下错误:edu.yale.its.tp.cas.client.CASAuthenticationException:Unable to validate ProxyTicketValidator。。。
  导入过程分2步,第一步是导出证书,第二步是导入到证书信任库,命令如下:
  keytool-export -trustcacerts -alias tomcat -file server.cer –keystore name.keystore-storepass password
  keytool-import -trustcacerts -alias tomcat -file server.cer -keystore%JAVA_HOME%/jre/lib/security/cacerts -storepass password
  keytool-import -trustcacerts -alias tomcat -file server.cer -keystore F:\cacerts-storepass password
  如果有提示,输入Y就可以了。
  其他有用keytool命令(列出信任证书库中所有已有证书,删除库中某个证书):
  keytool-list -v -keystore D:/sdks/jdk1.5.0_11/jre/lib/security/cacerts
  keytool-delete -trustcacerts -alias tomcat -keystoreD:/sdks/jdk1.5.0_11/jre/lib/security/cacerts -storepass pass
  3. 配置TOMCAT :
  修改%TOMCAT_HOME%\conf\server.xml,以文字编辑器打开,查找这一行:
  xml 代码
  1.<Connectorprotocol="org.apache.coyote.http11.Http11NioProtocol"
  2.port="8443" minSpareThreads="5"maxSpareThreads="75"
  3.enableLookups="true"disableUploadTimeout="true"
  4.acceptCount="100" maxThreads="200"
  5.scheme="https" secure="true"SSLEnabled="true"
  6.clientAuth="false" sslProtocol="TLS"
  7.keystoreFile="D:/tools/apache-tomcat-6.0.10/server.keystore"
  8.keystorePass=" password "/>
  二.现在我来回答为什么那个奇怪的现象吧
  原因是因为,实施人员在安装TOMCAT过程中,直接默认选择了JRE路径,导致无法找到密钥。
  这个问题原因是黄老板(公司一位人才)发现的。
  后来在TOMCAT CONFIGURE中重新选择了路径,指向了JDK路径。
  在配置一次就成功了。
页: [1]
查看完整版本: Tomcat+java+ssl