出家如初,成佛有余

使用Varnish+ESI实现静态页面的局部缓存(思路篇)

Posted in Uncategorized by chuanliang on 2010/01/31

    页面静态化是搭建高性能网站必用的招式之一,页面静态化可以有效提升系统响应速度,同时也有利于搜索引擎优化。但在页面静态化后,静态页面之间包含(例如所有的静态页面包含页头、页脚)以及静态页面中的局部信息的动态更新又成为新的问题。

    静态页面之间的包含一般有如下一些方案:

   1、Client Side Includes(CSI):通过frame、iframe、javascript、javacript+ajax等方式将另外一个页面的内容动态包含进来。像现在流行的jquery等javascript库对此有较好的支持。

      优点:能够利用浏览器客户端并行处理及装载的机制;通过浏览器缓存机制可以降低网络传输时间,提高性能;计算放在客户端,能够降低服务器端压力

      缺点:搜索引擎优化问题;javascript兼容性问题;客户端缓存可能导致服务器端内容更新后不能及时生效;XSS等安全隐患

   2、Server Side Includes(SSI):

       优点:SSI技术是通用技术,不受具体语言限制,只需要Web服务器或应用服务器支持即可,Ngnix、Apache、Tomcat、Jboss等对此都有较好的支持

       缺点:SSI在语法上不能够直接包含其他服务器的url(当然也可以通过redirect等来变通实现),因此在需要充分利用缓存及负载均衡的环境下相对不是很灵活。    

       当然如果不使用单独的缓存服务器,而是使用Ngnix,利用Ngnix对SSI及Memcached支持,通过NginxHttpSsiModule、NginxHttpMemcachedModule也可以实现页面缓存,但与专业的缓存服务器(例如Varnish)相比较,Ngnix作为缓存服务器只适合于中小规模的场合。

    3、Edge Side Includes (ESI):

        Edge Side Includes(ESI) 和Server Side Includes(SSI)和功能类似。SSI需要特殊的文件后缀(shtml,inc)。ESI可以直接通过URI包含远程服务器文件,ESI更适合用于缓存服务器上,缓存整个页面或页面片段,因此ESI特别适合用于缓存。像当下流行的缓存服务器Varnish对此有所支持。

 

    SSI可以很容易满足让所有静态页面include其他静态页面的需求。

    大部分的网站都有这样的需求:在整个静态页面的局部有需要动态更新的内容片段,包括:

    1、与用户个性化无关的信息,所有用户进来看到的内容都一样。例如最热新闻、最活跃的用户等

    2、与用户个性化信息相关。例如用户登录信息、用户好友等

   以上两种情况,一般情况下都采用ajax方式来实现静态页面局部信息的刷新,ajax直接提交给Web服务器或应用服务器获取动态数据。或者采用Ajax+Memcached的模式,将动态变化的内容放入Memcached中,ajax直接存取Memcached,这样能够缓解Web服务器或应用服务器压力。但采用ajax的方案,直接绕过了缓存服务器,并没有充分利用缓存服务器对于静态页面的缓存支持。

    使用Varnish及其对ESI的支持很容易实现对以上两种需求的较好支持:

   1、与用户个性化无关的信息:直接由Varnish+ESI就可以实现。对于动态变化的局部页面,可以在ESI制定的url地址返回的http header的Cache-Control来指定缓存策略,实现局部页面缓存(fragment caching)。

  2、与用户个性化信息相关:对于整个页面的缓存策略仍然使用Varnish+ESI方式。而需要fragment caching的局部页面,可以根据用户Cookie信息获得用户身份标识信息(例如userid),然后在ESI的URL中带上用户身份信息提交到后端的Web服务器或应用服务器以获取与用户个性化相关的信息。可以参考:Caching logged in users

    简单梳理了一下基于Varnish+ESI实现静态页面缓存的思路,有空再写代码具体测试一下。

    Varnish作为一个高性能的缓存服务器,值得好好研究一下。

    尽管Varnish和Ngnix都具有Load Balancing的功能,但Ngnix只能根据客户端IP进行负载均衡,不支持基于Session状态维护(session persistence)方式,无法维护Session状态;而Varnish的Load Balancing都不支持。而这正是HAproxy的强项。

    由此得到一个相对理想的架构:

      Nginx (用于HTTP compression及https) –> Varnish (用于reverse proxy caching) –>HAProxy(用作Load Balancing)–>Ngnix(Web Server)或Tomcat

 

参考文档:

    http://www.trygve-lie.com/blog/entry/esi_explained_simple

    http://jimmyg.org/blog/2009/ssi-memcached-nginx.html

    http://docs.heroku.com/http-caching

    http://docs.heroku.com/memcached

    http://kovyrin.net/2007/08/05/using-nginx-ssi-and-memcache-to-make-your-web-applications-faster/

    http://www.ibm.com/developerworks/opensource/library/os-php-varnish/index.html

 

移动支付思考之手付通模式

Posted in Uncategorized by chuanliang on 2010/01/24

    最近几个月上海瀚银关于其“手付通” 产品的营销活动挺频繁的,在各大主流媒体都有所报道。按照官方说法,“手付通”作为第三代移动支付产品的杰出者,手付通的强大功能在同行中独树一帜,提供的服务主要包括:信用卡还款、余额查询、公共事业费、手机商城、彩票投注、娱乐票务、游戏充值、大众点评、机票订购、手机充值、查身份证、报刊杂志、鲜花速递等。

   在功能特点上,手付通主要强调

  • 魔盾,为大额支付安全提供金融级安全标准
  • 功能完善,应用全面
  • 以手机立身

  整理一下学习“手付通”所代表的移动支付的模式一些思考:

