最近一段时间的在公司做的事情是:

1. 为公司的一些线上系统启用https(使用nginx反向代理的方式来实现,之前的应用无需做改动)

2.为符合规则的用户颁发数字证书(自建CA来实现,目前的用途是给公司的安卓和IOS app访问后台服务实现双向认证)

3.给安卓和IOS app提供消息推送的服务(安卓的推送自己来实现,IOS的使用apns来实现)

这些工作其中都涉及到了不少的东西,所以写一些文章记录下来,便于自己查看,如果有不对的地方,恳请指正。

今天先写一下数字证书相关的东西,即公钥基础设施体系和EJBCA.

公钥基础设施(Public Key Infrastructure),

参照百度百科的定义:

公钥基础设施是由公开密钥密码技术数字证书、证书认证中心和关于公开密钥的安全策略等基本成分共同组成,管理密钥和证书的系统或平台。

其中涉及到的一些技术和公开秘钥加密算法等知识可以到网上去查找相关的信息(吴军老师的 数学之美 里有一篇文章是讲公开秘钥加密背后的原理的)

常用的一些概念:

CA (Certificate Authority)是数字证书认证中心的简称,是指发放、管理、废除数字证书的机构。CA的作用是检查证书持有者身份的合法性,并签发证书(在证书上签字),以防证书被伪造或篡改,以及对证书和密钥进行管理

RA (Registration Authority)是数字证书认证中心的证书发放、管理的延伸。主要负责证书申请者的信息录入、审核以及证书发放等工作,同时,对发放的证书完成相应的管理功能

根证书:根证书是CA认证中心给自己颁发的证书,是信任链的起始点。安装根证书意味着对这个CA认证中心的信任,浏览器和操作系统中会内置一些常用的CA根证书,信任这些根证书的同时,也会信任这些根证书颁发的证书.

X.509  X.509是一种符合国际标准的证书格式,java语言提供了一些API来方便地读取X.509证书中的信息

SSL/TLS:  SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密. 通常我们接触到SSL和TLS的地方都是在使用浏览器访问网页的时候(使用https),但其实SSL和TLS协议是独立于https的,其他运行在应用层的协议(比如SMTP)也可以配合SSL实现安全传输.

https : http + SSL (或者 http + TLS)

EJBCA是一个开源的,完整的CA实现,提供了独立搭建一套CA系统所需要的所有的功能(CA功能,管理界面,RA功能和接口,OCSP等等) EJBCA分为商业版和开源版两种,codebase是一样的,商业版本提供了更好的支持和更多的特性.学习和研究的话使用开源的版本就可以了

官网:https://www.ejbca.org/

代码仓库的位置:https://svn.cesecore.eu/svn/ejbca/trunk/ejbca/

安装部署的文档:参考这篇文章:http://www.cnblogs.com/jiaoyiping/p/5814168.html

安装完成之后可以使用web界面来增加和删除用户,也可以通过ejbca提供的webservice接口来实现证书的创建,吊销和更新等工作.

最新文章

  1. IO流
  2. web跨域访问,session丢失的问题
  3. Java内存浅析分类
  4. $(document).ready()方法和window.onload区别
  5. Shepherd – 在应用程序中轻松实现引导功能
  6. 困扰我多年的Connection reset问题
  7. 某些版本的IIS可能有SessionID混淆的Bug
  8. CSU 1802 小X的战斗力【拓扑dp】
  9. Spring进阶之路(1)-Spring核心机制:依赖注入/控制反转
  10. iOS 真机测试的一些报错
  11. SGU 146.The Runner
  12. js渲染的3d玫瑰
  13. HTML5API___geolocation
  14. 转 Oracle DBCA高级玩法:从模板选择、脚本调用到多租户
  15. sql语句百万数据量优化方案
  16. Dynamics CRM 打开数据加密报错及修改用户邮件保存报错的解决方法
  17. nDPI-dev分析
  18. MyBatis项目快速搭建及MySQL一个Statement支持多条命令参数
  19. springboot集成druid连接池
  20. 【 js 基础 】【读书笔记】Javascript “继承”

热门文章

  1. 软件设计模式之模板方法模式(JAVA)
  2. Java初学者必学的JSTL
  3. vue获取dom元素注意问题
  4. C++中使用ODBC API访问数据库例程
  5. activeMq的helloword
  6. cesium导入3D模型(obj转gltf)
  7. Phpcms v9 实现首页|列表页|内容页调用点击量的代码
  8. 【jmeter】 jmeter 测试HTTP接口
  9. matlab矩阵内存预分配
  10. SpringMVC -- 梗概--源码--贰--上传