Linux 创建一个简单的私有CA、发证、吊销证书
操作环境:Centos 6、RHEL 6
操作虚拟机:VMware
本实验基于OpenSSL实现,SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。
实验方法:
- 以Centos 6系统作为CA机构,实行签发证书等操作
- 以RHEL 6系统作为申请证书客户机
操作流程:
- 让Centos 6自签证书成为CA发证机构
- 让RHEL 6客户机生成证书申请请求并发送到CA
- 由CA检查此申请是否正规,然后签署证书并送回请求者
- 吊销证书
OpenSSL配置文件:/etc/pki/tls/openssl.conf
实验步骤:
1、首先要确保/etc/pki/CA下有certs、crl、newcerts、private四个目录,然后再创建所需要的文件
2、Centos 6若想成为CA,它自己也得有证书,所以CA自签证书
(1)先生成一个秘钥对,保存在指定目录下,文件名为cakey.pem(必须是这个名字,因为是配置文件中定义的)
(umask 077; openssl genrsa -out private/cakey.pem 2048)
(2)生成证书请求,并自签
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 7300 -out /etc/pki/CA/cacert.pem
-new:生成新证书签署请求
-x509:专用于CA生成自签证书
-key:生成请求时用到的私钥文件
-days n:证书的有效期限
-out /PATH/TO/SOMECERTFILE:证书的保存路径要输入国家名、省份名、地区(市)名、组织或公司名、部门名、服务器名、Email地址
3、客户机向CA申请认证,CA发证
(1)RHEL 客户机将用到的证书生成证书请求
假设客户机要进行https的SSL服务,他就应该有自己的私钥和证书
创建一个ssl目录,是用来存放私钥的,由于是私有CA,所以帮客户机去签CA的机构和客户机应该在同一个地区、机构。
(2)客户机把请求文件传输给CA
- 上面已经生成了httpd.csr私钥,把文件发送给CA
(3)CA检查无误后签署证书,并将证书发还给客户机
检查证书
可以看到客户机上的文件已经上传到Centos服务器的/tmp临时文件目录中了,由于是自己做的实验,所以就不检查了,直接签署证书了。**
给签365天的证书,然后会显示出来一系列信息让检查一下,最后问信息是否正确:y;然后会提示有一个证书要签署,是否签证:y
可以看一下
/etc/pki/CA/
目录下的index.txt文件,会发现有一个证书已经签署成功了。
刚生成的证书可以在/etc/pki/CA/newcerts/目录下查看到
查看一下文件中的信息:
PS: 本来在签署证书的时候应该把签署过的证书放在/etc/pki/CA/certs/
目录下,然后把这个文件名改为这个证书所属机构的名字,以便以后查找使用,在这里说一下。但是本实验中没有这样做!然后把证书发还给客户机
4、吊销证书(不太重要,所以就不详细写了)
(1)客户端获取要吊销的证书的serial
openssl x509 -in /PATH/FROM/CERT_FILE -noout -serial -subject
(2)CA
先根据客户提交的serial与subject信息,对比检验是否与index.txt文件中的信息一致;
吊销证书:
openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem
(3)生成吊销证书的编号(第一次吊销一个证书)
echo 01 > /etc/pki/CA/crlnumber
(4)更新证书吊销列表
openssl ca -gencrl -out thisca.crl
查看crl文件:
openssl crl -in /PATH/FROM/CRL_FILE.crl -noout -text
Linux 创建一个简单的私有CA、发证、吊销证书相关推荐
- Linux Namespace系列(09):利用Namespace创建一个简单可用的容器
本文将演示如何利用namespace创建一个完整的容器,并在里面运行busybox.如果对namespace不是很熟悉,请先参考前面几遍介绍不同类型namespace的文章. busybox是一个Li ...
- 自建ca根证书_如何创建私有 CA 并签发证书
为什么需要自己的 CA? 因为公共 CA (比如排名前几的这几家:Comodo, Symantec, GlobalSign, DigiCert, StartCom)颁发证书要收费,而且价格很贵.当然现 ...
- linux搭建ca服务器搭建,linux下安装EJBCA 搭建私有CA服务器
linux下安装EJBCA 搭建私有CA服务器 EJBCA是一个全功能的JAVA的CA系统软件,我们可以用此搭建私有CA服务器: 一:首先我的测试环境: 1. linux mint18.3 62位: ...
- https证书互信解决方案—创建私有CA并申请证书
前言 https相较于http而言有很大的安全性,当我们一个服务开启https并与之通信时,往往需要证书的认证,如果是浏览器访问服务,只要在浏览器内设置信任证书即可,而如果是程序内访问服务(如java ...
- 如何创建一个简单 APT 仓库
0. 无废话版本 需求: 有一堆 .deb 包,想把它们做成一个 APT 仓库,这样就可以用apk install pkgname进行安装了,这样一方面自己可以规避 dpkg -i xxx.deb 时 ...
- 练习1:创建一个简单的银行程序包
练习目标-Java 语言中面向对象的封装性及构造器的使用. 任务 在这个练习里,创建一个简单版本的(账户类)Account类.将这个源文件放入banking程序包中.在创建单个帐户的默认程序包中,已编 ...
- C#游戏编程之创建一个简单的卷轴射击游戏
前几天很多朋友要求贴一篇有关C#游戏开发的实例.本篇文章是创建一个简单的卷轴射击游戏开发实例,内容比较完整,分享给大家,不过篇幅有些长,可以慢慢看哈!本文除CSDN博客外,任何媒体和出版物禁止转载和使 ...
- 如何创建一个简单网页
我们已经基本熟悉了HTML的格式,现在我们来尝试一下创建一个简单的网页. 1.创建一个.html格式的文件 选择一个文本编辑软件,我这里用的是Notepad++.在工具栏选择"languag ...
- python做的简单gui计算器_Python计算器–使用Tkinter创建一个简单的GUI计算器
在Python计算器教程中,您将学习创建简单的GUI计算器.在这篇文章中,我将向您展示如何使用python中的tkinter模块开发一个简单的计算器.因此,让我们进一步创建一个简单的python计算器 ...
最新文章
- Linux学习(六)---实用指令(只看这篇就能完成基础的学习)
- 人工智能最受欢迎的十大TED演讲
- Python:数字的格式化输出
- Java多线程:乐观锁、悲观锁、自旋锁
- Android: 创建一个AlertDialog对话框,必须按确定或取消按钮才能关闭对话框,禁止按[返回键]或[搜索键]关闭
- android模拟器无法拍照,为什么dafault相机无法在android模拟器中工作?
- [转] 关于 WCF 中数据压缩的几篇文章
- 201671010144 2016-2017 《java程序设计》--对象与类!
- ssms没有弹出服务器验证_使用SSMS扫描和查找SQL Server数据库的潜在安全漏洞
- 数据类别不平衡/长尾分布?不妨利用半监督或自监督学习
- 老男孩LINUX50期_陈桂林决心书
- BeX5安装遇到问题
- PowerPoint 中缺少think-cell 加载项怎么解决?
- 率辉考研oj——1323: 算法2-1:集合union
- linux命令弹出移动硬盘,usb设备(移动硬盘或U盘),弹出时提示“有进程或程序占用,无法弹出”。解决办法...
- java 时间英文格式_Java英文日期格式解析
- 手动开启/关闭macOS HiDPI,让2k显示器完美适配macOS,解决紫屏问题
- mysql实验总结_数据库实验的心得体会.docx
- uni-app卡片式轮播
- C语言,实现通讯录功能