1、独立手机支付平台 VS. 手机支付服务提供商

  这里的“独立手机支付平台”和“手机支付服务提供商”是从产业链协作角度来区分的。主要是指手机支付厂商是自己专注于无线产业链的支付服务这一环节还是作为无线产业链的整合者身份来出现的。

  独立手机支付平台以无线产业链整合者的身份来出现。独立手机支付平台厂商不仅提供手机支付功能,还搭建应用平台来整合各种商家服务。用户只需要在手机支付平台上就能够完成所需要的各种服务。无可否认,所有的商家都梦谋以求能够成为所在产业链的整合者,由此得到的好处不言而喻。瀚银科技应该选择了此种定位,正如瀚银科技自己说法:“手付通,将来会成为手机消费者的徐家汇!”。

  对于像支付宝这样的厂商而言,由于拥有淘宝这样拥有众多应用及服务提供者,选择此种定位模式倒不成问题,但对于尚未具有太大行业影响力的公司而言,选择此种模式需要一个很长期培育过程,面临众多的问题,例如:

  • 与产业链合伙伙伴的关系:由于都看好无线的未来,产业链上的各个参与者都有自己做客户端的冲动,独立手机支付平台厂商怎样平衡与银行、商家、合作伙伴等的关系很微妙。例如像手付通中的“大众点评”服务,由于大众点评自己拥有自己具有固定的客户群,有多少人愿意通过手付通来使用大众点评服务呢。
  • 用户粘性问题:在尚未具有杀手级的应用服务的情况下,怎样提高用户的粘性,让用户能够经常使用支付客户端是独立手机支付平台厂商必须面临的问题。同时由于用户对支付手段多样化的需求(例如当下第三方支付提供的基于账户的支付、银行卡、神州行支付、信用支付等等),怎样满足这样多样化的需求呢?

     产品没有自己核心的价值灵魂,而只是纯粹由一堆应用堆积而成的支付客户端能有多大的吸引力呢?

  • 研发成本:由于面临众多的手机操作系统平台及同一手机平台的不同机型,怎样做到主流机型的适配是个大问题。另外作为行业整合者,意味着需要对不同的合作伙伴的应用进行整合或自行开发,这也是一个极其繁琐和具有挑战性的工作。 
  • 市场培育及推广成本:由于手机支付尚处于行业培育期,怎样让客户知道并愿意使用手机支付产品,在市场培育及营销推广上需要很大的成本。

  手机支付服务提供商更专注于为产业链的各个合作伙伴提供支付服务,产业链其他环节的事情由合作伙伴来负责搞定。在服务上支付厂商更专注为不同合作伙伴所在行业提供专业化的移动支付解决方案。

  当然这两者之间的界限也不是固定不变的,例如通过当下流行的“开发平台”策略,这两个角色之间是可以融合的。只不过怎样做到这一点,还需要进一步思考。 

2、产品及服务的目标客户群

  由于“手付通”本身的定位在“手机消费者的徐家汇”,因此“手付通”目前提供的产品即涉及对商家,又包括对客户。看来是想通吃商户和大众客户。

   对大众客户的服务包括各种在线购物,包括:虚拟商品、报刊、化妆品、数码产品、飞机票等。还包括大众点评、鲜花速递、水电煤这样的生活化的支付服务;甚至还包括身份证验证这样的服务。

  “手付通”的重要亮点之一就是其“魔盾”,通过魔盾可以完成“大额支付”的功能。由于涉及成本、方便性等问题,对于大众客户而言,需求并不是很高(至少对我而言),应该主要是针对商家或像银行这样有钱的主推出的服务。

   在产品上,由于像鲜花速递、数码、化妆品这样的产品涉及物流配送的问题,因此在供应链、物流配送、运营上对企业都具有较高的要求。即使此块业务可以外包给合作伙伴来运营,但怎样保持合作伙伴服务品质与瀚银品牌要求的一致性,对于一个初创型的企业而言,挑战还是挺大的。像手机充值、点卡充值这样的虚拟商品并不需要配送问题,对于大部分的手机支付提供商而言(包括像中国移动、中国电信这样的运营商)是不错的路。

   整体感觉“手付通”的定位还是有点混乱,或者是因为离得太远,没有理会其整体的战略布局。但对于一个初创型的企业而言,在资源有限的情况下,伟大的愿景还是需要靠一步一步的努力前行来达到。由于无线互联网尚处于市场培育阶段,有吸引力的杀手级无线应用尚未出现,用户使用手机支付的习惯及理由尚需要一个很长的培育过程。而且面对一堆堆对移动支付跃跃欲试的支付宝们、运营商们、银行们等竞争者,与其搞一堆没有人用的服务,还不如专注于某几个能够体现无线互联网特征的领域,提升自身的核心竞争力,让产品初期的使用者用户成为口碑的忠实传播者,这样才能够生存下来并赢得未来。 

3、“手付通”的盈利模式

  从目前其产品相对混乱的定位看来,“手付通”应该尚未找到真正的盈利模式。根据瀚银网站的信息,可以大致推导可能赚钱的几个点:

  • 交易手续费
  • 企业定制版本
  • 合作伙伴的市场营销活动推广费
  • 对银行/运营商的手机支付业务外包

  按照“手付通”目前的模式来看,在交易量不大的情况下,个人对于企业定制版本比较看好。但企业定制版本的核心不应当只是支付本身,而应当是业务导向。如果只是拘泥于支付本身,那么这样的浅层次定制并没有太大的价值。“手付通”应当建立“移动互联网专家(手机客户端开发)+手机支付专家+行业专家”的形象,针对看好的行业做深层次的定制。我相信这样的垂直化生存之路在未来的移动支付市场是有前途的。

 

基于EJBCA搭建自己的CA认证中心之EJBCA安装配置指南

Posted in Uncategorized by chuanliang on 2010/01/16

