怎么给tomcat7 https配置配置https

为Tomcat&HTTPS配置证书
Linux版本:RHEL 4 U4 (查看linux版本号: cat
/etc/redhat-release )
Tomcat版本:apache-tomcat-5.5.26(查看tomcat版本号:到tomcat安装目录下的bin中执行
./version.sh -version)
JDK版本:1.5.0_15(查看JDK版本号:java
-version)
当然在最初你要启用了TOMCAT的HTTPS。这个在tomcat的配置文件server.xml中有描述。此文件在tomcat安装目录的conf目录中。
例如我的tomcat安装目录在:/home/l5m/apache-tomcat-5.5.26/
那server.xml文件就在/home/l5m/apache-tomcat-5.5.26/conf/目录下面。
查看如何启用https请cat server.xml,其中有提到:
By default, a non-SSL HTTP/1.1
Connector is established on port 8080.
You can also enable an SSL HTTP/1.1 Connector on port 8443 by
following the instructions below and uncommenting the second
entry.& SSL support requires the following steps
(see the SSL Config
&HOWTO in the Tomcat 5 documentation bundle for
more detailed
instructions):
* If your JDK version 1.3 or prior, download and install JSSE 1.0.2
&later, and put the JAR files into
"$JAVA_HOME/jre/lib/ext".
&* Execute:
%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA
$JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg
RSA& (Unix)
&with a password value of "changeit" for both the
certificate and
the keystore itself.
当你启用了HTTPS之后使用能正常查看了你的主页,当然这时你用IE打开网站时会出现警告:
There is a problem with this
website's security certificate.
下面要做的就是让此警告消失。
需要用到我自己做的windows的一台ca证书服务器进行证书的颁发,当然你可以通过网络购买此证书,至于这个证书咋来的,慢慢道来。
1.keytool -genkey -alias tomcat -keyalg RSA -validity
此命令是用于生成Keystore的,一般生成后的目的地在/root/.keystore。找不到的话可以自定义生成的目录:keytool
-genkey -alias tomcat -keyalg RSA -validity -keystore
&keystore保存的路径&&
(注,你之前不是已经启用HTTPS了嘛,所以会有一个keystore文件的,我们暂时不动它,万一出现问题还能恢复原来的样子,一会儿都做好了,我们修改一下server.xml文件即可)
在此命令回车后会要求你填写一些东东,其中最需要注意的是"名字和姓氏"一定是你的域名或IP地址,如果你用于测试,可以随意使用一个域名,比如都是可以的,一会儿你把你的客户端机器的host文件里面加一句:ip&
就可以了,这个ip是你tomcat机器的Ip.
2.keytool -certreq -alias tomcat -keystore
"/root/.keystore" -file "tomcatreq"
此命令用来生成一个请求证书的文件。回车后输入密码就生成一个tomcatreq的文件了。
3.cat tomcatreq
复制begin和end中间的内容,不要把begin和end复制进去了。然后到我们的windows
ca证书服务器上提交一个证书请求。最后生成一个证书,下载证书链即可。
4.下载证书链(certnew-chain,就是后缀是p7b的文件)和证书文件(certnew.cer),导出为a-ca.cer和a-server.cer
把这两个证书都上传到服务器的相应目录。
openssl pkcs7 -in
certnew-chain.p7b -out ca.txt -outform PEM -inform DEA
-print_certs
把证书链转换为一个文件ca.txt,打开此文件,发现有两个begin和两个end,拷贝第二个begin和end,然后vi
server.cer,把拷贝的东东粘贴进去,保存
-import -alias tomcat1 -trustcacerts -file server.cer -keystore
"/root/.keystore"
导入证书,输入密码。然后会提示你将安装一个证书,输入yes回车即可。
6.keytool -import -alias tomcat
-trustcacerts -file certnew.cer -keystore "/root/.keystore"
&导入根证书(此文件就是之前从CA网站上下载的那个)
7.修改server.xml文件,要修改或者添加的就是红色部分
&!-- Define a SSL HTTP/1.1 Connector on port 8443
&Connector port="443" address="172.17.61.55"
maxHttpHeaderSize="8192"
&&&&&&&&&&&&&&
maxThreads="300" minSpareThreads="25" maxSpareThreads="75"
&&&&&&&&&&&&&&
enableLookups="false" disableUploadTimeout="true"
&&&&&&&&&&&&&&
acceptCount="100" scheme="https" secure="true"
&&&&&&&&&&&&&&
keystoreFile="/root/.keystore"
&&&&&&&&&&&&&&
keystorePass=""&&&&&&&&&&&&&&
clientAuth="false" sslProtocol="TLS" /&
8.重启tomcat,稍等片刻,这时我们把windows
ca证书服务器的CA根证书下载到我们的客户端安装好,然后打开刚才的域名,你将不会看到那个警告了。
在做这个的过程中我遇到有很多错误,能记起来的有两个:
1.不能使用那个openssl转换证书链为两个证书文件,否则导入时老提示错误。keytool error:
java.lang.Exception: Public keys in reply and keystore don't
2.特别的是我们最后导入证书时的alias也不能与生成keystore时使用的alias相同。否则会出现错误:keytool
error: java.lang.Exception: Public keys in reply and keystore don't
其它的错误还有很多,比如我的机器最初是安装了JDK的,由于启用HTTPS要求JDK1.3以上的,所以我就重新下载了一个1.5的,当我按照网上的步骤做好后用命令java
-version发现版本并不是我的1.5,后来经过同事的帮助,需要在配置文件/etc/profile里面的export PATH =
$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin 进行修改,要修改成export
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH即把红色部分放在最后,这样我就不用卸载最初的JDK了。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。Tomcat配置HTTPS方式 - Delei - 博客园
成功源于每日不断的积累!
posts - 44, comments - 6, trackbacks - 0, articles - 2
简要记录主要步骤备忘
1、进入到jdk下的bin目录
2、输入如下指令
keytool -v -genkey -alias tomcat -keyalg RSA -keystore d:/tomcat.keystore&&-validity 36500
d:/tomcat.keystore是将生成的tomcat.keystore放到d盘根目录下。
"-validity&36500&含义是证书有效期,36500表示100年,默认值是90天
注意若要放到c盘,在win7系统下,需要以管理员身份进入到命令行中进行操作,否则是无法创建tomcat.keystore的。本例放到d盘下。 如何以管理员身份进入到命令行下呢?开始-&搜索框中输入cmd-&等待(注意不回车)-&出现cmd.exe-&右键&以管理员身份运行&即可。
3、输入keystore密码
密码任意,此处以123456为例,要记住这个密码,之后在进行server.xml配置时需要使用。
4、输入名字、组织单位、组织、市、省、国家等信息
注意事项:
A、Enter keystore password:此处需要输入大于6个字符的字符串
B、&What is your first and last name?&这是必填项,并且必须是TOMCAT部署主机的域名或者IP[如:&或者&10.1.25.251],就是你将来要在浏览器中输入的访问地址
C、&What is the name of your organizational unit?&、&What is the name of your organization?&、&What is the name of your City or Locality?&、&What is the name of your State or Province?&、&What is the two-letter country code for this unit?&可以按照需要填写也可以不填写直接回车,在系统询问&correct?&时,对照输入信息,如果符合要求则使用键盘输入字母&y&,否则输入&n&重新填写上面的信息
D、Enter key password for &tomcat&,这项较为重要,会在tomcat配置文件中使用,建议输入与keystore的密码一致,设置其它密码也可以
l&&完成上述输入后,直接回车则在你在第二步中定义的位置找到生成的文件
5、输入之后会出现确认的提示
此时输入y,并回车。此时创建完成keystore。 进入到D盘根目录下可以看到已经生成的tomcat.xml
6、进入tomcat文件夹 找到conf目录下的sever.xml并进行编辑
7、编辑 & &Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" &&&& maxThreads="150" scheme="https" secure="true" &&&& clientAuth="false" keystoreFile="D:/AppServer/Tomcat/apache-tomcat-6.0.32/conf/tomcat.keystore" &&&& keystorePass="deleiguo" sslProtocol="TLS" /& 注: 方框中的keystore的密码,就是刚才我们设置的&123456&.
编辑完成后关闭并保存sever.xml
8、Tomcat启动成功后,使用https://127.0.0.1:8443 访问页面
页面成功打开即tomcat下的https配置成功。
9、应用程序HTTP自动跳转到HTTPS
在应用程序中web.xml中加入:
&security-constraint&&
&&&&&&&&web-resource-collection &&
&&&&&&&&&&&&&&&web-resource-name &SSL&/web-resource-name&&
&&&&&&&&&&&&&&&url-pattern&/*&/url-pattern&&
&&&&&&&&/web-resource-collection&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&user-data-constraint&&
&&&&&&&&&&&&&&&transport-guarantee&CONFIDENTIAL&/transport-guarantee&&
&&&&&&&&/user-data-constraint&&
&/security-constraint&
10、生成安全证书文件
keytool -export -alias tomcat -file D:/file.cer -keystore d:/tomcat.keystore -validity 36500
然后输入d:/tomcat.keystore中的keystore密码
-file D:/file.cer 即为生成的cer文件,可直接点击安装
11、注意事项:
(1)&&&&生成证书的时间,如果IE客户端所在机器的时间早于证书生效时间,或者晚于有效时间,IE会提示&该安全证书已到期或还未生效&
(2)&&&&如果IE提示&安全证书上的名称无效或者与站点名称不匹配&,则是由生成证书时填写的服务器所在主机的域名&您的名字与姓氏是什么?&/&What is your first and last name?&不正确引起的
12、遗留问题:
(1)如果AC主机不能通过域名查找,必须使用IP,但是这个IP只有在配置后才能确定,这样证书就必须在AC确定IP地址后才能生成
(2)证书文件只能绑定一个IP地址,假设有10.1.25.250&和&192.168.1.250&两个IP地址,在证书生成文件时,如使用了10.1.25.250,通过IE就只能使用10.1.25.250&来访问AC-WEB,192.168.1.250是无法访问AC-WEB的。温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
本人,男,现就读于内蒙古大学软件学院。我的格言是
平静的湖面练不出精悍的水手,
安逸的环境做不出时代的伟人。
年轻是就是犯错的资本。
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(4628)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'eclipse+tomcat搭建https环境',
blogAbstract:'&1&首先在本地建立一个keystore文件,例
进入JAVA_HOME(jdk下的bin目录) keytool -v -genkey -alias tomcat -keyalg RSA -keystore c:/tomcat.keystore
在其后输入密码,以及提及的信息。这样就生成了一个keystore文件。
&2& 在服务器关闭的情况下在生成的servser工程下,找到server.xml文件,在其中寻找&Connector port=\"8443\"……
将夹在上下的注释去掉。(寻找Connector port=\"8443“是否还有其他,有则将其注释掉)
&3&将keystore文件加载其中
&Connector port=\"8443\" protocol=\"HTTP/1.1\" SSLEnabled=\"true\"',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:9,
publishTime:5,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:1,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:' 本人,男,现就读于内蒙古大学软件学院。我的格言是\r\n平静的湖面练不出精悍的水手,\r\n安逸的环境做不出时代的伟人。\r\n年轻是就是犯错的资本。',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}Tomcat配置https环境(Windows+Linux)
windows下的配置主要是参考:
我需要的主要还是linux下的配置,不过windows下和linux下的原理应该差不多,并且windows下讲解比较清楚,因而记录下来以便于进行对比。
Windows下Tomcat配置https环境:
(1)进入到jdk下的bin目录
(2)输入如下指令“keytool -v -genkey -alias tomcat -keyalg RSA -keystore d:/tomcat.keystore”
d:/tomcat.keystore是将生成的tomcat.keystore放到d盘根目录下。注意若要放到c盘,在win7系统下,需要以管理员身份进入到命令行中进行操作,否则是无法创建tomcat.keystore的。本例放到d盘下。如何以管理员身份进入到命令行下呢?开始-&搜索框中输入cmd-&等待(注意不回车)-&出现cmd.exe-&右键“以管理员身份运行”即可。
keytool -genkey:自动使用默认的算法生成公钥和私钥
-alias[名称]:给证书取个别名
-keyalg:制定密钥的算法,如果需要制定密钥的长度,可以再加上keysize参数,密钥长度默认为1024位,使用DSA算法时,密钥长度必须在512到1024之间,并且是64的整数倍
-keystore:参数可以指定密钥库的名称。密钥库其实是存放密钥和证书文件,密钥库对应的文件如果不存在会自动创建。
-validity:证书的有效日期,默认是90天
-keypass changeit:不添加证书密码
-storepass changeit:不添加存储证书的密码
输入相关信息后,最后确认,便会在tomcat根目录下生成server.key文件。
(3)输入keystore密码
密码任意,此处以123456为例,要记住这个密码,之后在进行server.xml配置时需要使用。
(4)输入名字、组织单位、组织、市、省、国家等信息
(5)输入之后会出现确认的提示
此时输入y,并回车。此时创建完成keystore。进入到D盘根目录下可以看到已经生成的tomcat.xml
(6)输入tomcat的主密码
可以直接回车,默认为同keystore的密码一样。之后,会显示正在存储即完成。
(7)进入tomcat文件夹
找到conf目录下的sever.xml并进行编辑将所有以&Connector port="8443" 开头的connector注释。
(8)在sever.xml中添加加载keystore的代码
注意方框中的keystore的密码,就是刚才我们设置的“123456”.编辑完成后关闭并保存sever.xml。
(9)启动tomcat。
若出现如下错误“Keystore was tampered with,or password was incorrect”,即第(8)步设的密码出错了。请核对密码,重新编写sever.xml。
(10)启动成功后,使用https://127.0.0.1:8443 访问页面
页面成功打开即tomcat下的https配置成功。
(11)应用程序HTTP自动跳转到HTTPS
在应用程序中web.xml中加入:
&security-constraint&
&web-resource-collection &
&web-resource-name &SSL&/web-resource-name&
&url-pattern&/*&/url-pattern&
&/web-resource-collection&
&user-data-constraint&
&transport-guarantee&CONFIDENTIAL&/transport-guarantee&
&/user-data-constraint&
&/security-constraint&
(12)注意事项
1. 生成证书的时间,如果IE客户端所在机器的时间早于证书生效时间,或者晚于有效时间,IE会提示“该安全证书已到期或还未生效”
2.如果IE提示“安全证书上的名称无效或者与站点名称不匹配”,则是由生成证书时填写的服务器所在主机的域名“您的名字与姓氏是什么?”/“What is your first and last name?”不正确引起的
支持特定页面采用HTTPS传输,普通页面采用HTTP传输:
HTTPS相比HTTP来说,最大的好处就是安全,但是为了安全付出的代价是牺牲了性能。
所有我们需要采取控制,对特定需要https的页面采用https传输,普通页面采取http传输。
我们采用了过滤器,过滤器中的逻辑是这样子的,分为四种情况:
1.当前协议是HTTPS,当前请求的URL是需要采取HTTPS传输的URL,直接请求页面
2.当前协议是HTTPS,当前请求的URL是不需要采取HTTPS传输的URL,重定向到HTTP的端口
3.当前协议是HTTP,当前请求的URL是不需要采取HTTPS传输的URL,直接请求该页面
4.当前协议是HTTP,当前请求的URL是需要采取HTTPS传输的URL,重定向到HTTPS的端口。
Linux的参考网址:
1:安装jdk,[root@localhost ~]# ls jdk-1_5_0_19-linux-i586.binjdk-1_5_0_19-linux-i586.bin[root@localhost ~]# pwd/root[root@localhost ~]# chmod a+x jdk-1_5_0_19-linux-i586.bin [root@localhost ~]# ./jdk-1_5_0_19-linux-i586.bin 在当前目录下生成jdk1.5.0_19目录。 我把它移到/usr/local目录下。 [root@localhost ~]# mv jdk1.5.0_19
/usr/local/[root@localhost local]# ln -s jdk1.5.0_19 jdk下面是配置路径:[root@localhost local]# vi /etc/profile在文件的最后加入:export JAVA_HOME=/usr/local/jdkexport PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar然后运行如下命令使得不重启机器就生效:[root@localhost local]# source
/etc/profile2:安装tomcat, 其实上面配置路径就是为了tomcat能正常启动, 因为tomcat启动时需要用到到jdk,
[root@localhost local]# tar zxvf apache-tomcat-5.5.26.tar.gz[root@localhost local]# ln -s apache-tomcat-5.5.26 tomcat5.53:生成证书:[root@localhost ~]# keytool -genkey -alias .keystore -keyalg RSAEnter keystore password:
hellohelloWhat is your first and last name?[Unknown]:
#这项要和你linux server的机器名一样,这样有好处!查linux server的机器名,可以用hostname命令What is the name of your organizational unit?[Unknown]:
beaWhat is the name of your organization?[Unknown]:
beaWhat is the name of your City or Locality?[Unknown]:
suzhouWhat is the name of your State or Province?[Unknown]:
suzhouWhat is the two-letter country code for this unit?[Unknown]:
cnIs CN=liu, OU=bea, O=bea, L=suzhou, ST=suzhou, C=cn correct?[no]:
Enter key password for &.keystore&
(RETURN if same as keystore password):
hellohello尤其注意:两次输入的密码一定要一样!而且生成的.keystore的位置在~下(我用的是root,故在/root下)[root@localhost ~]# find / -name .keystore/root/.keystore然后复制该文件到/usr/local/tomcat5.5下(我tomcat安装在/usr/local目录下!)查看该文件的时候用ls -a4:对server.xml做配置,[root@localhost ~]# cd /usr/local/tomcat5.5/[root@localhost tomcat5.5]# lsbin
RELEASE-NOTES
RUNNING.txt
work[root@localhost tomcat5.5]# pwd/usr/local/tomcat5.5[root@localhost tomcat5.5]# ls -a.
RELEASE-NOTES
RUNNING.txt
work[root@localhost tomcat5.5]# cd conf/[root@localhost conf]# lsCatalina
catalina.policy
catalina.properties
context.xml
logging.properties
server-minimal.xml
server.xml
tomcat-users.xml
web.xml[root@localhost conf]# pwd/usr/local/tomcat5.5/conf[root@localhost conf]# vi
server.xml 修改部分如下:先把关于下面的注视去掉:
&Connector port="443" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
keystoreFile="/usr/local/tomcat/.keystore"
keystorePass="hellohello"
clientAuth="false" sslProtocol="TLS" /&粗体是我修改的部分4: 启动tomcat [root@localhost conf]# cd /usr/local/tomcat5.5/[root@localhost tomcat5.5]# lsbin
RELEASE-NOTES
RUNNING.txt
work[root@localhost tomcat5.5]# cd bin/[root@localhost bin]# lsbootstrap.jar
commons-logging-api-1.1.1.jar
jmxaccessor-tasks.xml
shutdown.bat
tomcat5w.exe
version.batcatalina.bat
cpappend.bat
jsvc.tar.gz
shutdown.sh
tomcat-juli.jar
version.shcatalina.sh
digest.bat
service.bat
startup.bat
tomcat-native.tar.gzcatalina-tasks.xml
setclasspath.bat
startup.sh
tool-wrapper.batcommons-daemon.jar
jkstatus-tasks.xml
setclasspath.sh
tomcat5.exe
tool-wrapper.sh[root@localhost bin]# pwd/usr/local/tomcat5.5/bin[root@localhost bin]# ./startup.sh Using CATALINA_BASE:
/usr/local/tomcat5.5Using CATALINA_HOME:
/usr/local/tomcat5.5Using CATALINA_TMPDIR: /usr/local/tomcat5.5/tempUsing JRE_HOME:
/usr/local/jdk[root@localhost bin]# netstat -antl | grep 443tcp
0 0.0.0.0:443
[root@localhost bin]# 这里tomcat已经启动了。 5:测试:启动浏览器
浏览: 4608 次
来自: 广州

我要回帖

更多关于 idea tomcat配置https 的文章

 

随机推荐