javaweb-day04-5(javaWeb开发入门 - tomcat体系架构、配置https加密连接器)

来源:互联网 发布:淘宝怎么认证卖家 编辑:程序博客网 时间:2024/05/16 15:05

打包Web应用为war文件:

jar  -cvf    aa.war   news

将war文件拷贝到tomcat的webapps目录下,会自动解压。


配context元素的reloadable元素,让tomcat自动加载更新后的web应用:

<Context  path="xxx"  docBase="c:\news"  reloadable="true" />

开发里面不建议用这个元素,一般情况下等全部改完再一起发布。


Tomcat体系架构

  • tomcat 的体系结构在 server.xml 文件中就能体现出来:
  • <?xml version='1.0' encoding='utf-8'?><Server port="8005" shutdown="SHUTDOWN">   <!--启动服务器,占用8005端口-->  <Service name="Catalina">   <!--启动一个服务,服务的名称是“Catalina”-->    <Connector port="8080" protocol="HTTP/1.1"               connectionTimeout="20000"               redirectPort="8443" />         <!--启动一个客户机连接器,连接器收到请求。这个连接器是个没有加密的连接器-->        <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />      <Engine name="Catalina" defaultHost="localhost">  <!--把请求交给引擎-->      <Host name="localhost"  appBase="webapps"            unpackWARs="true" autoDeploy="true">            </Host>      <Host name="www.mengmei.com"  appBase="c:\mengmei">             <!--引擎会找到客户机要请求的主机-->            <Context path="" docBase="c:\mengmei\mail"></Context>     <!--并找到客户机要访问的web应用-->      </Host>    </Engine>  </Service></Server>


配置https连接器

  • 公钥、私钥加密
    • 原理:A向B发送数据的时候,先向B要一个密钥用来加密数据。B使用算法生成一个公钥和一个私钥,用公钥加密的数据只能用私钥来解密。这样B把公钥发给A,A把数据用公钥加密后发送给B,然后B用私钥解密数据。
      • 这种加密方式的风险:可能有C将B发送给A的公钥截获,把自己生成的公钥发给A,然后再将A用此公钥加密的数据截获,用自己的私钥解密,来窃取数据。然后C再另拟一份数据用B的公钥加密后发送给B,进行捣乱。
      • 那么公钥、私钥加密就出现了这样一个问题,A怎么确认这个公钥就是B发过来的。
    • 总结:密码学讨论到最后,没有安全性可言。只能用一个机构来担保。有CA这么一个机构,CA为B的公钥担保就会发给B一份数字证书,这个证书包括CA的签名和B的公钥。当A收到公钥后看到有CA的担保,就可以放心大胆的用这个公钥了。如果CA这个机构也被第三方攻陷了,那就都完蛋了。
  • 为服务器生成数字证书:keytool -genkey -alias tomcat -keyalg RSA
    • 生成的证书会放在:终端显示的当前目录下,是一个名为.keystore的密钥库文件。并把密钥库文件剪切到Tomcat的conf目录下。
  • 配置密钥库路径和密码到Tomcat服务器:在apache-tomcat-7.0.42\conf\server.xml文件中配置
    • <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
    •                maxThreads="150" scheme="https" secure="true"
    •                clientAuth="false" sslProtocol="TLS" keystoreFile="conf\.keystore" keystorePass="123456"/>
    • 如果 keystoreFile 和 keystorePass 这两个属性名记不住的话,去【http://localhost:8080 - Documentation - Reference - Configuration - Connectors - HTTP - SSL Support 的 Attribute表格】中查找。
    • 配置后保存server.xml文件,重启服务器。
  • 浏览器安全访问服务器的方式:https://localhost:8443


Tomcat服务器的管理平台

  • http://localhost:8080/    -    Manager App  -   需要用户名和密码。
  • apache-tomcat-7.0.42\conf\tomcat-users.xml 文件 可以配置登录管理平台的用户名密码。

<?xml version='1.0' encoding='utf-8'?><tomcat-users>  <role rolename="tomcat"/>  <role rolename="role1"/>  <user username="tomcat" password="tomcat" roles="tomcat"/>  <user username="both" password="tomcat" roles="tomcat,role1"/>  <user username="role1" password="tomcat" roles="role1"/></tomcat-users>

  • 默认配了三个用户名和密码都是加了注释的,像这样把注释打开。但是这时候这几个用户没有管理员权限,我们定义了管理员权限,并为第一个用户设置了管理员权限:

<tomcat-users>  <role rolename="tomcat"/>  <role rolename="role1"/>  <role rolename="manager-gui"/>  <user username="tomcat" password="tomcat" roles="tomcat,manager-gui"/>  <user username="both" password="tomcat" roles="tomcat,role1"/>  <user username="role1" password="tomcat" roles="role1"/></tomcat-users>

这样配置后,保存 tomcat-users.xml 文件,并重启服务器,就可以使用了。


  • 想访问   http://localhost:8080/    -    Host Manager   主机管理,再为用户加个 admin-gui 权限:

<tomcat-users>  <role rolename="tomcat"/>  <role rolename="role1"/>  <role rolename="manager-gui"/>  <role rolename="admin-gui"/>  <user username="tomcat" password="tomcat" roles="tomcat,manager-gui,admin-gui"/>  <user username="both" password="tomcat" roles="tomcat,role1"/>  <user username="role1" password="tomcat" roles="role1"/></tomcat-users>

这样 username="tomcat"  password="tomcat" 就既能访问 Manager App 又能访问 Host Manager 了。



web应用的开发前景

软件开发的两种架构C/S  和 B/S :

  • C/S 架构是 客户机 - 服务器 架构:
  • B/S 架构是典型的 浏览器-服务器 架构:



context元素常用属性










0 0
原创粉丝点击