1. 概述

PKI(Public Key Infrastructure ) 即"公钥基础设施"较好地解决了Web 应用中的机密性、完整性、真实性和抗否认性等安全问题。但在Web 环境下,还必须证明公钥与其持有者之间的映射关系,并认证密钥持有者的身份。数字证书很好地解决了这个问题。同样,在分布式环境下,还应该建立起安全、有效的证书管理机制,实现证书的生成、存储、分发、吊销等操作,从而为Web 应用乃至网络通信提供必要的密钥和证书服务。公钥基础设施PKI 就是这样的一种提供安全服务的基础设施。PKI 的核心是对证书及其公/私钥对的管理。同时,PKI 也代表着一种分布式的信任模型关系,它首先要选择或定义证书格式及其操作过程,其次需要明确证书签发机构或个人之间的信任关系。

EJBCA就是这样一个针对PKI证书体系企业级的开源解决方案。它基于J2EE技术,提供了一个强大的、高性能并基于组件的CA体系。EJBCA兼具灵活性和平台独立性,能够独立使用,也能和任何J2EE应用程序集成。

2. 软件环境

操作系统:Centos 5.4

数据库:mysql 5.0

JDK:jdk 1.6

EJBCA:ejbca 3.9.3

ANT: ant 1.7.1

JBOSS:jboss 4.2.3

约定ejbca及相关软件都安装在/opt/目录下。

3. EJBCA基本架构

ejbca,数字证书,CA,RA,安全,开源

4. EJBCA的部署模式

ejbca,数字证书,CA,RA,安全,开源

完整的部署方案

EJBCA本身对负载均衡、高可用等有较好的支持,完整的部署方案描述了典型的完整的部署方案的部署形式。

ejbca,数字证书,CA,RA,安全,开源

CA与RA分离(External RA )部署模式

CA与RA分离(External RA )的部署模式,还可以退化成CA与RA部署在一起的模式,初期在安全性要求不高的情况下,基于成本及管理的方便,可以采用CA与RA一体化部署的模式。

5. JDK安装

wget http://cds-esd.sun.com/ESD6/JSCDL/jdk/6u17-b04/jdk-6u17-linux-i586.bin?AuthParam=1261744116_81ef97d958ff4f2096bbff2dd2c17e2e&TicketId=B%2Fw6lx2BRFJIShNAPVNdlwHl&GroupName=CDS&FilePath=/ESD6/JSCDL/jdk/6u17-b04/jdk-6u17-linux-i586.bin&File=jdk-6u17-linux-i586.bin

chmod 755 jdk-6u17-linux-i586.bin

./ jdk-6u17-linux-i586.bin

mv jdk-6u17-linux-i586 /opt/jdk

6. Java(TM) Cryptography Extension (JCE)安装

wget http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jce_policy-6.zip?BundledLineItemUUID=reZIBe.lWN4AAAEmJKgeYx0K&OrderID=7fhIBe.lMgUAAAEmGageYx0K&ProductID=33bACUFBf50AAAEYiO45AXuH&FileName=/jce_policy-6.zip

unzip jce_policy-6.zip

