tomcat6.0配置ssl认证 (单向认证)

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

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

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

输入keystore密码:123456

再次输入新密码:123456

您的名字与姓氏是什么?

  [Unknown]  test

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

  [Unknown]  work

您的组织名称是什么?

  [Unknown]  china

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

  [Unknown]  jn

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

  [Unknown] sd

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

  [Unknown]  cn

CN=test, OU=work, O=china, L=jn, ST=sd, C=cn 正确吗?

  []  y

 

输入<mykey>的主密码

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

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

注意:

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

Step2,在tomcat安装目录下新建目录keystore,并拷贝server.keystore到其目录下。

(如我的tomcat安装目录C:\Program Files\Apache Software Foundation\Tomcat 6.0)

Step3,修tomcat安装目录下/conf/server.xml文件。添加httpsConnector

<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"/>

注意:

在原有的server.xml中有<connector></connector>标记对,但是注释了的,记的去掉注释

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

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

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

延伸

某些情况下,某些特定资源需要走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/choose/login.jsp

你可能感兴趣的:(java,tomcat,https,ssl)