x509

x509证书一般会用到三类文件,key,csr,crt。 Key是私用密钥,openssl格式,通常是rsa算法。 csr是证书请求文件,用于申请证书。在制作csr文件的时候,必须使用自己的私钥来签署申请,还可以设定一个密钥。 crt是CA认证后的证书文件(windows下面的csr,其实是crt),签署人用自己的key给你签署的凭证。 1.key的生成 openssl genrsa -des3 -out server.key 2048 这样是生成rsa私钥,des3算法,openssl格式,2048位强度。server.key是密钥文件名。为了生成这样的密钥,需要一个至少四位的密码。可以通过以下方法生成没有密码的key: openssl rsa -in server.key -out server.key server.key就是没有密码的版本了。 2.生成CA的crt openssl req -new -x509 -key server.key -out ca.crt -days 3650 生成的ca.crt文件是用来签署下面的server.csr文件。 3.csr的生成方法: openssl req -new -key server.key -out server.csr 需要依次输入国家,地区,组织,email。最重要的是,有一个common name,可以写你的名字或者域名。如果为了https申请,这个必须和域名吻合,否则会引发浏览器警报。生成的csr文件交给CA签名后形成服务端自己的证书。 4.crt生成方法 CSR文件必须有CA的签名才可形成证书. 可将此文件发送到verisign等地方由它验证,要交一大笔钱,何不自己做CA呢. openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key… Continue reading x509

简要的Web缓存技术

最近在做1个项目,名叫《智慧街区》。简单进行1下项目介绍:与政府有关部门进行合作,将自助终端(其实就是1台PC机,只不过长的好看点)竖立在大街小巷,为市民提供各色服务,比如:公交、天气、商家、优惠、政策、新闻等等1些便民功能。 这样1个项目,按道理来说,是应该做成CS结构的,这样便于对终端设备上有关硬软件的控制,但无耐的是项目时间较短、用户体验要好,我们只能选择偷梁换柱,使用BS方式(C端编写1全屏置顶的小程序,嵌套web网站)来解决。 调研阶段,我们了解到该项目功能并不复杂,手上也有比较好的原型和模块代码,我们所需要解决的问题主要有2个:1是客户端缓存,因为终端是使用3G无线传输,速度和流量得不到保障,速度<200KB,按流量收费,我们只能在服务端有更新内容的时候,客户端才能更新有关数据,最大限度的节约带宽;2是控制客户端打印,因为使用JS控制打印机会弹出打印对话框的,而终端设备上我们是不允许用户进行这种操作的。 今天先说第1个问题,客户端缓存的问题,这方面我特别g了1下,也算了解到1些比较简洁比较有效的技术,当然以前也都或多或少的接触过。下面这篇文章不错,遂载,明天还有1篇文章会描述《Web缓存技术概述》。 这是一篇知识性的文档,主要目的是为了让Web缓存相关概念更容易被开发者理解并应用于实际的应用环境中。为了简要起见,某些实现方面的细节被简化或省略了。如果你更关心细节实现则完全不必耐心看完本文,后面参考文档和更多深入阅读部分可能是你更需要的内容。 目录: 什么是Web缓存,为什么要使用它? 缓存的类型: 浏览器缓存; 代理服务器缓存; Web缓存无害吗?为什么要鼓励缓存? Web缓存如何工作: 如何控制(控制不)缓存: HTML Meta标签 vs. HTTP头信息; Pragma HTTP头信息(为什么不起作用); 使用Expires(过期时间)HTTP头信息控制保鲜期; Cache-Control(缓存控制) HTTP头信息; 校验参数和校验; 创建利于缓存网站的窍门; 编写利于缓存的脚本; 常见问题解答; 缓存机制的实现:Web服务器端配置; 缓存机制的实现:服务器端脚本; 1.什么是Web缓存,为什么要使用它? Web缓存位于Web服务器之间(1个或多个,内容源服务器)和客户端之间(1个或多个):缓存会根据进来的请求保存输出内容的副本,例如html 页面, 图片,文件(统称为副本),然后,当下一个请求来到的时候:如果是相同的URL,缓存直接使用副本响应访问请求,而不是向源服务器再次发送请求。 使用缓存主要有2大理由: 减少相应延迟:因为请求从缓存服务器(离客户端更近)而不是源服务器被相应,这个过程耗时更少,让web服务器看上去相应更快; 减少网络带宽消耗:当副本被重用时会减低客户端的带宽消耗;客户可以节省带宽费用,控制带宽的需求的增长并更易于管理。 2.缓存的类型 浏览器缓存 对于新一代的Web浏览器来说(例如:IE,Firefox):一般都能在设置对话框中发现关于缓存的设置,通过在你的电脑上僻处一块硬盘空间用于存储你已经看过的网站的副本。浏览器缓存根据非常简单的规则进行工作:在同一个会话过程中(在当前浏览器没有被关闭之前)会检查一次并确定缓存的副本足够新。这个 缓存对于用户点击“后退”或者点击刚访问过的链接特别有用,如果你浏览过程中访问到同一个图片,这些图片可以从浏览器缓存中调出而即时显现。 代理服务器缓存 Web代理服务器使用同样的缓存原理,只是规模更大。代理服务器群为成百上千用户服务使用同样的机制;大公司和ISP经常在他们的防火墙上架设代理缓存或者单独的缓存设备; 由 于带路服务器缓存并非客户端或者源服务器的一部分,而是位于原网络之外,请求必须路由到他们才能起作用。一个方法是手工设置你的浏览器:告诉浏览器使用 那个代理,另外一个是通过中间服务器:这个中间服务器处理所有的web请求,并将请求转发到后台网络,而用户不必配置代理,甚至不必知道代理的存在; 代理服务器缓存:是一个共享缓存,不只为一个用户服务,经常为大量用户使用,因此在减少相应时间和带宽使用方面很有效:因为同一个副本会被重用多次。 网关缓存 也被称为反向代理缓存或间接代理缓存,网关缓存也是一个中间服务器,和内网管理员部署缓存用于节省带宽不同:网关缓存一般是网站管理员自己部署:让他们的网站更容易扩展并获得更好的性能; 请求有几种方法被路由到网关缓存服务器上:其中典型的是让用一台或多台负载均衡服务器从客户端看上去是源服务器; 网络内容发布商  (Content delivery networks CDNs)分布网关缓存到整个(或部分)互联网上,并出售缓存服务给需要的网站,Speedera和Akamai就是典型的网络内容发布商(下文简称CDN)。 本问主要关注于浏览器和代理缓存,当然,有些信息对于网关缓存也同样有效; 3.Web缓存无害吗?为什么要鼓励缓存?… Continue reading 简要的Web缓存技术