[计算机软件及应用]通向架构师的道路15.doc

上传人:sccc 文档编号:4561963 上传时间:2023-04-27 格式:DOC 页数:93 大小:2.29MB
返回 下载 相关 举报
[计算机软件及应用]通向架构师的道路15.doc_第1页
第1页 / 共93页
[计算机软件及应用]通向架构师的道路15.doc_第2页
第2页 / 共93页
[计算机软件及应用]通向架构师的道路15.doc_第3页
第3页 / 共93页
[计算机软件及应用]通向架构师的道路15.doc_第4页
第4页 / 共93页
[计算机软件及应用]通向架构师的道路15.doc_第5页
第5页 / 共93页
点击查看更多>>
资源描述

《[计算机软件及应用]通向架构师的道路15.doc》由会员分享,可在线阅读,更多相关《[计算机软件及应用]通向架构师的道路15.doc(93页珍藏版)》请在三一办公上搜索。

1、一、先从J2EE工程的通用架构说起这是一个通用的Web即B/S工程的架构,它由: Web Server App Server DB Server三大部分组成,其中: Web Server置于企业防火墙外,这个防火墙,大家可以认为是一个CISCO路由器,然后在CISCO路由器上开放了两个端口为:80和443。80端口:用于正常的http访问443端口:用于https访问,即如果你在ie里打入https:/xxx.xxx.xx这样的地址,默认走的是443这个端口。 WebServer专门:用于解析HTML、JS(JavaScript)、CSS、JPG/GIF等图片格式文件、TXT、VBSCRIPT

2、、PHP等一切一切“静态”网页内容。 App Server置于企业防火墙内,它和Web Server之间的连接必须且一定为内部IP连接。外部IP:即Internet IP地址,我们的web服务器一般会有一个内部IP一个外部IP,因此在这里,我们的App Server没有任何外部IP,只有内部IP,所以我在这边说App Server与Web Server只能以内部IP形式连接。打比方说我们用的是tomcat,它的端口为8080,那么这个ip地址上的8080端口只能由任何内部ip才能访问,外部的internet是访问不了的,这样做就是为了安全。App Server用于解析我们的任何需要Java编译

3、器才能解析的“动态”网页,其实App Server本身也能解析任何静态网页的。那么我们这样来想一下:我们让负责专门解析静态网页的Web Server来解析html等内容,而让App Server专门用于解析任何需要Java编译器才能解析的东西,让它们“两人”各司其职。这样作的好处:1)为App Server“减压”,同时也提高了performance2)不用再把8080这个端口暴露在internet上了,也很安全,必经我们的app server上可是有我们的代码的,就算是编译过的代码也容易被“反编译”,这是很不安全的。3)为将来的进一步的“集群扩展”打好了基础 DB Server打比方说我们用

4、的是Oracle,它需要通过1521与App Server进行连接是不是?那么这个1521我们称为数据库连接端口,如果把它暴露在Internet上,是不是在危险了点?就算我们的密码很复杂,但对于高明的黑客来说,要攻破你的口令也只是时间上的问题而己。因此我们把我们的DB Server也和App Server一样,置于内网的防火墙。任何的DB连接与管理只能通过内网即在公司企业内部来访问,就是这个道理。二、动手来架构2.1 Oracle数据加的安装与配置DB(Oracle)我已经为大家准备好了,连接信息为:IP:10.225.10x.xxPort:1521Username/Password:xxx/

5、xxxSid:Jcoedb1url:jdbc:oracle:thin:10.225.10x.xx:1521:xxx所以,根据上述的架构,我们可以把如下这样的一份清单丢给NSS或者是相关的网络管理部门,让他们给我们开通相应的端口:Web Server对外IP: xxx.xxx.xxx.xxx对内IP:10.225.xxx.xxx向internet开通80与443端口App Server对内IP: 10.225.xxx.xxx只对10.225.段的ip开放8080,8009等端口,Db Server对内IP: 10.225.xxx.xxx只对10.225.段的ip开放1521端口2.2 App S

