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

 更新时间:2026年04月16日 08:57:02   作者:RSQ博客  
本文介绍了在CentOS6和RHEL6环境下使用OpenSSL创建私有CA、证书发放及吊销证书的操作流程,包括自签CA证书、客户机生成证书请求发送给CA、CA签发证书发还给客户机、及吊销证书等四个主要步骤

Linux创建私有CA、发证、吊销证书

  • 操作环境:Centos 6、RHEL 6
  • 操作虚拟机:VMware

本实验基于OpenSSL实现,SSLSecure 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中对存储设备进行分区和格式化的操作步骤

    在Linux中对存储设备进行分区和格式化的操作步骤

    在 Linux 系统上准备新磁盘以供使用是一个简单的过程,虽然有许多工具、文件系统格式和分区方案可能会因为特殊需求而改变这个过程,但基本原理仍然是一样的,文中给大家详细介绍了在Linux中对存储设备进行分区和格式化的操作步骤,需要的朋友可以参考下
    2024-10-10
  • Linux系统网卡设置教程

    Linux系统网卡设置教程

    这篇文章主要介绍了Linux系统网卡的设置教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • linux两台服务器实现自动同步文件

    linux两台服务器实现自动同步文件

    这篇文章主要介绍了linux两台服务器实现自动同步文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • Ubuntu添加swap分区的方法

    Ubuntu添加swap分区的方法

    这篇文章主要介绍了Ubuntu添加swap分区的方法,提高服务器响应速度和防止应用程序内存不足错误的最简单方法之一是添加一些交换空间,非常具有实用价值,需要的朋友可以参考下
    2018-05-05
  • Linux中DNS域名解析服务详解

    Linux中DNS域名解析服务详解

    本文系统讲解DNS原理与配置,涵盖域名解析机制、正向/反向区域划分、缓存/主从服务器类型,以及hosts文件解析优先级设置,指导如何搭建和管理DNS服务
    2025-10-10
  • Ubuntu修改密码及密码复杂度策略设置方法

    Ubuntu修改密码及密码复杂度策略设置方法

    这篇文章主要介绍了Ubuntu修改密码及密码复杂度策略设置,方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • CentOS7更改默认SSH端口与配置指南

    CentOS7更改默认SSH端口与配置指南

    SSH是 Linux 服务器远程管理的核心工具,其默认监听端口为 22,由于端口 22 众所周知,这也使得服务器容易受到自动化扫描和暴力 破解攻击,本文将系统性地介绍如何在 CentOS 7 系统中安全地更改 SSH 端口,解决 SELinux 和防火墙相关配置,需要的朋友可以参考下
    2025-04-04
  • 你可能不知道的一些linux文件权限管理方法

    你可能不知道的一些linux文件权限管理方法

    这篇文章主要给大家介绍了一些你可能不知道的linux文件权限管理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • LNMP自动安装部署脚本

    LNMP自动安装部署脚本

    LNMP是一个基于CentOS/Debian编写的Nginx、PHP、MySQL、phpMyAdmin、eAccelerator一键安装包,这篇文章主要为大家分享了LNMP自动安装部署脚本
    2016-10-10
  • Linux更改国内镜像源的操作方法

    Linux更改国内镜像源的操作方法

    在中国大陆使用 Linux 系统时,由于网络限制,连接官方软件包镜像源速度较慢,更换软件源(Repository)是提升软件安装速度和稳定性的重要操作,以下是主流发行版的换源方法,需要的朋友可以参考下
    2025-09-09

最新评论