首先说明,本文内容在 GOOGLE 上能搜到,所以是原创但不是首创。在此记录,仅供备忘。
今天做了个实验,在 Tomcat 5.5 中启用 HTTPS 的连接。以前都是通过 APACHE 来做的,这回图省事,直接用 TOMCAT 了,没想到还挺麻烦。
一、生成 KeyStore这一步比较简单,利用 JDK 自带的 keytool 即可完成。命令如下:
wakan@wakan:~/tomcat2/bin> keytool -genkey -alias tomcat -keyalg RSA输入keystore密码: ************您的名字与姓氏是什么? [Unknown]: Wakan.Jiang您的组织单位名称是什么? [Unknown]: ZZNode您的组织名称是什么? [Unknown]: ZZNode您所在的城市或区域名称是什么? [Unknown]: BeiJing您所在的州或省份名称是什么? [Unknown]: BeiJing该单位的两字母国家代码是什么 [Unknown]: CNCN=Wakan.Jiang, OU=ZZNode, O=ZZNode, L=BeiJing, ST=BeiJing, C=CN 正确吗? [否]: 是输入的主密码 (如果和 keystore 密码相同,按回车):特别说明:上边输入的“的主密码”,与keystore密码一定要相同,否则TOMCAT起不来。至少我试了几次都不行。报错如下:2007-3-26 17:07:01 org.apache.coyote.http11.Http11BaseProtocol init严重: Error initializing endpointjava.io.IOException: Cannot recover key at org.apache.tomcat.util.net.jsse.JSSE14SocketFactory.init(JSSE14Socket Factory.java:125)二、修改 server.xml在 TOMCAT/conf/server.xml 中,修改与 SSL 相关的那一段,我改成下面这样:
<!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true" keystorePass="******"
clientAuth="false" sslProtocol="TLS" />
这里要指定keystorePass,如果写错了,会出现下边的错误:
严重: Error initializing endpoint
java.io.IOException: Keystore was tampered with, or password was incorrect
at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:768)
三、启动 Tomcat
这一步比较简单,就不多说了。启动完成后,在浏览器中输入:https://localhost:8443,即可看到TOMCAT的主页面。
wakan@wakan:~/tomcat2/bin> ./startup.sh
Using CATALINA_BASE: /home/wakan/tomcat2
Using CATALINA_HOME: /home/wakan/tomcat2
Using CATALINA_TMPDIR: /home/wakan/tomcat2/temp
Using JRE_HOME: /home/jdk150/jre
2007-3-26 17:09:39 org.apache.catalina.core.AprLifecycleListener lifecycleEvent[@more@]
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/249132/viewspace-908360/
,如需转载,请注明出处,否则将追究法律责任。