怎么配置tomcat部署目录下的某个文件夹使用到 https协议 怎么配置tomcat部署目录下的某个文件夹使用到 https协议 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://wakan.blog.51cto.com/59583/21600 我不是要对整个Tomcat都使用HTTPS协议,我是想只对Tomcat部署目录下的某一个文件夹,比如:我访问Tomcat目录下的/webapps/ROOT文件夹下的Web应用时需要使用HTTPS协议,而其他文件夹下的就只用http协议就行了 首先说明,本文内容在 GOOGLE 上能搜到,所以是原创但不是首创。在此记录,仅供备忘。今天做了个实验,在 Tomcat 5.5 中启用 HTTPS 的连接。以前都是通过 APACHE 来做的,这回图省事,直接用 TOMCAT 了,没想到还挺麻烦。重要提示:两种容易出错的情况1、keystore的密码与tomcat的主密码不一致;在接下来的步骤中,请把这两个密码输入成相同的;2、用来生成keystore的java版本与运行tomcat的java版本不一致;运行下面的命令之前,先检查一下。wakan@wakan:~/tomcat2/bin>which java/home/jdk150/bin/java在启动tomcat时,看看所用的JAVA_HOME是不是上面的/home/jdk150,如果不是,请修改用户的profile文件,或者修改tomcat的启动文件。最简单的做法是在/etc/profile文件中加入下面几行,然后重新登录,再进行后续操作:JAVA_HOME=/home/jdk150PATH=$JAVA_HOME/bin:$PATHexport JAVA_HOME PATH一、生成 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 正确吗? [否]: 是输入<tomcat>的主密码 (如果和 keystore 密码相同,按回车):特别说明:上边输入的“<tomcat>的主密码”,与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 --> <Connector port="8443" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" keystorePass="******" clientAuth="false" sslProtocol="TLS" />这里要指定keystorePass,如果写错了,会出现下边的错误:严重: Error initializing endpointjava.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.shUsing CATALINA_BASE: /home/wakan/tomcat2Using CATALINA_HOME: /home/wakan/tomcat2Using CATALINA_TMPDIR: /home/wakan/tomcat2/tempUsing JRE_HOME: /home/jdk150/jre2007-3-26 17:09:39 org.apache.catalina.core.AprLifecycleListener lifecycleEvent本文出自 “豪客城” 博客,转载请与作者联系! 谢谢楼上的回复,我再次声明一下我不是要对整个Tomcat都使用HTTPS协议,我是想只对Tomcat部署目录下的某一个文件夹,比如:我访问Tomcat目录下的/webapps/ROOT文件夹下的Web应用时需要使用HTTPS协议,而其他文件夹下的就只用http协议就行了 行么? 那你就用两个工程吧! 将Session带过去就可以了。 java群 100251818 js调用ocx的回调函数(顶者有分) 求一个简单的RewriteRule规则 谁能给我一个jsp+Mysql注入的页面,我做毕业设计要演示,没有办法,谢谢了!! 请教高手啊 请问在servlet中使用像jsp中一样的session 对像,可能么?怎么操作呢? **java 关于条码图片打印** 怎么样让网页上传的图片放到指定的文件夹里呢? java web 这个签到功能的方法应该在哪里加锁? 迅雷的一道Java面试题~ 请教一种切图的方法。小弟急救!!!!
1、keystore的密码与tomcat的主密码不一致;在接下来的步骤中,请把这两个密码输入成相同的;
2、用来生成keystore的java版本与运行tomcat的java版本不一致;运行下面的命令之前,先检查一下。
wakan@wakan:~/tomcat2/bin>which java
/home/jdk150/bin/java
在启动tomcat时,看看所用的JAVA_HOME是不是上面的/home/jdk150,如果不是,请修改用户的profile文件,或者修改tomcat的启动文件。
最简单的做法是在/etc/profile文件中加入下面几行,然后重新登录,再进行后续操作:
JAVA_HOME=/home/jdk150
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH一、生成 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]: CN
CN=Wakan.Jiang, OU=ZZNode, O=ZZNode, L=BeiJing, ST=BeiJing, C=CN 正确吗?
[否]: 是输入<tomcat>的主密码
(如果和 keystore 密码相同,按回车):特别说明:上边输入的“<tomcat>的主密码”,与keystore密码一定要相同,否则TOMCAT起不来。至少我试了几次都不行。报错如下:
2007-3-26 17:07:01 org.apache.coyote.http11.Http11BaseProtocol init
严重: Error initializing endpoint
java.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 -->
<Connector port="8443" maxHttpHeaderSize="8192"
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
本文出自 “豪客城” 博客,转载请与作者联系!
我不是要对整个Tomcat都使用HTTPS协议,我是想只对Tomcat部署目录下的某一个文件夹,比如:我访问Tomcat目录下的/webapps/ROOT文件夹下的Web应用时需要使用HTTPS协议,而其他文件夹下的就只用http协议就行了