6、erver的安装直接解压tomcat至你的本地如:d:tomcat,我这边用的目录名叫tomcat2,大家随意,最好名字能够越简单越好d:tomcat或者c:tomcat就行,不要放得太“深”。2.3 Web Server的安装我们在这边将安装Apache For Win 2.2.x,它将占用你机器的80和443端口。因此如果你机器上有任何程序占用你的80和443端口,必须将它关闭掉,比如说:我们装有微软的IIS,这本身也是一个WebServer,那么请你将它关闭:ControlPanel-Administrative Tools-Service,找到IISAdmin和,将它全部关闭并将启动方

7、式设为:manual以便于不用每次重启后再要去手动关闭一下。然后用netstat ano找到任何还在占用80端口的程序,将它关闭掉。2.4开始安装Apache Http Server我们将安装这个版本的apache http server作为我们今后一直使用的Web Server这边的server name你们要填入自己的server的真实名,不能用我这个,这个servername如:只能够我用,这个名称是全局唯一的,和你的IP一样。选全部安装装完后你会多出一个这样的图标来,点击该图标,里面有用于控制apache http server的启动、停止与重启等操作选项。同时在你们的“服务”面板中,

8、也能发现这样的一个服务项,它启动时默认是随着系统的启动而启动的,我们把它改成“手动”吧,因为将来我们还要安装IBM Http Server来作练习。装完后,在Apache2.2启动的前提下,打开一个ie输入http:/localhost,你将会得到这样的一个页面,就说明你的Apache的安装是成功的。2.5 Apache的配置学Java的人,必须会这个Apache的配置,要不然你怎么模拟环境、搭建环境和架构环境?光会Coding是远远不够的,你将永远只配作个码农。嘿嘿嘿!有很多人发觉到了后面JAVA学不上去了,关键因素在于:配置。你会配环境了,那么你就能模拟任何客户方、开发方的环境。你会配环境

9、了,你的代码将来上线时才能成功运行。你会配环境了,所以整个工程的技术核心就是你。跟着我的教程,你们将会安装和运行达近百个各种软件与配置,搞得你一股臭味一股臭味!你准备好了没有?当然,不用怕,因为我的配置都是实际运行的环境,所以网上的一些东西你可以不用去看,因为很多人都是在网上进行拷贝、复制,有时也不经过验证,会让你走很多的弯路到头来还是落得个BUG一天世界,就看我的教程吧。Apache的配置主要集中在httpd.conf文件,它位于你的安装目录,比如:D:toolshttpdconf我们用ultraedit或者相关文本编辑工具打开它,来看它的内容:先来查找到如下这一行:#ServerName我

10、们可以得到如下这一行内容:#ServerName :80这就是我们的主机名了,我们可以将前面的“#”去掉,并将其改为:ServerName 10.225.106.35:80改完后存盘,在重启你的Apache2.2前我们先测试一下我们的Apache的配置文件是否改得对:如果在你点了Test Configuration后,黑屏一闪而过,说明你的改动无误,否则这个黑屏会一直停留在当前状态,并且告诉你,你的配置改动有错,错在哪里。重新启动你的Apache找到如下这行:DocumentRoot你会发下有这样的一行内容:DocumentRoot D:/tools/httpd/htdocs这个叫作Docum

11、entRoot即webroot,即:发布目录,发布在这个目录下的任何工程都会在Apache服务开启时被装载成标准的web工程,我们现在动手来把这个WebRoot定位到我们自己的发布目录中去吧。DocumentRoot d:/www我们把它改到了d盘的www目录中去了,然后我们在该目录中放入一个index.html文件,内容为:Hey man, apache works!重启我们的Apache服务,来测试一下:嘿嘿,我们得到了什么?禁止访问,为什么?找到下面这一段: Options FollowSymLinks AllowOverride None Order deny,allowdeny fr

