原创帖子地址:
 
https://blog.csdn.net/mr_rsq/article/details/71001810

Linux 创建一个简单的私有CA、发证、吊销证书

2017年04月30日 11:33:26

阅读数:2708

操作环境: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

版权声明:本文为博主原创文章,转载请指明地址。 https://blog.csdn.net/Mr_rsq/article/details/71001810

[转帖] Linux 创建一个简单的私有CA、发证、吊销证书的更多相关文章

  1. 如何创建一个简单的C++同步锁框架(译)

    翻译自codeproject上面的一篇文章,题目是:如何创建一个简单的c++同步锁框架 目录 介绍 背景 临界区 & 互斥 & 信号 临界区 互斥 信号 更多信息 建立锁框架的目的 B ...

  2. Linux下一个简单的日志系统的设计及其C代码实现

    1.概述 在大型软件系统中,为了监测软件运行状况及排查软件故障,一般都会要求软件程序在运行的过程中产生日志文件.在日志文件中存放程序流程中的一些重要信息, 包括:变量名称及其值.消息结构定义.函数返回 ...

  3. 如何创建一个简单 APT 仓库

    0. 无废话版本 需求: 有一堆 .deb 包,想把它们做成一个 APT 仓库,这样就可以用apk install pkgname进行安装了,这样一方面自己可以规避 dpkg -i xxx.deb 时 ...

  4. 通过创建一个简单的骰子游戏来探究 Python

    在我的这系列的第一篇文章 中, 我已经讲解如何使用 Python 创建一个简单的.基于文本的骰子游戏.这次,我将展示如何使用 Python 模块 Pygame 来创建一个图形化游戏.它将需要几篇文章才 ...

  5. 如何创建一个简单的Visual Studio Code扩展

    注:本文提到的代码示例下载地址>How to create a simple extension for VS Code VS Code 是微软推出的一款轻量级的代码编辑器,免费,开源,支持多种 ...

  6. 《Entity Framework 6 Recipes》翻译系列 (3) -----第二章 实体数据建模基础之创建一个简单的模型

    第二章 实体数据建模基础 很有可能,你才开始探索实体框架,你可能会问“我们怎么开始?”,如果你真是这样的话,那么本章就是一个很好的开始.如果不是,你已经建模,并在实体分裂和继承方面感觉良好,那么你可以 ...

  7. Windows 8.1 应用再出发 (WinJS) - 创建一个简单项目

    前面几篇我们介绍了如何利用 C# + XAML 完成Windows Store App 功能的实现,接下来的几篇我们来看看如何利用 Html + WinJS 来完成这些功能. 本篇我们使用WinJS ...

  8. ADF_General JSF系列1_创建一个简单的JSF Application

    2015-02-17 Creatd By BaoXinjian

  9. IntelliJ IDEA 15 部署Tomcat及创建一个简单的Web工程

    一.部署Tomcat 二.创建一个简单的Web工程 2.1创建一个新工程 创建一个新工程 设置JDK及选择Web Application (创建的是Web工程) 点击Next,选择工作空间,起个工程名 ...

随机推荐

  1. scrapy的request的meta参数是什么意思?

    作者:乌尔班链接:https://www.zhihu.com/question/54773510/answer/146971644来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  2. JVM内存管理及GC机制

    一.概述 Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露 ...

  3. python json格式字符串转换为字典格式

    不废话,看代码 #_*_ coding:utf- _*_ import os import json course=open('C:\\Users\\ly199\\Desktop\\list.txt' ...

  4. (一)RESTful 介绍

    什么是RESTful REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移”或“表现层状态转化”. R ...

  5. TensorFlow入门

    Win10下pycharm安装tensorflow: 1.安装git,这样就会有windows powerShell 2.安装python3.x,配置环境变量 3.安装pip,下载地址是:https: ...

  6. RTSP server 在mips 上莫名其妙退出(PC上则无此问题)

    http://blog.csdn.net/lubing20044793/article/details/38523701 早在这篇blog以前写过,在虚拟机下调试sn9c291时,USB 数据传输出了 ...

  7. 文理分科 BZOJ3894 & happiness BZOJ2127

    分析: 最小割(一开始我没看出来...后来经过提点,大致理解...),不选则割的思想. 我们先这样考虑,将和选理相关的和S相连,与选文相关的和T相连,如果没有第二问,那么建图就是简单的S连cnt,cn ...

  8. excel的宏与VBA入门(一)——基础概念

    一.概述 "记录宏"其实就是将工作的一系列操作结果录制下来,并命名存储(相当于VB中一个子程序). 宏其实就是VBA写的,但是可以通过录制的方法制作宏,做好的宏你可以查看相应的VB ...

  9. 【SQL】MaxComputer常用SQL与注意小结

    MaxComputer常用SQL 1.建表 CREATE TABLE dwd_tfc_ctl_signal_phasedir ( cust_inter_id STRING COMMENT '客户路口I ...

  10. kettle学习笔记(一)——入门与安装

    一.概述 1.kettle是什么 Kettle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行,绿色无需安装,数据抽取高效稳定.中文名称叫水壶,该项目的主程序 ...