您好、欢迎来到现金彩票网!
当前位置:热购彩票app下载 > 公钥构架 >

通向架构师的道路(第二天)之 apache tomcat https 应用

发布时间:2019-06-22 15:13 来源:未知 编辑:admin

  在前一天的学习中我们知道、了解并掌握了Web Server结合App Server是怎么样的一种架构,并且亲手通过Apache的Http Server与Tomcat6进行了整合的实验。

  减轻App Server端的压力,用Web Server来分压,即Web Server只负责处理静态HTML内容,而App Server专职负责处理Java请求,这对系统的performance是一个极大的提升。

  安全,Web Server端没有任何Java源代码包括编译后的东西,对Internet开放的只有Web Server,因此黑客就算通过80端口攻入了我们的Web Server,他能得到什么?除了静态HTML内容,任何逻辑,口令他都得不到,为什么?喏。。。因为我们的App Server“躲”在Web Server的屁股后面呢。

  那么当我们在作映射时,需要把/abc, /123, /def分别写成一行行的JKMount语句,是不是。。。OK,假设我们这个工程有100个servlet(这个算少的哦),你该不会在f文件中给我写这样的无聊的东西100行吧?

  所以,我们在规划我们的servlet时需要有矩可循,即pattern,因此我才一直强调,大家在servlet命名时必须统一成:

  因为微软的IIS本身就是一个Web Server,因此通过IIS和Tomcat的一个插件叫”isapi”的也可以作到这样的架构,但是我强烈不推荐,因为JAVA源于Unix系统,归于Unix系统,Unix可是不认什么IIS的,一定请一定用Apache,你是JAVA不是多奶(dot net)。

  我们一般的http走的是80端口,而https走的是443端口,有什么不一样的地方吗?

  telnet127.0.0.1 80,直接就登进了80端口(如果你机器上的Apache开放的话),这样好极了,所有的http中的get, put, post全部可以被我们截获,你的上网帐号,你提交的表单信息全部被别人拦截,就算你对一些信息加了密,对于黑客来说,这些加密被解密只是时间问题,而且一般黑客可以利用云计算,群集计算对你的加密可以进行“硬杀伤”,即穷举算法,利用超大规模集群解密的你的算法会很快,电影里的几十秒解开一个128位的加密不是神话,是真的!!!

  因此,我们要让黑客一开始就攻不进来,连门都进不来,何谈拿到我里面的东西,对不对?

  现在我们把我的http通道,变成了https,同时关闭80端口,因此用用户要访问必须经过443端口。好了,我们再来用:

  你连telnet都进不进去,因此,你就无法再获取http通道内传输的东西了。因此黑客要进入你的网站先要突破这个https,而https使用的是RSA非对称128位加密,如果是安全交易类甚至会使用RSA 1024位加密算法,除非是世界上最高明的黑客才能突破我们的防线 HTTPS的构成

  ,RootCA是全球的根,这个“树”的根是全球任何IE、FireFox、Safari里的证书库里都有这个RootCA的,因为它们是权威,所以全球的电子证书拿它们做“根”,这些证书比较具有代表性的是:

  其此,全球的计算器客户默认在装完系统后,都会带有这些ROOT CA,因此“

  ”,先建立起信任关系,然后再开始数据传输,在加密的世界中“建立信任”就需要用到至少2张证书,即ROOT CA, SERVER CA,我们把这个信任建立的过程称为“Hands Shake”,握手协议。前面说到了,这个握手分单向和双向,包括上述这个图就是一个单向握手,什么叫单向,什么叫双向呢?我们下面来讲解:

  所以,二奶单向里信任贪官,这就是二奶协议,即客户端认为我访问的这台服务器“是安全的”,因此客户端可以向服务器发送和提交任何东西。

  即客户端信任服务器,因此客户端可以向服务器发送和提交任何东西。同时,服务器也信任客户端,允许该客户端向我发送和提交东西。

  客户端单向信任服务器很简单,只要这个服务器是我客户端信任的顶级根签发出来的证书就行,而服务器如何信任客户端呢?记住下面三句话:

  把上面这个“真理”倒过来,呵呵,好玩了,因为public key只能用来加密而解密必须是private key,因此公钥是不能加密的,公钥也不能用来解密,那么它们该怎么做?

  随后HP公司拿出以前给这家代理公司的公钥,对这个签名做一个“解密”(被称为杂凑算法)

  然后拿这个防伪条形码和客户带来的防伪条形码一比较,完全一致,所以HP和客户说:您可以完全相信这家公司,这家公司是我代理的。这边这个防伪条形码就是代理公司用HP在颁发证书时给它时用HP的私钥的“签名”;

  HP公司用为当初给代理商发放证书时同时生成的密钥对里的公钥对这个签个名做一个杂凑算法,然后拿算出来的防伪条形码再和客户带来的这个防伪条形码比对的这个过程被称为“认证”;

  我们把它称为电子“指纹”,一般用的是SHA或者是MD5算法,因为MD5和SHA是不可逆唯一性算法,所以把它比喻成“指纹”再恰当不过了。

  所以,在实际开发环境中,我们自己来模拟这个ROOTCA,然后用自己模拟出来的ROOTCA去签我们服务器的证书,这个过程就被称为“自签”

  OpenSSL就是这么一个自签,加密的命令行工具,它是从UNIX下分离出来的一个项目,但也有FOR WINDOWS平台的,比如说我给你们用的这个OPENSSL,就是For WIN的,但是由于它是从UNIX/LINUX下产生的,因此它内部的配置还是用的是LINUX/UNIX的盘符与路径,需要手动去校正,当然我已经做好了校正,因此直接打了个压缩包放在了FTP上,大家拿下来后解压后就可以直接用了。

  这边不是去除而是代表这个证书在被应用程序启动时不需要显示的提示用户输入口令

  在启动HTTPS协议的服务器时,一般我们点一下service-apache2.x启动,就启动了,但如果这个https所带的证书是没有经过上述这道手续后处理的话,这个服务在启动时会失败,而需要切换成手动命令行启动,就是黑屏!在黑屏状态下,apache2.x服务器启动时会提示你要求:输入口令,这个太麻烦了,一般启动服务器服务的一定是超级管理员,因此一般情况下没必要在启动相关服务时再输入一遍口令了。

  网上有很多说法,说是先产生CA的Request请求,再用ca.key去自签,我给大家介绍一条一步到位的产生ca ROOT证书的命令,为了安全,我们在最后加上“”,以使openssl工具可以找到相应的config文件(有些系统在指定了OPENSSL_CONF环境变量后一般就不需要在命令行里去手工指定这个-config变量了)。

  由于我们产生的证书为:X509格式,因此需要按照X509格式填入相关的值。

  将ROOT CA导入客户端的根级信任域,有多少台客户端,每个客户端都要导一边这个证书!

  发现了没有,这张证书是有效的证书了,所以在“证书信息”前原有的一个红叉叉,消失了。

  用Root CA去对Web服务器的证书请求即csr(certificate request)进行签名认证

  如果在操作时有任何错,必须连同生成的.key,.csr, .crt文件全部删除重头来一遍

  选中这个shnlap93的根级证书,点[删除],会弹出两次确认框,选“yes”确认删除掉它。

  关闭IE,然后我们再次双击我们的server.crt文件,来查看证书内容。

  时,你会被提示说“该证书不被任何”,然后让你点一下“确认”按钮,点完信任后能进入我们的Web应用,但是,原先应该显示“金黄色钥匙”的地方会显示一个红色的圈圈,并且当你查看证书信息时,这个地方也会显示“证书不受信任”,并且显示一个红色的大叉。2.7 为Tomcat也布署https协议我们的Apache HttpServer已经走https协议了,不是已经enough了吗?NO,远远不够,如果你没有用到任何App Server即tomcat/weblogic/was那么我们说我们的应用已经走https协议了,但是因为我们的架构是Web Server + App Server

  如果只是Web Server走https协议,而App Server没有走https协议,这就叫“假https架构”,是一种极其偷赖和不负责任的做法。概念同产生Apache的HttpServer的证书一样,只是这边的信任域有点不一样。

  原有ca.crt和ca.key继续有用,因为ROOT CA都是一个,而且必须一定始终是唯一的一个,对吧?

  jks文件其实就是把key文件与crt文件合在一起,以java key store的格式来存储而己

  证书上没有红色的大叉,因为我们的Root CA装在我们的IE的根级信任域中,OK,下面来了,生成这个JKS,就是把crt和key合在一起,来了!

  我们不是生成过shnlap93.crt吗?把它导入jks不就是能够把原有的“正在处于请求被签名认证”这个状态改成“已经被Root CA签名认证” 了吗?对吧?所以,我们用于布署tomcat的ssl证书的jks格式的文件shnlap93.jks已经完整了。

  当启用了https协议后,你在ie地址栏就不能再用localhost了,为什么?因为我们的证书中的CN(Common Name)填入的是主机名,如果你还用:

  ,那么你也能正常进入网址,只是多了几步https不被信任的警告框,并且你右上角的ssl连接信息为红色的大叉,对于这样的https连接,如果换成是购物网站,你敢信任吗?2.10 apache https + tomcat https假https

  这个例子中,hp公司相当于证书认证机构。100个代理,相当于谷歌公司,亚马逊公司。我们相当于客户,hp公司或者说认证机构替我们保存着公钥。

http://e-ndicus.com/gongyuegoujia/518.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有