[转帖] Linux 创建一个简单的私有CA、发证、吊销证书
Linux 创建一个简单的私有CA、发证、吊销证书
操作环境:Centos 6、RHEL 6
操作虚拟机:VMware
本实验基于OpenSSL实现,SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。
实验流程:
1、以Centos 6系统作为CA机构,实行签发证书等操作
2、以RHEL 6系统作为申请证书客户机
操作步骤:
1、让Centos 6自签证书成为CA发证机构
2、让RHEL 6客户机生成证书申请请求并发送到CA
3、由CA检查此申请是否正规,然后签署证书并送回请求者
4、吊销证书
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 客户机将用到的证书生成证书请求
a、假设客户机要进行https的SSL服务,他就应该有自己的私钥和证书
b、创建一个ssl目录,是用来存放私钥的,由于是私有CA,所以帮客户机去签CA的机构和客户机应该在同一个地区、机构。
(2)、客户机把请求文件传输给CA
上面已经生成了httpd.csr私钥,把文件发送给CA
PS:对scp命令不熟悉的朋友可以看我随后发的OpenSSH博客!
(3)、CA检查无误后签署证书,并将证书发还给客户机
a、可以看到客户机上的文件已经上传到Centos服务器的/tmp临时文件目录中了,由于是自己做的实验,所以就不检查了,直接签署证书了。
b、给签365天的证书,然后会显示出来一系列信息让检查一下,最后问信息是否正确:y;然后会提示有一个证书要签署,是否签证:y
c、可以看一下/etc/pki/CA/目录下的index.txt 文件,会发现有一个证书已经签署成功了。
d、刚生成的证书可以在/etc/pki/CA/newcerts/目录下查看到
e、查看一下文件中的信息:
PS:本来在签署证书的时候应该把签署过的证书放在/etc/pki/CA/certs/目录下,然后把这个文件名改为这个证书所属机构的名字,以便以后查找使用,在这里说一下。但是本实验中没有这样做!
f、然后把证书发还给客户机
4、吊销证书(不太重要,所以就不详细写了)
a、 客户端获取要吊销的证书的serial
# openssl x509 -in /PATH/FROM/CERT_FILE -noout -serial -subject
b、 CA
先根据客户提交的serial与subject信息,对比检验是否与index.txt文件中的信息一致;
吊销证书:
# openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem
c、 生成吊销证书的编号(第一次吊销一个证书)
# echo 01 > /etc/pki/CA/crlnumber
d、 更新证书吊销列表
# openssl ca -gencrl -out thisca.crl
查看crl文件:
# openssl crl -in /PATH/FROM/CRL_FILE.crl -noout -text
[转帖] Linux 创建一个简单的私有CA、发证、吊销证书的更多相关文章
- 如何创建一个简单的C++同步锁框架(译)
翻译自codeproject上面的一篇文章,题目是:如何创建一个简单的c++同步锁框架 目录 介绍 背景 临界区 & 互斥 & 信号 临界区 互斥 信号 更多信息 建立锁框架的目的 B ...
- Linux下一个简单的日志系统的设计及其C代码实现
1.概述 在大型软件系统中,为了监测软件运行状况及排查软件故障,一般都会要求软件程序在运行的过程中产生日志文件.在日志文件中存放程序流程中的一些重要信息, 包括:变量名称及其值.消息结构定义.函数返回 ...
- 如何创建一个简单 APT 仓库
0. 无废话版本 需求: 有一堆 .deb 包,想把它们做成一个 APT 仓库,这样就可以用apk install pkgname进行安装了,这样一方面自己可以规避 dpkg -i xxx.deb 时 ...
- 通过创建一个简单的骰子游戏来探究 Python
在我的这系列的第一篇文章 中, 我已经讲解如何使用 Python 创建一个简单的.基于文本的骰子游戏.这次,我将展示如何使用 Python 模块 Pygame 来创建一个图形化游戏.它将需要几篇文章才 ...
- 如何创建一个简单的Visual Studio Code扩展
注:本文提到的代码示例下载地址>How to create a simple extension for VS Code VS Code 是微软推出的一款轻量级的代码编辑器,免费,开源,支持多种 ...
- 《Entity Framework 6 Recipes》翻译系列 (3) -----第二章 实体数据建模基础之创建一个简单的模型
第二章 实体数据建模基础 很有可能,你才开始探索实体框架,你可能会问“我们怎么开始?”,如果你真是这样的话,那么本章就是一个很好的开始.如果不是,你已经建模,并在实体分裂和继承方面感觉良好,那么你可以 ...
- Windows 8.1 应用再出发 (WinJS) - 创建一个简单项目
前面几篇我们介绍了如何利用 C# + XAML 完成Windows Store App 功能的实现,接下来的几篇我们来看看如何利用 Html + WinJS 来完成这些功能. 本篇我们使用WinJS ...
- ADF_General JSF系列1_创建一个简单的JSF Application
2015-02-17 Creatd By BaoXinjian
- IntelliJ IDEA 15 部署Tomcat及创建一个简单的Web工程
一.部署Tomcat 二.创建一个简单的Web工程 2.1创建一个新工程 创建一个新工程 设置JDK及选择Web Application (创建的是Web工程) 点击Next,选择工作空间,起个工程名 ...
随机推荐
- 利用jenkins打造通过自定义参数更新svn 指定文件任务
jenkin可以执行很多构建任务,有时候我们需要在执行构成中同构shell对服务器进行操作而且还需要进行参数的传入 比如:我要利用svn进行本地代码的更新,单又不是所有代码的更新,只更新指定的1个或这 ...
- Python3.6使用Pyqt5编写GUI程序
Python3.6使用Pyqt5编写HTTP测试工具 程序非常简单,使用PYQT5搭建好UI,然后用PyUIC生成Python文件,Mac中使用Pycharm+Python3.6+Pyqt5搭建教程在 ...
- P3195 [HNOI2008]玩具装箱TOY
列出DP方程式:设f[i]表示分组完前i件物品的最小花费,为方便计算,设sum[i]表示是前i件物品的长度和. f[i]=min(f[j]+(sum[i]-sum[j]+i-j-L-1)^2) [0& ...
- 转自《https安全链接的配置教程:startSSl免费证书申请与nginx的https支持配置》
一.什么是 SSL 证书,什么是 HTTPS 网站? SSL证书是数字证书的一种,类似于驾驶证.护照和营业执照的电子副本.SSL证书通过在客户端浏览器和Web服务器之间建立一条SSL安全通道(Secu ...
- 福慧双修&探险 BZOJ4398&BZOJ2407
分析: 双倍经验(数据范围不同). 我们考虑,我们必定是从1走一条边到节点i,之后从i到j跑最短路,之后再从j到1走另一条边的情况下,不会重复,并且是答案.那么我们考虑预处理出pre[i]表示从1走到 ...
- 2017-2018 Exp7 网络欺诈技术防范 20155214
目录 Exp7 网络欺诈技术防范 实验内容 信息收集 知识点 Exp7 网络欺诈技术防范 实验内容 实验环境 主机 Kali 靶机 Windows 10 实验工具 平台 Metaploit 信息收集 ...
- 20155232《网络对抗》Exp7 网络欺诈防范
20155232<网络对抗>Exp7 网络欺诈防范 一.实践内容 本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法.具体实践有 (1)简单应用SET工具建立冒名网 ...
- sudo apt-get update 去除设置的代理
今天想装个软件(wine),使用 sudo apt-get update 命令时,发现给出很多Ign 语句,总出现 Connecting to proxy.http://10.0.126.1:1312 ...
- Linux Socket 编程简介
在 TCP/IP 协议中,"IP地址 + TCP或UDP端口号" 可以唯一标识网络通讯中的一个进程,"IP地址+端口号" 就称为 socket.本文以一个简单的 ...
- Loadrunner 面试常见问题
三大组件: 脚本生成器,录制和调试脚本 . 控制台,设置运行和资源场景 结果分析器,将测试结果数据以不同的图表呈现,便于性能分析 工作原理: 录制:根据不同协议,记录下客户端和服务器二者之间的对话,生 ...