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路径。

在配置一次就成功了。

 

posted @ 2013-06-10 15:28  廖世勇  阅读(168)  评论(0编辑  收藏  举报