您的位置:首页 > 运维架构 > Tomcat

Tomcat6.0 SSL的配置

2015-05-25 10:31 351 查看
1. 参考:

Tomcat 6.0 自带的文档docs/ssl-howto.html,详细介绍了配置过程。

2. 目的:

       以下详细描述配置过程,仅作为备忘录。

3. 备忘录:

Step1,安装tomcat 6.0.18,此为当前最新版本,需JDK5.0或以上。

l         JDK安装后,可以在命令行下使用如下命令检测是否成功。

C:\Documents and Settings\new>java -version

java version "1.6.0_10"

Java(TM) SE Runtime Environment (build 1.6.0_10-b33)

Java HotSpot(TM) Client VM (build 11.0-b15, mixed mode, sharing)

看到以上蓝色信息,则表示JDK安装配置成功。

l         Tomcat的运行需要配置JDK_HOME和JRE_HOME环境变量,JRE_HOME默认等于JDK_HOME的值。

Step2,创建服务器端certificate keystore和自签名certificate。

       在命令行下使用如下命令:

C:\Documents and Settings\new>keytool -genkey -alias mykey -keyalg RSA -validity 3650 -keystore server.keystore

输入keystore密码:123456

再次输入新密码:123456

您的名字与姓氏是什么?

  [Unknown]:  dinstone

您的组织单位名称是什么?

  [Unknown]:  advance software ltd.

您的组织名称是什么?

  [Unknown]:  china

您所在的城市或区域名称是什么?

  [Unknown]:  beijing

您所在的州或省份名称是什么?

  [Unknown]:  beijing

该单位的两字母国家代码是什么

  [Unknown]:  cn

CN=dinstone, OU=advance software ltd., O=china, L=beijing, ST=beijing, C=cn 正确吗?

  [否]:  y

 

输入<mykey>的主密码

        (如果和 keystore 密码相同,按回车):

在C:\Documents and Settings\new下可以找到一个文件:server.keystore,其中就包含了自签名的证书。

注意:

       这里要求certificate keystore 和certificate的密码一致,此为Tomcat的约束。

Step3,在%TOMCAT_HOME%目录下新建目录keystore,并拷贝server.keystore到其目录下。

Step4,修改%TOMCAT_HOME%/conf/server.xml文件。添加https的Connector。

<Connector

           port="8443" minSpareThreads="5" maxSpareThreads="75"

           enableLookups="true" disableUploadTimeout="true"

           acceptCount="100"  maxThreads="200"

           scheme="https" secure="true" SSLEnabled="true"

           keystoreFile="keystore/server.keystore" keystorePass="123456"

           clientAuth="false" sslProtocol="TLS"/> 

注意:

       keystoreFile指向文件%TOMCAT_HOME%/keystore/server.keystore文件。

       keystorePass就是刚才生成certificate keystore的密码。

Step5,测试Https。访问https://localhost:8443/,提示有不安全的证书,接受证书,看到可亲的tom猫。

4. 延伸

某些情况下,某些特定资源需要走https协议,如登录请求。这时,我们可以在web.xml中配置约束。

<security-constraint>

       <web-resource-collection>

           <web-resource-name>SSL Resource</web-resource-name>

           <url-pattern>/login.jsp</url-pattern>

       </web-resource-collection>

       <user-data-constraint>

               <transport-guarantee>

                       CONFIDENTIAL

</transport-guarantee>

       </user-data-constraint>

</security-constraint>

这样当使用如下请求访问登录页面时,则服务器将该请求建立在https连接上。
http://localhost:8080/CCB/login.jsp
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: