发信人: globality()
整理人: ipaq(2001-05-27 14:37:13), 站内信件
|
用SSL实现Internet安全
关键词:NT, 计算机安全
用SSL实现Internet安全
安装好Certificate Server后,给自己的Web Server发一张证书,你的安全站点 已经
建立起来了,在IIS管理器中打开安全通道(先不要接受客户证书验证,如果你没 有浏
览器证书的话),把http改为https后访问你的站点,怎么系统提示服务器证书有 问题?
记得在浏览器中安装你的根证书了?要不就是你的服务器证书过期了(不会吧,才 发的
证书就会过期?)如果你没有在浏览器中安装你的根证书,你需要安装它(为什 么上次
说过了)同时,其他人通过Internet访问你的站点如果没有安装根证书,你需要 将你的
根证书放在网上让别人下载。用IE安装根证书很简单,浏览器提示用户打开或保 存时选
择打开,你会看到你的根证书信息然后按安装证书就可以了。但你可能会发现Ne tscap无
法安装你的根证书,SSL协议是由Netscape首先提出并实现的,Netscape使用MIM E类型
application/x-x509-ca-cert来表示CA证书,IE3.1以后开始支持SSL,起初Wind ows系统
的数字证书文件(.crt和.cer)也采用相同的MIME类型,IE5.0以后MIME类型被改 为
application/pkix-cert这就造成Netscape安装根证书困难。不过这个问题好解决 ,只要
在IIS里新注册application/x-x509-ca-cert的MIME类型就可以了。刚发的证书浏 览器有
时也会显示证书过期,这是因为浏览器判断证书有效是从证书有效起始时间的后 一天开
始,此外数字证书中的日期大都是GMT时间而不是本地时间,所以通常将本机时间 向后调
整一天这个问题就能解决,所以证书过期不仅仅可能表示太晚也可能表示太早。
一切都已经就绪,进入你的安全网页了,在你的IE的状态栏里应该有一个小锁, 双击这个
小锁你能看到你的站点证书信息,同时你也能看到整个证书链。现在你或许会问 “那么现
在我怎么用SSL加密我的数据呢?”,实际上现在你的浏览器和你的Web服务器之 间交换的
所有信息都已经被加密,SSL是工作在网络层与会话层之间的协议,它在TCP/IP和 HTTP之间
增加了一个加密层,所以对于工作在HTTP协议以上的用户而言,加密是完全透明 的,所以
请忘记“用SSL加密“这句话,除非你直接在Socket上开发,比如写个网络蚂蚁之 类的。
现在我想用SSL实现更多的东西,不仅仅是加密。是申请浏览器(客户)证书的时 候了,申
请客户证书过程也不复杂,除了相同的名称,国家之类的还多一个EMail地址,如 果用IE申
请证书可能会有许多选项,其中有两个比较有意义,”允许私钥被导出“对与不 在固定机器
上上网的人比较有用,如果你在一台机器上申请了证书,导出证书和私钥并安装 到其他机器
上就可以在其他机器上使用了。”用户保护“会让浏览器在使用你的私钥时提示 你,这通常
发生在加密和签名过程之前。证书安装过程通常都是自动的,安装完成后你可以 自己先欣赏
一下,在IE中打开Internet选项,选择内容一栏,按”证书“按钮”,在个人一 栏内应该有
你的客户证书。
现在在IIS管理器中设置你的站点要求客户证书,然后访问你的站点,浏览器会弹 出一个对话
框,让你选择要使用的客户证书,然后就进去了,也没什么不同。那么怎么样利 用SSL实现身份
认证呢?首先你可以在IIS管理器中启用客户证书映射,将客户证书影射到你NT帐 号,你可以映
射某张证书,也可以映射所有由你的根证书所签发的客户证书,如果在签发者列 表中找不到你的
根证书,你需要运行SSLCA.exe(IIS4.0以上),以后的事就属于NT管理员的范畴 了。如果你不
想用NT的安全机制,你就需要获取对方客户证书的信息,然后进行判断。通常客 户证书的信息由
HTTPS_开头的服务器变量提供,如Apache Server,Domino等,可以查看文档或者 写一个小的CGI
程序列出所有的服务器变量。如果是IIS就更简单了:
用 Request.ClientCertificate( Key[SubField] )可以访问你想要的内容:
如<%= Request.ClientCertificate("SubjectCN") %>可显示客户证书的国家代码 。具体参数请在
MSDN搜索ClientCertificate
-- 欢迎到个人天地football做客
※ 来源:.月光程序代码网 http://www.moon-soft.com.[FROM: 210.72.250.29]
|
|