摘要:涉及到网络安全这一块,想必大家都听过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认证和颁发吊销证书的更多相关文章

  1. [转帖] Linux 创建一个简单的私有CA、发证、吊销证书

    原创帖子地址:   https://blog.csdn.net/mr_rsq/article/details/71001810 Linux 创建一个简单的私有CA.发证.吊销证书 2017年04月30 ...

  2. 关于使用由CA机构(EJBCA)颁发的证书实现SLLSocket双向认证服务端报null cert chain的解决方案

    在 SSLSocket实现服务端和客户端双向认证的例子 文章中最后提到使用keytool.exe的自签证书实现双向认证可以,但是使用ejbca生成证书实现SLL Socket的双向认证是服务端老是报错 ...

  3. [linux] centos搭建openvpn服务,脚本颁发/吊销证书 (转载+原创)

    搭建过程转载:http://yestreenstars.blog.51cto.com/1836303/1429537 环境说明:服务端:CentOS 6.5_X64客户端:Windows 7 服务端配 ...

  4. 十二张图:从0开始理解对称/非对称加密、CA认证、以及K8S各组件颁发证书原由

    目录 一.对称加密 二.对称加密-不安全 三.非对称加密 四.非对称加密-不安全 五.对称加密和非对称加密结合 六.对称加密和非对称加密结合-不安全 七.Https的做法-引入CA机构 八.乘胜追击理 ...

  5. 基于OpenSSL自建CA和颁发SSL证书

    关于SSL/TLS介绍见文章 SSL/TLS原理详解.关于证书授权中心CA以及数字证书等概念,请移步 OpenSSL 与 SSL 数字证书概念贴 . openssl是一个开源程序的套件.这个套件有三个 ...

  6. 探究公钥、私钥、对称加密、非对称加密、hash加密、数字签名、数字证书、CA认证、https它们究竟是什么,它们分别解决了通信过程的哪些问题。

    一.准备 1. 角色:小白.美美.小黑. 2. 剧情:小白和美美在谈恋爱:小黑对美美求而不得.心生怨念,所以从中作梗. 3. 需求:小白要与美美需通过网络进行通信,联络感情,所以必须保证通信的安全性. ...

  7. 使用openssl搭建CA并颁发服务器证书

    本来整理了一份执行脚本,但是没有找到附件功能.只好直接贴当时自己看过的链接了. 文章标题:Openssl Certificate Authority 转载链接:https://jamielinux.c ...

  8. RTX5的汽车级,工业级,医疗和铁路安全认证已经通过,证书已颁发

    说明: 1.当前RTX5的教程已经在制作中,使用CMSIS-RTOS V2封装层,含FreeRTOS,配套V7,V6和V5板子​. 2.我们各种开发板和模块的资料汇总贴,搞了个cnblogs,临时先用 ...

  9. CA认证原理以及实现(下)

    在上述的文章后了解到原理之后,我们这篇文章来进行CA的搭建. OPEN SSL 环境搭建在基础原理中我们提到了两种认证服务,单项认证服务和双向认证服务,我们就以双向认证服务举例说明.OpenSSL是一 ...

随机推荐

  1. 一个页面多个iframe赋值

    先在页面上设置一个元素: <input type="hidden" id="content" value={$content}> 使用前端技术获取父 ...

  2. kali系统:局域网arp欺骗, 搞定任意windows计算机

    目的 通过Arp欺骗, 给局域网内的所有用户网页中植入木马, 只要用户运行以后, 就会反弹一个shell到我们计算机 准备 kali系统 metaspolit的使用 Arp欺骗工具:bettercap ...

  3. 流畅python学习笔记:第十九章:动态属性和特性

    首先来看一个json文件的读取.书中给出了一个json样例.该json文件有700多K,数据量充足,适合本章的例子.文件的具体内容可以在http://www.oreilly.com/pub/sc/os ...

  4. Java开发相关命名规范

    JAVA文件命名规范 1.类命名 抽象类以 Abstract 或者 Base 开头.异常类以 Exception 作为后缀.枚举类以 Enum 作为后缀.工具类以 Utils 作为后缀(相应的包名最后 ...

  5. [js高手之路]设计模式系列课程-委托模式实战微博发布功能

    在实际开发中,经常需要为Dom元素绑定事件,如果页面上有4个li元素,点击对应的li,弹出对应的li内容,怎么做呢?是不是很简单? 大多数人的做法都是:获取元素,绑定事件 <ul> < ...

  6. jmeter 实现登录一次,多次操作登录后的某一个功能

  7. PHP常量定义define与const

    一.const PHP5.3以前,const只能在类内部声明变量,5.3+允许在外部声明变量,但还不能使用常量计算! const ONE = 1; const WORD = 'hello world' ...

  8. jQuery EasyUI弹出确认对话框(确认操作中.....)

    因为毕业设计的原因,在初期设计系统的时候没有考虑功能的正确性,所以很多的功能都没有加验证和确认的操作,给人在操作方面上有一些不好的感觉(可能失误点击后,数据就别删除,或者增加了),所以在网上找了一些资 ...

  9. 弹性布局flex

    前几天写过怪异盒子布局,以前在项目中用到弹性布局flex这个属性,当时没深入研究,这里各种查阅各种测试,把这个属性记录下 以免忘记, 弹性布局:是提供一种更加有效的方式来对一个容器中的条目进行排列.对 ...

  10. Java 定时器 Timer 的使用.

    一.概念       定时计划任务功能在Java中主要使用的就是Timer对象,它在内部使用多线程的方式进行处理,所以它和多线程技术还是有非常大的关联的.在JDK中Timer类主要负责计划任务的功能, ...