网络中http协议的数据是明文传输的,这就产生了机密敏感数据在传输过程中被窃取的危险。尤其日益流行的网上支付,钓鱼网站和用户冒名严重损害用户财产和利益。所以网络安全必须解决数据传输的加密,服务网站和用户的认证。基于SSL的http协议https解决了传输加密和服务网站认证的手段,用户认证也可以通过用户数字证书得以解决。根据百付宝网站的应用经验,下面主要介绍SSL在服务端(https)的应用。

SSL数字证书介绍与使用
背景
网络中http协议的数据是明文传输的,这就产生了机密敏感数据在传输过程中被窃取的危险。尤其日益流行的网上支付,钓鱼网站和用户冒名严重损害用户财产和利益。所以网络安全必须解决数据传输的加密,服务网站和用户的认证。基于SSL的http协议https解决了传输加密和服务网站认证的手段,用户认证也可以通过用户数字证书得以解决。根据百付宝网站的应用经验,下面主要介绍SSL在服务端(https)的应用。

SSL数字证书介绍
HTTPS实际上应用了Netscape的完全套接字层(SSL)作为HTTP应用层的子层,SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持,其工作流程可以查询资料。
SSL数字证书是在第三方CA机构严格审核注册的,用于SSL安全会话期间服务网站身份识别的加密序列文件,基于非对称密钥体制,序列文件中包含了公私钥以及一些通过审核认证的注册信息。最著名的两个SSL CA机构是verisign和globalsign,提供SSL数字证书的审批签发,并提供了对其颁发的数字证书因为证书问题造成安全损失的资金索赔,他们自己首先是世界机构许可和信任的。
SSL数字证书是作为web server的一个功能组件部署的,几乎常用的web server都支持SSL,比如lighttpd, apache, tomcat等。下面将以apache为例介绍。
SSL证书根据其加密强度分为支持型(40bit强度)和强制型(128bit),此两种又分为普通型和EV型(enhanced version)。相比,EV版本经过最彻底的身份验证,确保证书持有组织的真实性,绿色地址栏将显示组织名称,从而最大限度上确保网站的安全性,树立网站可信形象。这些类型的证书申请使用和安装方式基本一致。

SSL数字证书的申请注册
首先确保申请者和网站的真实性,向CA机构的代理方提交申请,制作生成CSR(certificate signature request), CA机构审核申请者和申请机构的信息,根据提交的CSR生成经过认证的SSL证书文件签发给申请组织。
在自己玩的时候可以自己伪造一个CA机构,当然只有你自己认可,这些都可以通过openssl开源工具进行管理。Openssl是一个管理SSL和CA的强大工具,在SSL证书申请的过程中是需要使用该工具的某些功能。
产品应用的SSL证书申请制作过程如下:
1, 生成私钥,并保存好,证书安装的时候需要。

 

-des3是加密类型,-out server.key为私钥的保存文件,1024为密钥长度。
过程中需要你设定密码,这个密码是在下面制造CSR和启动web server加载SSL证书读取私钥时候需要的密码。
2,生成CSR
现在就可以利用刚才生成的私钥制作CSR,-key server.key是上一步生成的私钥文件,-out server.csr为将要生成CSR的文件名。第一步需要提供刚开始设定的密码,然后一步一步提供需要的信息(必须真实,CA机构需要严格审查)。
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />



3,向第三方提交生成的CSR,第三方CA机构走严格的审核流程,确认真实性后授权SSL证书,邮件的方式返回文本的SSL证书内容(包含了密文格式的证书公钥和注册信息),保存为server.crt。

SSL数字证书在apache上的部署
首先apache必须编译对SSL的支持模块。
需要在httpd.conf中增加如下配置:
#ServerSignature on
SSLEngine on
SSLSessionCache shm:/abc/ssl_gcache_data(512000)
SSLCertificateFile /abc/keys/server_vip.pem
SSLCertificateChainFile /abc /keys/ca_vip.pem

其中SSLCertificateFile指定的是pem格式的证书文件位置,该文件由授权签发的server.crt和对应的私钥文件server.key组合而成:
Cat server.crt server.key > server_vip.pem
SSLCertificateChainFile指定的是被信任的第三方CA机构的证书文件CertificateChain(CA机构会提供,也是公开的,可以去官网找),每个CA机构有唯一的CertificateChain,其实也就是CA机构的×××书,类似我们被授权的server.crt,不同的是这些CA机构的证书是被各主流浏览器集成信任的。普通版本的SSL证书只有1级CertificateChain, EV版本证书有2级CertificateChain,这2级CertificateChain是被拼接在同一个文件中(ca_vip.pem)。

SSL数字证书查看
Web server部署好证书,重启web server就可以提供基于SSL的https服务了。
‘企业版百付宝’使用的是verisign的EV强制型SSL证书,见截图,可以看到EV版证书的green bar,让用户感觉到网站的安全可信。点击green bar能够提示网站更丰富的机构信息。




通过点击‘更多信息’,了解更为详细的证书详情和证书链的情况。