mv jce_policy-6/jce/*jar /opt/jdk/jre/lib/security/

JCE(Java密码扩展)为应用程序采用Java加密和数字签名提供了一种统一和一致的方式。如果在EJBCA中使用高强度的加密方式或者当数字证书的用户密码大于7个字符时候,必须安装JCE包,否则在ejbca中会报类似如下的错误:

Exception:

java.io.IOException: exception encrypting data – java.security.InvalidKeyException: Illegal key size

at org.bouncycastle.jce.provider.JDKPKCS12KeyStore.wrapKey(JDKPKCS12KeyStore.java:602)

at org.bouncycastle.jce.provider.JDKPKCS12KeyStore.engineStore(JDKPKCS12KeyStore.java:1108)

at java.security.KeyStore.store(KeyStore.java:1117)

at org.ejbca.ui.web.pub.CertReqServlet$RequestInstance.sendP12Token(CertReqServlet.java:574)

at org.ejbca.ui.web.pub.CertReqServlet$RequestInstance.doPost(CertReqServlet.java:273)

at org.ejbca.ui.web.pub.CertReqServlet.doPost(CertReqServlet.java:726)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)

at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)

at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)

at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoE
ndpoint.java:446)

at java.lang.Thread.run(Thread.java:619)

7. ANT安装

wget http://apache.etoak.com/ant/binaries/apache-ant-1.7.1-bin.tar.gz

unzip apache-ant-1.7.1-bin.zip

mv apache-ant-1.7.1-bin /opt/ant

8. Jboss安装

wget http://cdnetworks-kr-1.dl.sourceforge.net/project/jboss/JBoss/JBoss-4.2.3.GA/jboss-4.2.3.GA.zip

unzip jboss-4.2.3.GA.zip

mv jboss-4.2.3.GA /opt/jboss-4.2.3.GA

chmod 755 /opt/jboss-4.2.3.GA/bin/*sh

Ø 拷贝Jboss Web Service相关的包

在jdk1.6+Jboss 4.2.3组合情况下,要支持JAX-WS 2.0 apis,需要拷贝${JBOSS_HOME}/client下的如下包到${JBOSS_HOME}/lib/endorsed

jboss-jaxrpc.jar

jboss-jaxws.jar

jboss-jaxws-ext.jar

jboss-saaj.jar

jaxb-api.jar

否则会报如下错误:

setProperty must be overridden by all subclasses of SOAPMessage

并会导致jboss直接退出

参考:

http://sourceforge.net/project/shownotes.php?release_id=614346&group_id=22866

https://jira.jboss.org/jira/browse/JBWS-1439

Ø 修改jboss 端口

vi jboss-4.2.3.GA/server/default/deploy/jboss-web.deployer/server.xml,将

<Connector port="8080" address="${jboss.bind.address}"

maxThreads="250" maxHttpHeaderSize="8192"

emptySessionPath="true" protocol="HTTP/1.1"

enableLookups="false" redirectPort="8443" acceptCount="100"

connectionTimeout="20000" disableUploadTimeout="true" />

修改为:

<Connector port="80" address="0.0.0.0"

maxThreads="250" maxHttpHeaderSize="8192"

emptySessionPath="true" protocol="HTTP/1.1"

enableLookups="false" redirectPort="8443" acceptCount="100"

connectionTimeout="20000" disableUploadTimeout="true" />

Ø 修改启动参数

vi jboss-4.2.3.GA/bin/run.conf,修改如下:

JAVA_OPTS="-Xms1024m –Xmx1024m –server –XX:MaxPermSize=512m –XX:PermSize=256m -XX:MaxNewSize=512m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000"

由于在一些平台上ejbca 3.9.3+jboss 5.0版本的组合方式在安装时候存在一些问题,推荐使用jboss 4.2.3版本。

9. Mysql安装配置

Ø 下载安装mysql安装包:

wget http://dev.mysql.com/get/Downloads/MySQL-5.0/MySQL-server-community-5.0.89-0.rhel5.i386.rpm/from/http://mirror-fpt-telecom.fpt.net/mysql/

wget http://dev.mysql.com/get/Downloads/MySQL-5.0/MySQL-client-community-5.0.89-0.rhel5.i386.rpm/from/http://mirror-fpt-telecom.fpt.net/mysql/

wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.10.tar.gz/from/http://gd.tuwien.ac.at/db/mysql/

rpm –ivh MySQL-server-community-5.0.89-0.rhel5.i386.rpm MySQL-client-community-5.0.89-0.rhel5.i386.rpm

tar zxvf mysql-connector-java-5.1.10.tar.gz

cp mysql-connector-java-5.1.10/mysql-connector-java-5.1.10-bin.jar /opt/jboss-4.2.3.GA/server/default/lib

Ø 创建ejbca数据库

mysql –uroot –p

create database ejbca default character set utf8;

grant all privileges on *.* to ejbca@localhost identified by ‘ejbca’;

flush privileges;

10. 环境变量配置

修改~/.bash_profile,内容如下:

export JAVA_HOME=/opt/jdk

export JBOSS_HOME=/opt/jboss-4.2.3.GA

export APPSRV_HOME=/opt/jboss-4.2.3.GA

export J2EE_HOME=/opt/jboss-4.2.3.GA

export ANT_HOME=/opt/ant

export PATH=$JAVA_HOME/bin:$PATH:$HOME/bin:$JBOSS_HOME/bin:$ANT_HOME/bin:.

export EJBCA_HOME=/opt/ejbca_3_9_3

export ANT_OPTS=-Xmx640m

11. EJBCA安装配置

wget http://downloads.sourceforge.net/ejbca/ejbca_3_9_3.zip

unzip ejbca_3_9_3.zip

mv ejbca_3_9_3 /opt/

cd /opt/ejbca_3_9_3/conf

Ø 修改ejbca.propterties配置文件

cp ejbca.properties.sample ejbca.properties

内容如下:

appserver.type=jboss

appserver.home=${env.APPSRV_HOME}

java.ver=15

ca.name=Yeeach Root CA

ca.dn=CN=Yeeach Root CA,O=Yeeach,C=CN

其他采用缺省值

Ø 修改database.properties

cp database.properties.sample database.properties

内容如下:

database.name=mysql

datasource.mapping=mySQL

database.url=jdbc:mysql://127.0.0.1:3306/ejbca?characterEncoding=UTF-8

database.driver=com.mysql.jdbc.Driver

database.username=ejbca

database.password=ejbca

Ø 修改web.properties

cp web.properties.sample web.properties

内容如下:

java.trustpassword=ejbca

superadmin.dn=CN=SuperAdmin 不要修改此处,3.9.3有bug,不能修改此处,不然登录管理界面时候报:Authorization Denied

superadmin.password=ejbca

httpsserver.hostname=*.yeeach.com

httpserver.pubhttp=80

注意:此处httpsserver.hostname=*.yeeach.com使用了所谓的通配符证书(wildcard certificates),以便能够支持对ca.yeeach.com,www.yeeach.com这样的域名都采用同一个证书。

Ø 安装ejbca

cd /opt/ejbca_3_9_3/

cp lib/bc*jar /opt/jboss-4.2.3.GA/server/default/lib/

ant bootstrap

启动jboss:/opt/jboss-4.2.3.GA/bin/run.sh&

ant install 一路回车确认完成安装,生成了CA、Jboss证书、浏览器证书。

杀掉jboss :ps -ef|grep jboss|grep -v grep|awk ‘{print $2}’|xargs kill -9

部署ejbca:ant deploy

再次启动jboss:/opt/jboss-4.2.3.GA/bin/run.sh&

修改客户端c:WINDOWSsystem32driversetchosts,配置测试域名

192.168.70.23 ca.yeeach.com

导入证书:在客户端浏览器里面导入/opt/ejbca_3_9_3/p12/superadmin.p12证书,密码默认是ejbca(在web.propterties中的superadmin.password=ejbca)

输入https://ca.yeeach.com:8443/ejbca 就可以通过web方式管理CA了

Ø 重装ejbca

在测试系统中,如果要重装ejbca,请按照如下步骤重装ejbca。

重建数据库:

mysql –uroot –p

mysql>drop database ejbca;

mysql>create database ejbca default character set utf8;

清空ejbca:

ant clean

按照前面的安装步骤重新安装ejbca

ant bootstrap

当然在生产系统中就不要轻易重新安装。

12. 导入p12格式的证书说明

下面以导入superadmin.p12为例说明p12格式的数字证书导入到客户端的过程。

1) 、双击superadmin.p12证书文件 ,出现如下画面,单击下一步

ejbca,数字证书,CA,RA,安全,开源

2)、出现如下画面选择“下一步”

ejbca,数字证书,CA,RA,安全,开源

3)、出现如下画面,输入superadmin.p12证书的密码(缺省为ejbca),然后点击“下一步”

为了安全,可以在输入私钥密码后,勾选下面的‘启用强制私钥保护’,这样当使用证书登录时,还会要求您输入密码

为了安全起见,建议不要选择“标志此密钥为可导出的。这将允许您在稍后备份或传输密钥”,以限定密钥的传播范围。

ejbca,数字证书,CA,RA,安全,开源

4)、出现如下画面,选择“根据证书类型,自动选择证书存储区” ,然后点击“下一步”

ejbca,数字证书,CA,RA,安全,开源

5)、出现如下画面,然后点击“完成”

ejbca,数字证书,CA,RA,安全,开源

6)、出现安全警告窗口,选择“是”,完成安装。

ejbca,数字证书,CA,RA,安全,开源

clip_image020

7)、安装完成后,在“受信任的根证书颁发机构”有颁发给“Yeeach Root CA“的记录“个人”中有颁发给“Yeeach Super Admin”的记录。如果没有,再次手动导入。

ejbca,数字证书,CA,RA,安全,开源

ejbca,数字证书,CA,RA,安全,开源

 

 

下载pdf版本:基于EJBCA搭建自己的CA认证中心之EJBCA安装配置指南.pdf

 

Technorati 标签: ,,,,,,

基于EJBCA搭建自己的CA认证中心之EJBCA管理员使用指南

Posted in Uncategorized by chuanliang on 2010/01/15

1. 概述

pki,ejbca,数字证书,CA,RA,安全,开源,rsa

Yeeach证书体系

Yeeach 证书体系分为3级:

第一级:用于证书授权(Certificate Authority)

Yeeach Root CA,Yeeach证书体系的根证书。

第二级:用于证书发放审核

Yeeach Consumer CA,实际上就是用于签发Yeeach普通用户证书的RA

Yeeach Merchant CA,实际上就是用于签发Yeeach商户证书的RA

第三级:普通用户或商户的个人证书

2. EJBCA管理员使用指南

1)、在客户端浏览器导入superadmin.p12证书

superadmin.p12可以从ejbca_3_9_3/p12获得。

2)、访问https://ca.yeeach.com:8443/ejbca/adminweb/index.jsp

3)、增加RAYeeach Merchant CAYeeach Consumer CA

增加Yeeach Consumer CA:CA Functions->Edit Certificate Authorities->Create

增加Yeeach Merchant CA:CA Functions->Edit Certificate Authorities->Create

下面以增加Yeeach Consumer CA为例子,说明一下增加过程。

pki,ejbca,数字证书,CA,RA,安全,开源,rsa

pki,ejbca,数字证书,CA,RA,安全,开源,rsa

其中:

RSA key size:2048

Subject DN:CN=Yeeach Consumer Ca,O=Yeeach,C=CN

Signed By:Yeeach Root CA

Validity (*y *mo *d) or end date of the certificate:3650d

Use PrintableString encoding in DN:选中

Approval Settings:不选择(选中所有的需要通过审批过程,增加End Entity 时候提示Request has been sent for approval)

对于增加Yeeach Merchant CA的过程类似。

3)、增加End Entity Profile

RA Functions ->Edit End Entity Profiles增加End Entity Profile

pki,ejbca,数字证书,CA,RA,安全,开源,rsa

然后选中在“Current End Entity Profiles”选中“Yeeach Consumer End Entity Profile”,点击“Edit End Entity Profile”

在Subject DN Fields,通过Add按钮,增加如下属性,且都为(Required 、Modifiable):

CN, Common name

UID, Unique Identifier

O, Organization

Default CA:Yeeach Consumer CA

Available CAs:Yeeach Consumer CA

Default Token:P12

Available Tokens:P12

Approval Settings:不选择(选中所有的需要通过审批过程,增加End Entity 时候提示Request has been sent for approval)

pki,ejbca,数字证书,CA,RA,安全,开源,rsa

4)、增加一个Yeeach Consumer CA的普通用户liangchuan

RA Functions ->Add End Entity增加一个Yeeach Consumer CA的普通用户liangchuan

End Entity Profile选中刚才新增的“Yeeach Consumer End Entity Profile”

Token:

p12 File用于存放个人证书/私钥,包含保护密码,存储方式为2进制形式

PEM File用于存放个人证书,不包含私钥,存放方式是ascii形式

JKS File如果要用于Web Service及Java程序,选用此选项

pki,ejbca,数字证书,CA,RA,安全,开源,rsa

4)、增加一个Yeeach Consumer CARA)的管理员ra1并授予管理员权限

Superadmin增加Yeeach Consumer CARA)的管理员ra1并授予管理员权限后,ra1就可以作为RA的管理员,对所属RA的用户证书注册等操作进行操作。

RA Functions ->Add End Entity增加一个Yeeach Consumer CA的管理员ra1

System Functions-> Edit Administrator Privileges-> Add->增加“Yeeach Consumer CA Administrator Group”

pki,ejbca,数字证书,CA,RA,安全,开源,rsa

点击Yeeach Consumer CA Administrator Group中的Administrator,进入“Administrators in group Yeeach Consumer CA Administrator Group”,按照下图增加RA管理员ra1

pki,ejbca,数字证书,CA,RA,安全,开源,rsa

点击Edit Access Rules,进入“Access Rules for group Yeeach Consumer CA Administrator Group”,授予RA Administrators的角色权限。

pki,ejbca,数字证书,CA,RA,安全,开源,rsa

3. 下载客户端证书

1)、访问https://ca.yeeach.com:8443/ejbca/index.jsp

2)、点击Create Keystore,以从管理后台新增的用户的用户名及密码登录

Key length:2048 bits

Certificate profile:ENDUSER

pki,ejbca,数字证书,CA,RA,安全,开源,rsa

备注:

EJBCA缺省情况下只允许从Public前台下载一次用户证书,下载后,用户证书的状态从“New”变为“Generated”,可以在管理后台按照如下步骤修改用户状态:

1、 https://ca.yeeach.com:8443/ejbca/adminweb/index.jsp

2、RA Functions->Search/Edit End Entities->Or with status 选择All,点击search->Edit_End_Entity->在查询结果对应用户的记录,点击Edit_End_Entity ->在Edit End Entity页面

pki,ejbca,数字证书,CA,RA,安全,开源,rsa

输入Password及Confirum Password,将用户状态从“Generated”修改为“New

pki,ejbca,数字证书,CA,RA,安全,开源,rsa

把所生成的证书发送给用户,用户将证书导入浏览器后既可以使用。

 

现在pdf版本:基于EJBCA搭建自己的CA认证中心之EJBCA管理员使用指南.pdf

 

Technorati 标签: ,,,,,,,

垂直行业的无线互联网机会

Posted in Uncategorized by chuanliang on 2010/01/09

    看了这2篇文章“国际航空、酒店巨头打响拇指争夺战”及“手机日益成为酒店在线预订的新渠道”,很有感触。应该说国外这些航空公司、酒店巨头及开发商们在垂直行业(互联网行业的垂直领域、传统行业的垂直领域)对无线互联网的应用为国内的无线互联网公司们树立了标杆。

    尽管大家去年就开始说2009年是3G及无线互联网的元年,只不过在过去一年中,国内似乎没有见到太多让人心动的手机应用。一堆初创型的无线互联网公司们都觉得相对于那些传统的互联网公司们迟缓的无线战略具有无比的先发优势,于是乎都信誓旦旦地宣称要做“手机上的新浪、盛大、大众点评网、支付宝”,在这样的豪情壮志的激励下,大家都以现有成功互联网公司的产品架构为准,照抄各种成功经验。由于单一应用的用户粘性似乎不够,为涵盖更多的用户群,大家都不停地往客户端添加图书、音乐、游戏、社区、论坛、音乐、新闻等各种功能,最后客户端变得真的像新浪这样的门户网站大而全,但最终的下场只能是消失(正如我们曾经犯过的错一样)。

    在无线互联网尚未有清晰的盈利模式的情况下,任何尝试都是值得尊敬的。但对于大部分无线公司而言,如果以为相对于巨头们在无线上具有先发优势那就错了。传统互联网巨头们在品牌、内容、客户、技术研发、产品策划、营销、推广能力等各方面都具有巨大优势,在市场逐渐培育起来后,巨头们再杀进来,那类似于博客、视频、微博这样的悲剧会再次重演。

    无线互联网本身具有的移动性、方便性、可管理性、可唯一识别性、位置相关性等特点,能够很好满足传统企业的众多需求,具有传统互联网完全不具有的特点和优势。因此在互联网行业的垂直领域,如果能够充分挖掘无线互联网的特点,聚焦在垂直行业并有所业务模式的创新,而非照搬已有的业务模式,相信也有无穷的机会。

    在传统行业的垂直领域,我觉得无线互联网公司们似乎机会更多。对于众多的传统企业而言,互联网应用程度尚很低,互联网与传统行业的结合(例如电子商务)也刚刚起步。那些所谓的互联网巨头们而言对于传统行业生意的游戏规则也尚不是很清楚,而这些行业最大的门槛是对行业需求的深刻理解及与互联网工具的无缝结合。

    因此我觉得:初创型无线互联网公司最大的机会不是去侵夺传统互联网公司们的领地,而在于怎样充分利用无线互联网的特点并聚焦于那些正在互联网化或开始接纳互联网的传统行业的垂直领域。与其在低门槛的互联网市场上与那些传统巨头们竞争,还不如充分发挥自己对无线互联网技术及传统垂直市场的业务需求的理解来赢得自己的生存空间。

    那么无线互联网公司们怎样在传统行业的垂直领域有所作为呢?梳理一下感兴趣且觉得是机会的地方:

    1、无线互联网下的传统行业业务模式变革机会,例如移动商务、移动电子商务

    2、无线互联网与社会化媒体的结合,帮助传统行业企业实现品牌营销及网络营销

    3、无线互联网下的客户关系管理,帮助传统行业企业与客户的互动及忠诚度管理

    4、无线互联网下垂直行业的客户端开发外包及运营外包机会

    5、无线互联网下客户端开放平台及客户端联盟

       

从Rseven手机备份服务看无线互联网的产品创新

Posted in Uncategorized by chuanliang on 2010/01/07

    Rseven是一个很不错的在线手机备份服务,很酷、很强大。Rseven提供的主要功能如下(摘自Rseven:功能强大的手机备份服务):

  • 提供备份服务,备份的内容包括:通话记录/日志, 消息 (SMS, MMS & emails), 图片, 音频, 视频,并且以TimeLine的方式展示这些信息;
  • 提供同步服务:同步的内容包括:联系人和Calendar (appointments & to do items).
  • 可以讲Rseven备份内容还原到你的手机;
  • 支持对图片, 音频, 视频用Tag进行管理;
  • 可以对来电通话等进行录音并且同步到rseven,并且可以在rseven收听录音;
  • 可以统计你和联系人的联系频率,包括通话频率,短信等;
  • 可以将同不到rseven的内容分享到第三方网站,目前支持Facebook;

  更详细的功能可以参考Rseven的官方网站。

  正如DEMO Conferences的Chris Shipley所说

    Rseven provides a different approach in doing mobile phone backup & sync, by focusing on lifecache elements. I like the idea that the user can go back in time and see who they were calling and texting at any point in time in the past to recall what they were doing on that day. With the latest feature – call recording & geo-tagging – Rseven creates a new genre of service beyond the basics of mobile backup & sync。

   去年做无线互联网也做过类似的服务,与国内一堆类似的服务比较,还觉得做得不错,只不过看到Rseven后让人汗颜。

    原来公司所在的集团是手机连锁企业,在连锁店面更换手机时候很多人都面临怎样将旧手机中的号码迁移到新手机中的问题。由于各种手机机型所提供的对通信录备份方法及备份格式千差万别,并没有通用方法。好在Nokia、Samsung等销量最高的大部分手型都内置支持Syncml协议,因此在客户端尚未开发出来前可以通过手机内置的同步协议来完成通信录的备份和恢复。通过手机备份恢复这一免费服务,与其他的手机连锁企业相比较,已经达到了服务的差异化。但单纯通过手机内置的同步功能来做,并不能真正黏住用户并运营客户。因此公司打算开发单独的手机客户端来达到运营客户的目的。

    在做客户端时候,老板提出了产品的目标:要做一个类似于QQ这样的客户端软件,让用户天天上线使用我们的客户端。

    在开发客户端时候,同步作为核心功能之一保留下来。在通信协议上沿用了基于Syncml的方案。借鉴诸如mytt这样的客户端的功能,在产品功能上增加了SMS、MMS、记事本、日历、音频、视频的备份和恢复。进一步细想,围绕同步功能似乎没有太多的事情可以做。显然单纯依靠同步、恢复功能并不能满足让用户天天上线使用客户端的目标。(从手机同步服务想起    关于手机同步备份的两则新闻

    在获得用户真实的通信录的情况下,那自然的思路就是基于用户真实信息的SNS社区,想象一下用户真实的通信录+SNS社区那是多么的美妙。这里的SNS社区可以是以用户关系、用户机型、用户兴趣爱好等维度为纽带。因此客户端应当具备SNS社区的功能。(无线互联网技术平台战略思考提纲

    再进一步,用户间的沟通聊天是多么基本的需求啊,那我们的客户端可以再增加上即时通信、语音聊天、视频的功能。(手机客户端IM技术实现思考3-聚合化生存手机客户端IM技术实现思考2-我的IM2.0手机客户端IM技术实现思考

    由于公司已经有防盗管家、电话管家这样的产品,同时借鉴网秦的盈利模式,因此自然又想到了应当将这几款产品的功能也融入到客户端中去。

    既然我们要打造增值业务的地面梦网模式(那时候还没有出app store的模式),那我们应当把客户端作为增值业务的通路之一来做,于是乎在客户端上又增加上了手机软件、游戏、铃声、主题等下载功能。而要打造地面梦网的核心价值之一就是支付功能,因此产品功能应当再加上手机充值、手机支付的功能。(无线增值业务门户建设技术思考

    由于游戏已经成为手机用户最大的消费之一,因此除了游戏下载功能外,我们作为通路,那应当再加上Wap网游游戏大厅的功能。以此类推,那我们应当还加上火热的Twitter、RSS功能。(手机客户端内容聚合技术思考

    最后我们的产品形成了几大功能模块:同步功能、资源下载功能、Wap网游、社区、支付功能。IM、防盗关键、电话管家等功能的融合打算第一版完善后在逐步增加。

    只不过尚未等到这些功能开发完成并上线运营,公司就Over掉了,留给其他革命同志们继续未竟的事业。

    现在回头看看曾经的产品策划过程,对比Rseven这样的产品定位,不仅感叹万分。我们的失败是必然的,成功是偶然的。

    由于用户手机通信录信息是构建用户关系链最直截了当的手段,因此一堆无线互联网们都提供了手机通信录备份功能,但大家的功能都大同小异,基本还是停留在对手机内容(通信录、SMS、MMS、记事本、日历、音频、视频等)的处理上,而围绕内容本身大不了就是备份、恢复、剔重、分类/tag、定时等功能。包括apple mobileme、MS Myphone、Google Sync这些巨头们的产品以及国内的mytt、移动梦网号码薄管家、火种、无忧通讯录等也是类似。对于用户而言并没有太多的互动和新意,只是一堆无聊的增加、删除、修改、查询操作按钮,产品们没有什么酷的元素可以炫耀。

    由于单独的备份恢复并不能达到用户频繁使用的目的,于是乎大家都不停地往产品里面添加功能,最后产品融合了众多的功能,变得四不像。不止我们犯下如此的错误,当下国内大部分无线互联网公司们也在做着同样愚蠢的事情。看看当下的各种手机客户端,哪一个不搬出一堆功能来还真不好意思拿出手。

    尽管在产品功能及体验上尚不是很完善,但Rseven在产品设计上已经让各种类似的手机备份服务相形见绌。Rseven产品核心的设计思想不是备份、恢复,而是所谓的“lifecache service”。Rseven以时间轴方式来组织用户对于这些内容的操作行为(例如通话、发短信、录音、位置信息),让用户轻松回顾自己过去一段时间的呼叫记录、短信记录、位置信息等。Rseven还提供了通话录音(Record calls)、地理标记(geo-tagging)、标签及分享(Tag, Note & Share)功能来帮助用户实现lifecache的目的。通过timeline方式显示这些活动的信息让备份变得有趣多了,让用户方便回顾自己的活动轨迹,应该是借鉴了Mac 备份的时间机器。通过联系频率(例如通话频率、短信频率)等可以得到用户关系的紧密程度,从而帮助用户更高效管理自己的人际关系。

    在SNS社区上,Rseven采用了开放的态度,允许用户将内容分享到Facebook,未来应该会进一步将用户的lifecache与Facebook、Linkedin这样的SNS社区的无缝集成。

      一些杂思:

   1、好的互联网产品需要有核心的灵魂和思想。只是一堆功能的组合而没有灵魂的产品,只能是平庸的产品,很容易被市场所遗忘掉。

   2、坚守产品的核心定位,要拒绝各种与核心定位偏离太远的功能诱惑。也即所谓的“舍得,有舍才有得”。舍得的标准不是产品功能本身及老板的需求,而是产品带给用户的核心价值

   3、产品没有完美可言,总有改进和创新的地方,关键在于我们要专注于目标客户群的核心需求,深度挖掘用户需求。

   4、开放的思维、开放的心态:要聚焦于自己最为擅长的地方,以开放的态度整合各种服务。开放心态后,我们就会发现海阔天空

   5、很多优秀产品的设计中已经蕴涵了我们产品所需要的核心灵魂,抄袭并抄越也是一种能力。而能否成功山寨的关键在于我们是否领会了优秀产品的设计思想而非外在的东西;在于我们平常是否留意了这些产品并痴迷于产品设计本身,这样才能够在进行产品设计时候灵光一现,也即稻盛和夫所说的“神灵之声”

   6、不要迷信大公司的创新能力,在创新上大家的起跑点都是一样的,关键是谁距离用户更近。

参考资料:

    DEMO: Rseven launches “lifecaching” service so you can examine your life in detail

    Rseven:功能强大的手机备份服务

    How The Different Mobile Data Syncing Services Stack Up

 

电子商务网站运营指标

Posted in Uncategorized by chuanliang on 2010/01/03

     对于电子商务企业而言,准确、有效的运营指标是实施精细化管理、持续改进运营能力的重要手段。网站经营者通过运营指标体系可以知道运营的瓶颈所在、消费者的使用习惯、网站的成功与不足之处等,并找到进一步改善的方法;网站投资者需要知道网站的运营状况、品牌实力和发展潜力,评价网站的价值,以便做出投资决策;消费者需要了解如何寻找最好的网站,以便获得最好的服务和最好的价值。

    刚刚看过的《ebay中国实践之启示录》第19章《CEO的网站运营驾驶仪表盘》详细描述了电子商务网站重要的运营指标体系,结合网站内容运营指标体系,梳理一下电子商务网站运营指标体系。总体上采用了《ebay中国实践之启示录》的框架。

 电子商务,运营指标,仪表盘,网站运营

    在日常的运营中,尤其在网站运营初期,运营指标体系没必要搞得太复杂,没必要搞一堆复杂的术语和公式来搞晕自己,关键在于可操作性和有效性。整体而言,《ebay中国实践之启示录》中提到的指标体系还是比较合理有效的,值得一读。

    对于不同类型的电子商务网站(例如电子商务网站商业模式之网络消费媒体导向 VS. 产品销售导向)关注的指标体系根据运营的重点不同而有所差异,需要根据自己的实际情况进行调整并在运营过程中逐步建立起适合企业实际情况的运营指标体系。

脑图在此下载

EMF格式图片在此下载

 

参考资料:

   http://www.j1f3.com/post/shuju-zhibiao.html

   http://www.kuangfeng.cn/blog/?p=1057

我的2009年总结

Posted in Uncategorized by chuanliang on 2010/01/01

  2009年对我而言,是动荡的一年。这一年经历了太多的事情,关于人生、关于事业、关于信仰有了更多的感悟。

  1、人生:

      这一年乃至于我一生最大的收获莫过于是拥有了一个可爱无比的宝宝。初为人父,体会了父母的不易,体会了一个父亲对于子女所要承担的责任。感谢上天的赐予。新的生命,新的起点

  2、事业:

       失败:最为辛苦的一家公司,付出了1年半的时间做无线、做依托连锁的app store、做电子商务,最终在金融风暴中,因老板的放弃而放弃。不管未来能否成功,相信对于我的人生是一段宝贵的经历,宁愿浴血沙场,也不愿在碌碌无为中虚度一生。更多的信心,更多的信任,更多的包容 生于希望,死于希望 除了裁员,我们还可以做得更多

       创业:几个月的创业时间,因为宝宝太小,无法兼顾事业与家庭的平衡,最终暂缓(关于事业与家庭平衡的思考 ),但不管这样,创业对于我这样的人而言是一种宿命。创业杂感

       回归:回到原来的公司,继续做第三方支付的事情。这是一个不错的行业,尤其是在移动互联网及电子商务蓬勃发展的年代。需要调整心态,静下心来,深入这个行业。

3、信仰:

        结识了很多个或是信仰佛或是信仰耶稣或是中国传统的朋友,但自己并没有建立起真正的信仰。但我认同:没有信仰的人生恐怖的人生。在这一年中,在我最迷茫的时候,传统文化给予我前进的力量。身居乱世之中,重新审视“活法”

 

 

2010 年TO-DO List:

   1、无线:错过了互联网泡沫、错过了游戏,无线的机会不能够再错过。基于android做一个好玩的客户端

   2、支付及电子商务:了解更多的金融知识及财务知识,深入产品管理、网络营销及网站运营

   3、团队:带好现在的团队。结识更多志同道合的朋友

   4、活动交流:多参加一些活动,提升演讲技巧

   5、信仰:深入研究史记、南怀瑾及中国传统文化,保持平和的心态。

   6、技术:技术及技术管理是我的核心竞争优势,重点放在:高性能服务器+手机客户端

   7、家庭:抽出更多时间陪伴我家可爱的宝宝