12、om all看到了没?现在,把这个”deny from all”改成”allow fromall吧。 Options FollowSymLinks AllowOverride None Order deny,allowallow from all修改完后重启你的Apache服务Ok,我们的Apache的发布目录已经成功更改到了d:www目录下了,我们再来做一个实验:我们在IE浏览器中输入: http:/localhost/css/,我们看到了什么?这还了得,用户如果是个初级黑客都可以知道我们的服务器上有哪些文件,哪些目录甚至可以直接看到我们的文件内容,怎么办?找到下面这行Options Fol

13、lowSymLinks indexes把它注掉改成下面这样#Options FollowSymLinks indexesOptions None不要急,再往下找,还有Options Indexes FollowSymLinks又来一个,再改掉#Options Indexes FollowSymLinksOptions None改完这两条后重启你的Apache服务再次打开一个新的IE,输入:http:/localhost/css/,我们看到了如下的界面:好了,Apache的基本配置完成了即:1)基本的安全配置,不允许目录访问2)把WebRoot改到另一个物理目录上而不使用Apache自带的Web

14、Root目录2.6整合Apache与TomcatApache(Web Server)负责处理HTML静态内容;Tomcat(App Server)负责处理动态内容;其实就是上述这样的一个架构,下面是原理1)Apache装有一个模块,这个模块叫mod_jk2)Apache通过80端口负责解析任何静态web内容3)任何不能解析的内容,用表达式告诉mod_jk,让mod_jk派发给相关的app server去解释。通过上述的文字描述我们可以得知:1)我们需要在Apache中先装一个mod_jk2)我们需要在httpd.conf中写点表达式下面来实现。1)把mod_jk-1.2.31-httpd-2.

15、2.3.so手工copy进我们的Apache安装目录的modules目录下,这个文件的全名叫: mod_jk-1.2.31-httpd-2.2.3.so,大家可以从ftp上的“/JavaArchitect/mod_jk/”目录中获取,因为这个文件是我用C+在本地重新编译过的,网上下载的是src即源码,省去大家再去编译的时间了,而且一些其它网上下载的mod_jk.so是无法使用的。2)用ultraedit打开httpd.conf文件,跑到文件最后面加入以下几行:LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.soJKWorkersFi

