CA认证和颁发吊销证书
摘要:涉及到网络安全这一块,想必大家都听过CA吧。像百度、淘宝、京东等这些知名网站,每年都要花费一笔money来买CA证书。但其实简单的企业内的CA认证,我们自己就可以实现,今天小编我就讲解一下怎么在企业局部实现CA认证。
一、CA介绍
1、电子商务认证授权机构(CA, Certificate Authority),也称为电子商务认证中心,是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中钥的合法性检验的责任。
2、PKI: Public Key Infrastructure
签证机构:CA (Certificate Authority)
注册机构:RA
证书吊销列表:CRL
3、获取证书两种方法:
• 使用证书授权机构
生成签名请求(csr)
将csr 发送给CA
从CA 处接收签名
• 自签名的证书
自已签发自己
4、实例:打开百度,按F12,可以查看百度的CA证书
二、创建私有CA和申请证书及简单步骤说明
1、原理介绍:
我们以A端为CA机构,B端是申请证书的公司
2、A端自签证书,自签证书之前我们要,了解查看配置文件的说明 vim /etc/pki/tls/openssl.cnf,会告诉我们怎么自签证书,要求我们创建的东西放在哪些目录下。
[ CA_default ]
dir = /etc/pki/CA # Where everything is kept 总目录,把总目录付给变量,下边都用变量表示
certs = $dir/certs # Where the issued certs are kept 发布的证书,若干证书
crl_dir = $dir/crl # Where the issued crl are kept 证书吊销列表
database = $dir/index.txt # database index file. 文本文件,数据库,存放证书编号,简单的索引
#unique_subject = no # Set to 'no' to allow creation of 是否允许多个证书用相同的subject(颁发给谁)
# several ctificates with same subject.
new_certs_dir = $dir/newcerts # default place for new certs. 新颁发的证书放的地方
certificate = $dir/cacert.pem # The CA certificate 证书文件,第一个是自签名证书
serial = $dir/serial # The current serial number 下一个要颁发证书的编号
crlnumber = $dir/crlnumber # the current crl number 吊销列表的编号
# must be commented out to leave a V1 CRL
crl = $dir/crl.pem # The current CRL 吊销列表存放的文件
private_key = $dir/private/cakey.pem # The private key 私钥放的地方
RANDFILE = $dir/private/.rand # private random number file 随机数
3、申请证书时,要填写的必要信息
[ policy_match ] 注意:match必须匹配,客户端申请证书和CA颁发填写的信息必须相同
countryName = match国家
stateOrProvinceName = match省、州
organizationName = match组织、公司名
organizationalUnitName = optional 部门
commonName = supplied 给哪个域名颁发
emailAddress = optional[ policy_anything ] 邮件地址
3、B端证书申请及签署步骤:
① 生成申请请求
② RA 核验
③ CA 签署
④ 获取证书
三、A端创建私有CA
1、创建所需要的文件(如果不创建,后边操作会出错)
touch /etc/pki/CA/index.txt 生成证书索引数据库文件
echo 99 > /etc/pki/CA/serial 指定第一个颁发证书的序列号,一般都是从01开始,也可以不从01开始,但一定要是2位或4位数,我们就以99为例
2、CA 自签证书
① 生成私钥
cd /etc/pki/CA/
(umask 066; openssl genrsa -out /etc/pki/CA/private/cakey.pem [-des3] 2048)
可以加密,也可以不加密,加过密,后边每次都要输入,为了试验方便就不加密了,但加密更安全
tree /etc/pki/CA/ 可以看到cakey.pem 生成了
② 生成自签名证书
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 7300 -out /etc/pki/CA/cacert.pem (req申请、-x509自签名、cacert.pem)
req:请求申请证书
-new: 生成新证书签署请求
-x509: 专用于CA 生成自签证书
-key: 生成请求时用到的私钥文件
-days n :证书的有效期限
-out / PATH/TO/SOMECERTFILE : 生成私钥证书的保存路径
③ 查看
cat /etc/pki/CA/cacert.pem 生成的证书文件,直接cat不能看到信息,用下边的命令
openssl x509 -in /etc/pki/CA/cacert.pem -noout -text (-text:生成的证书)
④ 也可以传到windows上查看,要改后缀,可以为cer/crt,不然不识别,sz发到windows上
四、B客户端申请证书
1、centos 6 生成私钥
(umask 066;openssl genrsa -out /app/service.key 2048)
2、利用私钥生成证书请求文件, 在需要使用证书的主机生成证书请求
openssl req -new -key /etc/pki/tls/private/test.key -days 365 -out etc/pki/tls/test.csr
3、将证书请求文件传输给CA
scp /app/service.csr 192.168.30.107:/etc/pki/CA
五、A端,签署证书
1、为了方便管理,创建一个专门放请求的目录,把请求都放在这个目录下,不是必须的
mkdir csr
mv service.csr csr/
2、CA 签署证书,并将证书颁发给请求者
openssl ca -in /etc/pki/CA/csr/service.csr -out /etc/pki/CA/certs/service.crt -days 100
注意:默认国家,省,公司名称三项必须和CA一致
签署后:会生成更新一些文件
3、查看证书中的信息:
openssl x509 -in /etc/pki/CA/certs/service.crt -noout -text
openssl ca -status 99 查看指定编号的证书状态
也可以传到windows上查看,看到更清楚,sz发到windows上
六、吊销证书
1、在客户端(A端)获取要吊销的证书的serial(编号)
openssl x509 -in / PATH/FROM/CERT_FILE -noout -serial -subject
2、在CA(B端) 上,根据客户提交的serial 与subject 信息,对比检验是否与index.txt 文件中的信息一致,确认就吊销证书:
openssl ca -revoke newcerts/99.pem
3、指定第一个吊销证书的编号
注意:第一次更新证书吊销列表前,才需要执行
echo 01 > /etc/pki/CA/crlnumber
4、更新证书吊销列表,将来将吊销的列表放到互联网上,让大家知道
openssl ca -gencrl -out /etc/pki/CA/crl/crl.pem
5、查看crl 吊销文件:
openssl crl -in /etc/pki/CA/crl/crl.pem -noout -text
也可以在windows上查看,sz发到windows上,后缀改为.crl
好了,有关CA证书的东西就这些了。
CA认证和颁发吊销证书的更多相关文章
- [转帖] Linux 创建一个简单的私有CA、发证、吊销证书
原创帖子地址: https://blog.csdn.net/mr_rsq/article/details/71001810 Linux 创建一个简单的私有CA.发证.吊销证书 2017年04月30 ...
- 关于使用由CA机构(EJBCA)颁发的证书实现SLLSocket双向认证服务端报null cert chain的解决方案
在 SSLSocket实现服务端和客户端双向认证的例子 文章中最后提到使用keytool.exe的自签证书实现双向认证可以,但是使用ejbca生成证书实现SLL Socket的双向认证是服务端老是报错 ...
- [linux] centos搭建openvpn服务,脚本颁发/吊销证书 (转载+原创)
搭建过程转载:http://yestreenstars.blog.51cto.com/1836303/1429537 环境说明:服务端:CentOS 6.5_X64客户端:Windows 7 服务端配 ...
- 十二张图:从0开始理解对称/非对称加密、CA认证、以及K8S各组件颁发证书原由
目录 一.对称加密 二.对称加密-不安全 三.非对称加密 四.非对称加密-不安全 五.对称加密和非对称加密结合 六.对称加密和非对称加密结合-不安全 七.Https的做法-引入CA机构 八.乘胜追击理 ...
- 基于OpenSSL自建CA和颁发SSL证书
关于SSL/TLS介绍见文章 SSL/TLS原理详解.关于证书授权中心CA以及数字证书等概念,请移步 OpenSSL 与 SSL 数字证书概念贴 . openssl是一个开源程序的套件.这个套件有三个 ...
- 探究公钥、私钥、对称加密、非对称加密、hash加密、数字签名、数字证书、CA认证、https它们究竟是什么,它们分别解决了通信过程的哪些问题。
一.准备 1. 角色:小白.美美.小黑. 2. 剧情:小白和美美在谈恋爱:小黑对美美求而不得.心生怨念,所以从中作梗. 3. 需求:小白要与美美需通过网络进行通信,联络感情,所以必须保证通信的安全性. ...
- 使用openssl搭建CA并颁发服务器证书
本来整理了一份执行脚本,但是没有找到附件功能.只好直接贴当时自己看过的链接了. 文章标题:Openssl Certificate Authority 转载链接:https://jamielinux.c ...
- RTX5的汽车级,工业级,医疗和铁路安全认证已经通过,证书已颁发
说明: 1.当前RTX5的教程已经在制作中,使用CMSIS-RTOS V2封装层,含FreeRTOS,配套V7,V6和V5板子. 2.我们各种开发板和模块的资料汇总贴,搞了个cnblogs,临时先用 ...
- CA认证原理以及实现(下)
在上述的文章后了解到原理之后,我们这篇文章来进行CA的搭建. OPEN SSL 环境搭建在基础原理中我们提到了两种认证服务,单项认证服务和双向认证服务,我们就以双向认证服务举例说明.OpenSSL是一 ...
随机推荐
- 极化码的matlab仿真(1)——参数设置
根据老师的安排,对于极化码的了解从仿真开始. 仿真的手段有很多种.可以利用C,C++,matlab等进行仿真的实现.其中matlab由于具有强大的函数库,和壮观的矩阵运算能力,被(我们老师课题组)看中 ...
- RESTful学习记录
1.1 什么是RESTful RESTful架构,就是目前最流行的一种互联网软件架构.它结构清晰.符合标准.易于理解.扩展方便,所以正得到越来越多网站的采用. RESTful(即Representat ...
- spring cloud认识
Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全局锁.决策竞选.分布式会话和集群状 ...
- 持续交付Jenkins使用
简介 Jenkins是一个独立的开源自动化服务器,可用于自动化各种任务,如构建,测试和部署软件.Jenkins可以通过本机系统包Docker安装,甚至可以通过安装Java Runtime Enviro ...
- 初入PHP,(for循环~水仙花数)
找出100-999之间的所有"水仙花数".所谓水仙花数是指一个三位 数,各位数字的立方和等于该数本身.(如153次方=1的3次方+5的3次方+3的3次方)并输出这些数字 想想153 ...
- js正则知识点
正则主要是用来匹配有规律的字符串,也就是说你要写一个正则前你必须非常清楚该类型字符串的规则,(比如邮箱)如果你没了解邮箱的规则那么你正则无论怎么写都是错的. \w字符(字母数字下划线)\W非字符\s空 ...
- 【Java线程】Java内存模型总结
学习资料:http://www.infoq.com/cn/articles/Java-memory-model-1 Java的并发采用的是共享内存模型(而非消息传递模型),线程之间共享程序的公共状态, ...
- MySQL (三)-- 字段属性、索引、关系、范式、逆规范化
1 字段属性 主键.唯一键和自增长. 1.1 主键 主键:primary key,一张表中只能有一个字段可以使用对应的键,用来唯一的约束该字段里面的数据,不能重复. 一张表只能有最多一个主键. 1.1 ...
- Socket通信中AF_INET 和 AF_UNIX域的区别
转载:http://blog.csdn.net/sandware/article/details/40923491 1. AF_INET域socket通信过程 典型的TCP/IP四层模型的通信过程. ...
- unity3D HTC VIVE开发-物体高亮功能实现
在VR开发时,有时需要用到物体高亮的功能.这里使用Highlighting System v3.0.1.unitypackage插件实现. Highlighting System v3.0.1的介绍访 ...