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

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接口来实现证书的创建,吊销和更新等工作.

公钥基础设施体系和EJBCA的一些概念的更多相关文章

  1. [转帖]公钥基础设施(PKI)/CFSSL证书生成工具的使用

    公钥基础设施(PKI)/CFSSL证书生成工具的使用 weilovepan520关注1人评论84344人阅读2018-05-26 12:22:20 https://blog.51cto.com/liu ...

  2. PKI(公钥基础设施)基础知识笔记

    数字签名 数字签名(又称公钥数字签名.电子签章)是一种类似写在纸上的普通的物理签名,可是使用了公钥加密领域的技术实现.用于鉴别数字信息的方法. 一套数字签名通常定义两种互补的运算.一个用于签名,还有一 ...

  3. PKI公钥基础设施简介

    PKI(Public Key Infrastructure)公钥基础设施是提供公钥加密和数字签名服务的系统或平台,目的是为了管理密钥和证书.一个机构通过采用PKI 框架管理密钥和证书可以建立一个安全的 ...

  4. 公钥基础设施PKI利用SRAM物理不可克隆函数PUF实现芯片标识唯一性

    下面给出PKI利用SRAM PUF实现芯片标识唯一性的方法思路: PKI利用SRAM PUF实现芯片标识唯一性的方式 (1)使用PUF原因 物理上不可克隆函数利用硅制造的自然变化来产生每个芯片统计上唯 ...

  5. (16) Cloudflare pki公钥基础设施

    该工具组共有8个工具 1.cfssl 常用的可用指令: sign signs a certificate bundle build a certificate bundle genkey genera ...

  6. Https原理及证书管理

    Https原理及证书管理 SSL(Secure Sockets Layer,安全套接层)/TLS(Transport Layer Security,传输层安全)保证了客户端web服务器的连接安全.客户 ...

  7. GPG 使用指南

    加密与签名 在传输信息时,会面临两个典型的问题: 如何保证发出的消息,只能被预期的接收人获取? 如何保证收到的消息,确实由预期的发送人发出? 这两个问题不难理解.例如发送的邮件可能会被监听,诈骗分子可 ...

  8. Oracle体系结构中基本概念,数据库

    在Oracle体系结构中包含了基本概念即Oracle数据库与实例,如果你想要了解Oracle体系结构的话,你就必须要了解这两个基本的概念,以下是文章的具体介绍,望你浏览完以下的内容会有所收获. 数据库 ...

  9. SSL安全证书-概念解析

    一.关于证书 数字证书是一种认证机制.简单点说,它代表了一种由权威机构颁发授权的安全标志. 由来 在以前,传统网站采用HTTP协议进行数据传输,所有的数据几乎都用的明文,很容易发生隐私泄露.为了解决安 ...

随机推荐

  1. [原]使用Fiddler捕获java的网络通信数据

    [原]使用Fiddler捕获java的网络通信数据 System.setProperty("http.proxySet", "true"); System.se ...

  2. 'AndroidManifest.xml' must have a minimum of 2 segments.

    Manifest下必须有二级域名 <manifest xmlns:android="http://schemas.android.com/apk/res/android" p ...

  3. Android立刻终止一个线程

    /** * Created by JuTao on 2017/2/4. * 如何中止一个线程 */ public class ThreadDone { public static void main( ...

  4. 使用pyinotify实现加强版的linux tail -f 命令,并且对日志类型的文本进行单独优化着色显示。

    tail -f命令不能自动切换切片文件,例如日志是每100M生成一个新文件,tail -f不能自动的切换文件,必须关闭然后重新运行tail -f 此篇使用pyinotify,检测文件更新,并实现tai ...

  5. Laravel5.1 填充数据库

    当我们创建好表结构后 通常都要生成一些测试用的数据来测试,应对这个场景呢 Laravel提供了相当好的服务 --seed Laravel的seeder都会放在:/database/seeders 目录 ...

  6. Lambda模式

    Class TestPatterns '<<1.Self-Defining Functions-自定义函数>> Public Shared Sub SelfDefining() ...

  7. JSP面试知识

    JSP方面 1. JSP四种范围是什么?区别是什么? Page:指单单一页jsp page的范围: Request:的范围只在一jsp页发出请求到另一页之间,随后这个属性失效: Session:范围是 ...

  8. (转)base64编码是怎么工作的?

    按:在PHP中级班的课堂上,有位同学问这样一个问题:“我在用 base64_encode 对用户名进行编码时,会出来等号,是不是可以去掉?”跟我来看完这篇文章,答案即揭晓. 1: 为什么需要base6 ...

  9. Greenplum-cc-web安装

    第一章 文档概述 1. 本安装手册描述适用于Greenplum4.0以上版本的安装Greenplum-cc-web操作 第二章 安装介质 针对Greenplum版本下载对应Greenplum-cc-w ...

  10. jenkins构建的robot result结果不更新

    描述:构建的结果不进行更新,仍然显示以往的构建结果 定位原因:pybot 命令中生成的结果文件保存路径与构建后robot结果显示路径不一致所致 解决办法:修改二者的结果保存路径一致