16、le conf/workers.propertiesJkLogFile logs/mod_jk.logServerAdmin localhostDocumentRoot d:/www/ServerName localhostDirectoryIndex index.html index.htm index.jsp index.actionErrorLog logs/shsc-error_log.txtCustomLog logs/shsc-access_log.txt commonJkMount /*WEB-INF ajp13JkMount /*j_spring_security_check

17、ajp13JkMount /*.action ajp13JkMount /servlet/* ajp13JkMount /*.jsp ajp13JkMount /*.do ajp13JkMount /*.action ajp13JkMount /*fckeditor/editor/filemanager/connectors/*.* ajp13JkMount /fckeditor/editor/filemanager/connectors/* ajp13关键的是这两句:LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.soJKWork

18、ersFile conf/workers.properties代表: Apache载入一个额外的插件,用于连接tomcat。 连接时的配置参数描述位于Apache安装目录的/conf目录下的一个叫workers.properties文件中,mod_jk一般使用ajp13协议连接,使用的是tomcat的8009端口。3)Worker.properties文件内容如下:workers.tomcat_home=d:/tomcat2workers.java_home=C:/jdk1.6.32ps=/worker.list=ajp13worker.ajp13.port=8009worker.ajp13.

19、host=localhostworker.ajp13.type=ajp134)告诉我们的Apache,哪些是要交给tomcat来解析,除此之外都由Apache本身来解析:ServerAdmin localhostDocumentRoot d:/www/ServerName localhostDirectoryIndex index.html index.htm index.jsp index.actionErrorLog logs/shsc-error_log.txtCustomLog logs/shsc-access_log.txt commonJkMount /*WEB-INF ajp13

20、JkMount /*j_spring_security_check ajp13JkMount /*.action ajp13JkMount /servlet/* ajp13JkMount /*.jsp ajp13JkMount /*.do ajp13JkMount /*.action ajp13JkMount /*fckeditor/editor/filemanager/connectors/*.* ajp13JkMount /fckeditor/editor/filemanager/connectors/* ajp13大家看到没,所有的/servlet/*都由tomcat负责解析,所有的js

21、p, .do, .action都由tomcat解析。此处还有一个特殊的/fckeditor,这个是我们使用的一个博客编辑器,这个因为是servlet的,因此也需要交给tomcat铁析。5)将/cbbs工程布署到tomcat的webapps目录下6)将/cbbs同样手工copy一份到d:/www目录下7)删除d:/www/cbbs/WEB-INF这个目录,嘿嘿,因为d:/www下的东西是由Apache解析的,所有的WEB-INF下的都是Java,我们只需要布署在tomcat下即可,是不是?8)重启tomcat,重启Apache,在ie中直接输入:http:/localhost/cbbs,使用sa

22、lly/abcdefg登录,操作一下,一切成功Ohyeah, tomcat+apache一步搞定。三、用于实验的cbbs工程配置最后附上cbbs布署需要用到的配置,相关的工程可通过ftp的” /Java Architect/Project/”下的cbbs.zip来获取。 在tomcat中打开server.xml加入:和 手工在d盘根目录建立一个upload目录,在此目录内再建立一个image目录。 在tomcat中打开context.xml加入一、总结前一天的学习在前一天的学习中我们知道、了解并掌握了Web Server结合App Server是怎么样的一种架构,并且亲手通过Apache的Ht

23、tp 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的

24、屁股后面呢。需要注意的地方: 如果以这样的架构出现,你的J2EE 工程,必须在web.xml里把那些个划分清楚,比如说:我们可以知道*.do, *.action, *.jsp是属于JAVA需要解析的东西对吧!但是,如果你的servlet写成这样/abc/123/def那么当我们在作映射时,需要把/abc, /123, /def分别写成一行行的JKMount语句,是不是。OK,假设我们这个工程有100个servlet(这个算少的哦),你该不会在httpd.conf文件中给我写这样的无聊的东西100行吧?所以,我们在规划我们的servlet时需要有矩可循,即pattern,因此我才一直强调,大家在

25、servlet命名时必须统一成:/servlet/myServletabc这样,我在做这个Web Server到App Server的Mapping时,是不是只要一句:JkMount /servlet/* ajp13就可以搞定啦? 同样的架构有不同的变种: IIS+Tomcat因为微软的IIS本身就是一个Web Server,因此通过IIS和Tomcat的一个插件叫”isapi”的也可以作到这样的架构,但是我强烈不推荐,因为JAVA源于Unix系统,归于Unix系统,Unix可是不认什么IIS的,一定请一定用Apache,你是JAVA不是多奶(dot net)。 Apache+Weblogic

26、 IBM HttpServer(Apache的一个变种)+IBM WAS6.x/WAS7.X Tomcat集群Apache挂N多个tomcat,由tomcat1tomcat2tomcat3等组成 Weblogic集群Apache挂N多个weblogic,由weblogic1weblogic2weblogic3等组成 WASND(IBMWebsphere App Server Network Deployment)IBM HttpServer挂N多个WAS,由WAS1WAS2WAS3等组成二、HTTPS2.1 HTTPS介绍先来看HTTPS的概念我们一般的http走的是80端口,而https走的

27、是443端口,有什么不一样的地方吗?很简单,我们拿个telnet命令来作个实验:telnet127.0.0.1 80,直接就登进了80端口(如果你机器上的Apache开放的话),这样好极了,所有的http中的get, put, post全部可以被我们截获,你的上网帐号,你提交的表单信息全部被别人拦截,就算你对一些信息加了密,对于黑客来说,这些加密被解密只是时间问题,而且一般黑客可以利用云计算,群集计算对你的加密可以进行“硬杀伤”,即穷举算法,利用超大规模集群解密的你的算法会很快,电影里的几十秒解开一个128位的加密不是神话,是真的!因此,我们要让黑客一开始就攻不进来,连门都进不来,何谈拿到我里

28、面的东西,对不对?现在我们把我的http通道,变成了https,同时关闭80端口,因此用用户要访问必须经过443端口。好了,我们再来用:telnet localhost 443你连telnet都进不进去,因此,你就无法再获取http通道内传输的东西了。因此黑客要进入你的网站先要突破这个https,而https使用的是RSA非对称128位加密,如果是安全交易类甚至会使用RSA 1024位加密算法,除非是世界上最高明的黑客才能突破我们的防线。2.2 HTTPS的构成要构成HTTPS,我们需要有一张“根证书”,一张“服务器认证”才能做到一般的https,HTTPS还分成“双向认证”,在双向认证的结构

29、中我们需要3张证书即“根证书”,“服务器认证”,“客户端认证”。为什么需要这么多证书?嘿嘿,下面我们来看HTTPS是怎么构成这个“信任关系链”的。 证书我们称为CA; 根证书叫Root CA;上述这个图什么意思?首先,RootCA是全球的根,这个“树”的根是全球任何IE、FireFox、Safari里的证书库里都有这个RootCA的,因为它们是权威,所以全球的电子证书拿它们做“根”,这些证书比较具有代表性的是: Verisign RSA这两家公司是世界上所有加密算法的“鼻祖”,因此被拜为全球所信任,我们可以在我们的IE中看到这些“根”。其此,全球的计算器客户默认在装完系统后,都会带有这些ROO

30、T CA,因此“由ROOT CA签出来的服务器证书将自动被客户端所信任”。所以,这个信任关系,就此建立。在HTTPS是SSL的一种,它们间是如何进行加密传输的呢,就是这个“信任关系”,先建立起信任关系,然后再开始数据传输,在加密的世界中“建立信任”就需要用到至少2张证书,即ROOT CA, SERVER CA,我们把这个信任建立的过程称为“Hands Shake”,握手协议。前面说到了,这个握手分单向和双向,包括上述这个图就是一个单向握手,什么叫单向,什么叫双向呢?我们下面来讲解: 单向握手信任我们又称它为“包二奶协议”,大家想一下,贪官包二奶和二奶说“你跟着我,我每月给你1万块”,他说的这个

31、话,能不能写下来? 能吗? 当然不能,写下来还得了,将来二奶一不爽把这份白纸黑字的东西交到中纪委还不把这烂货给双规了哈?所以,二奶单向里信任贪官,这就是二奶协议,即客户端认为我访问的这台服务器“是安全的”,因此客户端可以向服务器发送和提交任何东西。 双向握手信任我们又称它为“君子协定”,呵呵,从这个词表面上来看就知道这个协议有多牢靠了,首先,它是写在字面上的,其次,双方都签署协议这个信任关系怎么样啊? 非常牢靠!即客户端信任服务器,因此客户端可以向服务器发送和提交任何东西。同时,服务器也信任客户端,允许该客户端向我发送和提交东西。客户端单向信任服务器很简单,只要这个服务器是我客户端信任的顶级根

32、签发出来的证书就行,而服务器如何信任客户端呢?记住下面三句话:首先,你这个客户端到我这边来登记一下;其次,我给你签一张证书,你带回家装在你的IE里;最后,每次访问时因为你的IE里装着我服务器签出的证书,所以你是我的会员,所以我信任你;2.3证书与如何生成证书的基本概念通过上面的概念,我们知道了,如果建立起这个HTTPS的环境我们需要至少一张服务器证书,对不对?而且这张服务器证书是需要由客户端信任的“ROOT”级机构所签发出来的。所以一般生成证书由以下几个步骤构成:1.生成一对不对称密钥,即公钥public key和私钥 private key2.用密钥产生请求,同时把我的请求交给ROOT机构3

33、.ROOT机构对我提交的请求进行“签名”Sign这个被签完名后的“请求”就称为证书。上面多出来了密钥,公钥,私钥三个名词,下面来做解释。先来看一个真理:1)密钥,密钥为一对,即一把公钥,一把私钥2)一把私钥可以对应多把公钥,而这些公钥只可能来源于一把私钥3)公钥加密,私钥解密大家想一下,公钥加密,这是“公”就是人人有这把KEY,都可以用来加密,但是能打开我这扇门的因该只有一个人是吧?这就是为什么说“私钥”解密。倒过来私钥“加密”(被称为签名),公钥“解密”(被称为认证)把上面这个“真理”倒过来,呵呵,好玩了,因为public key只能用来加密而解密必须是private key,因此公钥是不能

34、加密的,公钥也不能用来解密,那么它们该怎么做?HP公司是卖打印机的,它有100个代理,都为它销售打印机。客户来到了某个代理公司,问:你凭什么说你是HP的代理代理公司说:请看,这是HP公司给我证书客户问:你的证书不能伪造吗?代理公司答:请看,下面有一个防伪条形码于是,客户把这个防伪条形码用手机拍下来,来到HP公司说:这是不是你们的代理?HP公司说:你等一下!随后HP公司拿出以前给这家代理公司的公钥,对这个签名做一个“解密”(被称为杂凑算法),也算出来一个防伪条形码,然后拿这个防伪条形码和客户带来的防伪条形码一比较,完全一致,所以HP和客户说:您可以完全相信这家公司,这家公司是我代理的。这边这个防

35、伪条形码就是代理公司用HP在颁发证书时给它时用HP的私钥的“签名”;HP公司用为当初给代理商发放证书时同时生成的密钥对里的公钥对这个签个名做一个杂凑算法,然后拿算出来的防伪条形码再和客户带来的这个防伪条形码比对的这个过程被称为“认证”;一起来看看证书里的防伪条形码吧我们把它称为电子“指纹”,一般用的是SHA或者是MD5算法,因为MD5和SHA是不可逆唯一性算法,所以把它比喻成“指纹”再恰当不过了。2.4实际开发实验中如何产生证书实际产生证书时,我们需要生成请求,但不是说我们把请求交给Verisign或者一些信息机构,它们就帮我们签的,这是要收费的,一般签个名:50-500美金不等,有时还分为每

36、年必须去签一次,要不然就会失效。所以我们在实际开发环境中,为了做实验或者是搭建模拟环境,不可能会去花钱买个证书的,有时我们环境要搭建几套,怎么办?这钱花的没有明堂的。所以,在实际开发环境中,我们自己来模拟这个ROOTCA,然后用自己模拟出来的ROOTCA去签我们服务器的证书,这个过程就被称为“自签”。2.5使用OpenSSL来签证书OpenSSL就是这么一个自签,加密的命令行工具,它是从UNIX下分离出来的一个项目,但也有FOR WINDOWS平台的,比如说我给你们用的这个OPENSSL,就是For WIN的,但是由于它是从UNIX/LINUX下产生的,因此它内部的配置还是用的是LINUX/U

37、NIX的盘符与路径,需要手动去校正,当然我已经做好了校正,因此直接打了个压缩包放在了FTP上,大家拿下来后解压后就可以直接用了。如果你们是自己从网上官方网站下载的OPENSSL需要手动去改它的盘符和路径,要不然是用不起来的。 设置环境变量把c:opensslbinf设成OPENSSL_CONF这样的一个变量,同时把c:opensslbin目录加到你的path里去(根据你们自己的解压后的openssl的实际路径)。 生成根证书所用的密钥提示输入密码我们使用:aaaaaa再次输入确认密码(密钥,由其是private key是由口令保护的)去除CA密钥的口令为什么我们要把好好的口令保护给去除呢?这边

38、不是去除而是代表这个证书在被应用程序启动时不需要显示的提示用户输入口令,要不然我们会出现下面这种情况:在启动HTTPS协议的服务器时,一般我们点一下service-apache2.x启动,就启动了,但如果这个https所带的证书是没有经过上述这道手续后处理的话,这个服务在启动时会失败,而需要切换成手动命令行启动,就是黑屏!在黑屏状态下,apache2.x服务器启动时会提示你要求:输入口令,这个太麻烦了,一般启动服务器服务的一定是超级管理员,因此一般情况下没必要在启动相关服务时再输入一遍口令了。 生成CA即ROOT CA证书并自签网上有很多说法,说是先产生CA的Request请求,再用ca.ke

39、y去自签,我给大家介绍一条一步到位的产生ca ROOT证书的命令,为了安全,我们在最后加上“-configC:opensslbinf”,以使openssl工具可以找到相应的config文件(有些系统在指定了OPENSSL_CONF环境变量后一般就不需要在命令行里去手工指定这个-config变量了)。由于我们产生的证书为:X509格式,因此需要按照X509格式填入相关的值。 AU-国家家的缩写,如:CHINA=CN,美国=USA,英国=UK,日本=JP State or Province Name-省/洲的缩写或者是全称,如:上海=SH Locality Name-城市的全称或者是缩写,如:上海

40、=SH Organization Name-公司名,如:Cognizant Common Name-要安装这台证书的主机名,证书是和主机名绑定的,如果证书里的主机名和你实际的主机名不符,这张证书就是非法的证书。我们不能够填IP,一定一定要填主机名即域名这样的东西,比如说我填的是shnlap93,但我的主机怎么知道shnlap93是指:10.225.106.35或者说是指localhost这台机器呢?打开C:WindowsSystem32driversetchosts这个文件,如下:localhost shnlap9310.225.106.35 shnlap93看到了吧?所以当我们使用pint

41、shnlap93时,它是不是就可以知道shnlap93=10.225.106.35啦?EmailAddress-邮件地址,爱填不填,可以跳过,反正我们是“自签”。Look,我们的CA证书生成了,可以双击这张证书,查看信息后关闭它。目前这张ROOT 证书,只是个自签的产品,因为是自签,一般其它客户端的IE里因此是不会带有这张根证书的。要其实客户端也能信任这张根证书,我们必须怎么办?将它安装到我们的IE的信任域里。 将ROOT CA导入客户端的根级信任域,有多少台客户端,每个客户端都要导一边这个证书!所以说如果我们拥有世界级的根证书该多好啊,电脑上默认就带有我们的证书,因此知道这帮世界级的根证书机

42、构为什么能挣钱了吧?50-500美金签张证书,几秒钟的事,CALL!点导入按钮下一步,下一步,此时会有一个弹出框,选“yes(是)”完成导入。再来打开我们的ca.crt文件发现了没有,这张证书是有效的证书了,所以在“证书信息”前原有的一个红叉叉,消失了。 生成Web服务器端证书密钥我们的root证书有了,现在可以生成Web服务器端的证书了,并且用root ca去签名先生成密钥,密码6个a去除密码(提示:enter pass phrase for server.key时输入刚才生成密钥时的密码即6个a。 生成Web服务器端证书的签名请求生成服务器端证书请求时需要输入server端key的口令,我

43、们为了方便,也用6个a。 用Root CA去对Web服务器的证书请求即csr(certificate request)进行签名认证输入y并回车此时它会提示:1 out of 1certificate requests certified, commit? y/n,再 输入y并回车Web服务器的server.crt证书生成完毕。注:如果在操作时有任何错,必须连同生成的.key,.csr, .crt文件全部删除重头来一遍我们来看看,这个server.crt文件,双击它。首先,我们看到该证书的“证书信息”前没有红色的大叉,然后是证书信息正是我们刚才输入的内容,为什么没有大叉?因为我们的RootCA根证书装在我们IE的根级信任域里,又因为我们的客户端信任我们的RootCA,因此当我们的客户端打开由RootCA签出来的server.crt时,这根“信任链”被建立了起来,所以客户端自动单向信任我们的server.crt,对不对?下面我们来做一个实验,把我们的Root CA从我们的根级信任域中删除。选中这个shnlap93的根级证书,点删除,会弹出两次确认框

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号