为了登陆的安全性,cas默认是用https协议进行用户名与密码的传递。但是tomcat在配置完成后默认并没有开启https端口(8443)。
这个时候就需要手工配置。当然,新版本的cas并没有强制使用https协议进行用户名与密码的传递,只是在某些老版本中有这方面的
限制,写在了源代码中。但是为了安全起见,为tomcat配置ssl还是十分必要的。你总不想被大家都能用的抓包工具看到http协议post
过去的用户名与密码明文吧?
这里我们对tomcat6.0.6进行ssl配置。
系统默认已经安装jdk1.5或以上版本,并且java_home等环境已经配置停当。
其他的tomcat版本在以下有所说明,这里按下不表。
首先上两个参考文档地址:
Keytool使用指南:
http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/keytool.html
Tomcat-ssl配置指南:
http://tomcat.apache.org/tomcat-5.5-doc/ssl-howto.html
英文牛的童子童鞋可以直接看之。
配置步骤如下(windows xp操作系统,unix系统见上面发的链接):
首先我们在F盘下建立目录F:/yaowei/ca,
cmd进入此目录
执行命令
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore -validity 3600
然后系统会提示一系列输入,这里需要特别注意的是第一个,您的名字与姓氏是什么?
这里一定要输入localhost或者你本机的ip地址(测试用)
或者你这个主机的域名,如果有的话。
需要声明的是以下几个命令执行完成后,证书是导入到了本机的jre,
但是由于这个证书是自己给自己颁发的,不受浏览器所认可的信任根证书颁发机构所信任,因而会出安全警告。
在测试时我们可以忽略这些。但如果是商用的话,就需要花钱申请证书了。
好了,回到正题,名字与姓氏输入完成后,
以下的所有提示输入都可以随便填,这里我们都填了cn。
最后会提示:
CN=localhost, OU=cn, O=cn, L=cn, ST=cn, C=cn 正确吗?输入y即可。
完成后我们会发现目录下生成了server.keystore文件。
然后执行
keytool -export -trustcacerts -alias tomcat -file server.cer -keystore server.keystore -storepass changeit
如果没有异常,会提示:
保存在文件中的认证<server.cer>
目录下生成了server.cer文件
然后再执行
keytool -import -trustcacerts -alias tomcat -file server.cer -keystore %java_home%/jre/lib/security/cacerts -storepass changeit
注意将%java_home%替换为本机路径
系统会提示一堆,最会一句话是:
信任这个认证,输入y即可。
下面是执行的命令及其截图:
完了以后打开tomcat目录下的conf/server.xml文件,
找到
Connector port="8443"这段,去掉注释,
将其修改为
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="F:/yaowei/ca/server.keystore"
keystorePass="changeit" />
注意keystoreFile的路径,
保存后重启tomcat,
浏览器地址栏输入
会弹出安全提示,选是即可,
就可以看到tomcat的欢迎页面了。
OK,tomcat ssl配置完成。
注意,tomcat不同版本配置是不同的:
Tomcat4.1.34配置:
xml 代码
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8443" enableLookups="true" scheme="https" secure="true"
acceptCount="100"
useURIValidationHack="false" disableUploadTimeout="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="server.keystore"
keystorePass="changeit"/>
Tomcat5.5.9配置:
xml 代码
<Connector port="8443" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="server.keystore"
keystorePass="changeit"/>
Tomcat5.5.20配置(此配置同样可用于Tomcat6.0):
xml 代码
<Connector protocol="org.apache.coyote.http11.Http11Protocol"
port="8443" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="server.keystore"
keystorePass="changeit"/>
Tomcat6.0.10配置:
xml 代码
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
port="8443" minSpareThreads="5" maxSpareThreads="75"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="D:/tools/apache-tomcat-6.0.10/server.keystore"
keystorePass="changeit"/>
tomcat6支持3种,请参考以下文档:
http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html
weblogic配置一般来说都是商用的,需要申请证书,相对来说要复杂些
这里就不细讲了,有需要的可以给我留言。