b应用基础实验教程 第十章 Tomcat中的SSL配置 Lab10 Tomcat中的SSL配置 随着万维网的发展,越来越多的应用开始背搭建在HTTP协议的基础上。HTTP协议是 种简单并且可靠的应用层协议,但是也有其不足之处,其中一点就是安全性问题。由于HTTP 协议是明文传输,因此任何通过HTTP协议传输的数据理论上都可以被任何传输中间结点所 捕获和解析。因此SSL( Secure Socket Layer)技术应运而生。在这次实验中,我们将会 了解到SSL的意义、原理以及在 Tomcat中部署SSL应用的配置方法 l预备知识 1.1SSL简介 Secure socket layer(SsL协议最初由 Netscape企业发展,现已成为网络用来鉴别网站和 网页浏览者身份,以及在浏览器使用者及网页服务器之间进行加密通讯的全球化标准 由于SSL技术已建立到所有主要的浏览器和WEB服务器程序中,因此,仅需安装数字 证书,或服务器证书就可以激活服务器功能了 后来,随着SSL应用的推广,ITF(www.ietf.org将SSL作了标准化,即RFC2246,并将 其称为TLS( Transport Layer Security),从技术上讲,TLS10与SSL30的差别非常微 SSL是一个介于HTP协议与TCP之间的一个可选层,其位置大致如下: I Httpi I SSLI I TCPI I IPI SSL在TCP之上建立了一个加密通道,通过这一层的数据经过了加密,因此达到保密 的效果
Web 应用基础实验教程 第十章 Tomcat 中的 SSL 配置 1 Lab 10 Tomcat 中的 SSL 配置 随着万维网的发展,越来越多的应用开始背搭建在 HTTP 协议的基础上。HTTP 协议是一 种简单并且可靠的应用层协议,但是也有其不足之处,其中一点就是安全性问题。由于 HTTP 协议是明文传输,因此任何通过 HTTP 协议传输的数据理论上都可以被任何传输中间结点所 捕获和解析。因此 SSL(Secure Socket Layer)技术应运而生。在这次实验中,我们将会 了解到 SSL 的意义、原理以及在 Tomcat 中部署 SSL 应用的配置方法。 1 预备知识 1.1 SSL 简介 Secure socket layer(SSL)协议最初由 Netscape 企业发展,现已成为网络用来鉴别网站和 网页浏览者身份,以及在浏览器使用者及网页服务器之间进行加密通讯的全球化标准。 由于 SSL 技术已建立到所有主要的浏览器和 WEB 服务器程序中,因此,仅需安装数字 证书,或服务器证书就可以激活服务器功能了。 后来,随着 SSL 应用的推广,IETF(www.ietf.org)将 SSL 作了标准化,即 RFC2246,并将 其称为 TLS(Transport Layer Security),从技术上讲,TLS1.0 与 SSL3.0 的差别非常微 小。 SSL 是一个介于 HTTP 协议与 TCP 之间的一个可选层,其位置大致如下: --------- | HTTP | --------- | SSL | --------- | TCP | --------- | IP | --------- SSL 在 TCP 之上建立了一个加密通道,通过这一层的数据经过了加密,因此达到保密 的效果
b应用基础实验教程 第十章 Tomcat中的SSL配置 1.2SSL与 Https 安全超文本传输协议(Https或Shttp)是一种结合HTIP而设计的消息的安全通 信协议。 Https实际上应用了 Netscape的完全套接字层(SSL)作为HTP应用层的 子层。Https使用端口443,而不是像HTTP那样使用端口80来和TCPP进行通信 2实验1在 Tomcat中配置SsL 实验目的 (1)熟悉SSL的实现机制 (2)学习 Tomcat中简单配置SSL的方法 实验任务 通过配置 Tomcat,使得浏览器可以对服务器进行单项验证,并通过Hps协议访问服务 器中的内容。 实验环境 Java SdK: jDK 1.4.2 服务器: Tomcat51 实验交付物 1.服务器证书文件: tomcat keystore 2. Tomcat的配置文件: server xml 实验步骤 (1)打开 Tomcat的HTPS监听端口(默认为关闭)。找到 Tomcat安装目录下的 /conf/ server.xml文件(如图1-1所示)
Web 应用基础实验教程 第十章 Tomcat 中的 SSL 配置 2 1.2 SSL 与 HTTPS 安全超文本传输协议(HTTPS 或 SHTTP)是一种结合 HTTP 而设计的消息的安全通 信协议。HTTPS 实际上应用了 Netscape 的完全套接字层(SSL)作为 HTTP 应用层的 子层。HTTPS 使用端口 443,而不是像 HTTP 那样使用端口 80 来和 TCP/IP 进行通信。 2 实验 1 在 Tomcat 中配置 SSL 实验目的: (1) 熟悉 SSL 的实现机制。 (2) 学习 Tomcat 中简单配置 SSL 的方法。 实验任务: 通过配置 Tomcat,使得浏览器可以对服务器进行单项验证,并通过 Https 协议访问服务 器中的内容。 实验环境: z Java SDK:JDK 1.4.2 z 服务器:Tomcat 5.1 实验交付物: 1. 服务器证书文件:tomcat.keystore 2. Tomcat 的配置文件:server.xml 实验步骤: (1) 打开 Tomcat 的 HTTPS 监听端口(默认为关闭)。找到 Tomcat 安装目录下的 /conf/server.xml 文件(如图 1-1 所示)
b应用基础实验教程 第十章 Tomcat中的SSL配置 2→节9其xc9h的中AW温回国口Q0 Js翻 2《!脚::。日2pc:21wca1 a ge: th:4112pee: sceD:e:3:don e-m.- enab:eLoo up” raige" redirectOrs”4 protocol=”/1.3-D <l-- Define a Prowled p/1: Connector on port 8012 <:--see proxy acce 4n:24bt2h:2,“ cCoaneceo: Bor:.042 图10-1 (2)注意图10-1中所选中的部分。该部分在 Tomcat安装时被注释。现在将注释符号 掉,我们就可以打开 Tomcat的HTPS监听端口(默认为8443端口)。在这个 Connect 元素中,c1 ientAuth=" false"说明了客户端验证不需要,因此只是一个单向验 证。如果需要进行双向验证,则需要将该值设为\ (3)接下来我们要做的是获得证书( Certificate)。由于我们这个实验所要做的只是浏 览器对服务器的单向认证,因此我们只需要获得服务器证书。获得证书的方法很多, 现在我们使用JRE中自带的 retool来手动创建一个证书文件。 Keytool位于JRE 安装目录中的/bin/目录下。如图10-2所示, keytool是一个非常强大的密钥生成和 管理工具
Web 应用基础实验教程 第十章 Tomcat 中的 SSL 配置 3 图 10-1 (2) 注意图 10-1 中所选中的部分。该部分在 Tomcat 安装时被注释。现在将注释符号去 掉,我们就可以打开 Tomcat 的 HTTPS 监听端口(默认为 8443 端口)。在这个 Connect 元素中,clientAuth="false"说明了客户端验证不需要,因此只是一个单向验 证。如果需要进行双向验证,则需要将该值设为\。 (3) 接下来我们要做的是获得证书(Certificate)。由于我们这个实验所要做的只是浏 览器对服务器的单向认证,因此我们只需要获得服务器证书。获得证书的方法很多, 现在我们使用 JRE 中自带的 keytool 来手动创建一个证书文件。Keytool 位于 JRE 安装目录中的/bin/目录下。如图 10-2 所示,keytool 是一个非常强大的密钥生成和 管理工具
b应用基础实验教程 第十章 Tomcat中的SSL配置 PRogram Files wava\re1.5.g\bin > keytool I-alias <alias>] [-sigalg <sigalg>1 file <csr file>] [-ke ypass <keypass>] I-providerClass <provider_ class_ name>[-providerArg <arg>]] e lete [→υ】[- protected]-a1ias< alias> I-ke ystore <ke ystore>] [-storepass <storepass>I [-storetype <storetype > [-providerName <name >I providerclass< provider class name〉【- providerArg<arg>】] export -v】【-fc】 I-protected -a1主as<a1主as>]【-file< cert fi1e> I-keystore <keystore>] [-storepass <storepass>] I-storetype <storetype>] [-providerName <name >1 I-providerClass <provider_class_name>[-providerArg <arg>]] genke [→u】[- protect [-alias <alias>] L-keyalg <ke yalg>] [-keysize <ke ys ize>] igalg <sigal> L-validity <valDays >] [-ke pass <ke ypass>] [-keys tore <ke ys tore >1 [-storepass <storepass>1 [-storetype <storetype >1 [-providerName <name >1 -providerClass <provider_ class_name>[-providerArg <arg>]] he lp identit ydb[→v】[- protected [-file <idb file> I-keystore <ke ystore >I [-storepass <storepass>I [-storetype <storet ype>] [-providerName <name>] -providerClass <provider_class_name>[-providerArg <arg>]] import v】【- noprompt】【 trustcacerts- protected] alias <alias>I [-file <cert- file>] [-ke pass <ke pass >1 I-keystore <keystore>] [-storepass <storepass >1 I-storetype <storetype > [-providerName <name >1 I-providerClass <provider class name> [-providerArg <arg>]] 图10-2 (4)现在,我们输入图10-3中所显示的命令并填入相应的证书属性便可以在命令行所 在目录下生成一个证书文件。注意:密钥仓库的默认密码为 changeit,而最后我们 要输入的证书密码必须与密钥仓库密码相一致:-a1ias制定了证书的别名; - keya1指定了证书所选用的废堆成加密算法,这里为RSA:- keysize指定了密 钥长度,这里为1024位长;- validity指定了证书的有效期限,这里为365天 keystore制定了生成的证书文件名
Web 应用基础实验教程 第十章 Tomcat 中的 SSL 配置 4 图 10-2 (4) 现在,我们输入图 10-3 中所显示的命令并填入相应的证书属性便可以在命令行所 在目录下生成一个证书文件。注意:密钥仓库的默认密码为 changeit,而最后我们 要输入的证书密码必须与密钥仓库密码相一致;-alias 制定了证书的别名; -keyagl 指定了证书所选用的废堆成加密算法,这里为 RSA;-keysize 指定了密 钥长度,这里为 1024 位长;-validity 指定了证书的有效期限,这里为 365 天; -keystore 制定了生成的证书文件名
b应用基础实验教程 第十章 Tomcat中的SSL配置 NProgram Files wava\ire1.5.g\bin >ke ytool -genkey -alias tomcat -ke yalg 24 -validity 356 -ke ystore tomcat ke ystore ter keystore password: "changeit- irst and last n ganizational unit [Unknown ]: IBM what is the [Unknown ]: IBM Cit [ Unknown]: Shangha主 What is tH What is the two-letter country code for th [Unknown ]: Ch CN=Le Goff, OU=IBM, 0=IBM, L=Shanghai, ST=Shanghai, C=CN correct Ino ]: yes ter key password for <tomcat <RETURN if same as keystore password>: changeit \Program Files wava\jre15g\bin 图10-3 (5)现在我们将生成出来的 tomcat. keystore复制到 tomcat的安装目录下。然后继续 编辑 server.xml文件。在(1)中所提到的 Connect元素中添加属性 keystoreFile=" tomcat. keystore",表示证书文件的路径(可以是 tomcat的 相对路径,也可以是绝对路径):同时,如果证书文件的密码不是默认的 changeit, 则需要再添加一个属性 password,其值为证书文件的密码。重新启动 tomcat,并通 过8443端口进行访问,我们便可以看到浏览器提示用户验证证书的可信性。点击 View Certificate这个按钮,我们就可以查看证书的详细信息
Web 应用基础实验教程 第十章 Tomcat 中的 SSL 配置 5 图 10-3 (5) 现在我们将生成出来的 tomcat.keystore 复制到 tomcat 的安装目录下。然后继续 编 辑 server.xml 文 件。在(1) 中所提到的 Connect 元素中添加属性 keystoreFile="tomcat.keystore",表示证书文件的路径(可以是 tomcat 的 相对路径,也可以是绝对路径);同时,如果证书文件的密码不是默认的 changeit, 则需要再添加一个属性 password,其值为证书文件的密码。重新启动 tomcat,并通 过 8443 端口进行访问,我们便可以看到浏览器提示用户验证证书的可信性。点击 View Certificate 这个按钮,我们就可以查看证书的详细信息