构建私有CA

我们采用openssl这个软件来实现

所以首先我们来看下该软件的配置文件

实现环境 centos 7.2

[[email protected] ~]# rpm -qc openssl  //可以看到该命令没有任何输出,我们可以思考该软件包还存在其他的支包
[[email protected] ~]# rpm -qa | grep "openssl"  //果然我们可以看到存在 libs 支包
openssl-libs-1.0.1e-42.el7.9.x86_64
openssl-1.0.1e-42.el7.9.x86_64
[[email protected] ~]# rpm -qc openssl-libs
/etc/pki/tls/openssl.cnf   //终于找到配置文件了

查看该配置文件

[[email protected] ~]# cat /etc/pki/tls/openssl.cnf

//我们主要关注 [ ca ] 段落

(1)自建CA;需要私钥 //私钥必须在特定的目录下,且必须命名为cakey.pem 配置文件定义的

[[email protected] ~]# (umask 077 ; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)
(在子shell中执行该命令 umask 077不影响当前shell的umask)
Generating RSA private key, 2048 bit long modulus
....................+++
..................+++
e is 65537 (0x10001)
[[email protected] ~]# ll /etc/pki/CA/private/cakey.pem  //生成的私钥文件
-rw-------. 1 root root 1675 Sep 11 16:57 /etc/pki/CA/private/cakey.pem

(2)生成自签证书 //特定目录下的特定文件名 配置文件已经定义的 

[[email protected] ~]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 365 
//输出省略

[[email protected] ~]# ll /etc/pki/CA/cacert.pem  //我们的CA证书
-rw-r--r--. 1 root root 1302 Sep 11 17:08 /etc/pki/CA/cacert.pem

(3)为CA提供所需要的目录及文件 //存在则可以忽略

[[email protected] ~]# mkdir /etc/pki/CA/{certs,crl,newcerts}
[[email protected] ~]# touch /etc/pki/CA/{serial,index.txt}
[[email protected] ~]# echo 01 > /etc/pki/CA/serial
[[email protected] ~]# tree /etc/pki/CA
/etc/pki/CA
├── cacert.pem
├── certs
├── crl
├── index.txt
├── newcerts
├── private
│   └── cakey.pem
└── serial
4 directories, 4 files

至此:我们的CA服务器已经配置完成

假设某服务器要用到证书进行安全通信,需要向CA请求签署证书 (此时我们换台centos 6.8 的主机)

我们以httpd服务为例

确保安装有httpd服务

[[email protected] ~]# mkdir /etc/httpd/ssl

(1)生成私钥

[[email protected] ~]# (umask 077 ; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)
Generating RSA private key, 2048 bit long modulus
...........................................................................+++
.............................................................+++
e is 65537 (0x10001)
[[email protected] ~]# ll /etc/httpd/ssl/httpd.key 
-rw-------. 1 root root 1679 Sep  7 02:55 /etc/httpd/ssl/httpd.key


(2)生成证书签署请求

[[email protected] ~]# openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr -days 365

此处要和图三信息一样 否则可能会签署失败 (由于是自建的私有CA)


(3)将请求通过可靠方式发送给CA主机

这里我们通过SCP命令来实现

[[email protected] ~]# scp /etc/httpd/ssl/httpd.csr  [email protected]:/tmp 
//将本地的httpd.csr文件复制一份到10.1.0.111主机的/tmp目录下

这里我们切换到CA服务器 即 centos 7 上

在CA主机上签署证书

[[email protected] ~]# openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365

httpd.crt 即为 centos6 上的 httpd 的证书

查看证书中的信息:

[[email protected] ~]# openssl x509 -in /etc/pki/CA/certs/httpd.crt -noout -serial -subject
serial=01
subject= /C=CN/ST=Beijing/O=Sxj/OU=Si/CN=asher.com

同时数据块中也有相应的记录

[[email protected] ~]# cat /etc/pki/CA/index.txt
V   170911110034Z       01  unknown /C=CN/ST=Beijing/O=Sxj/OU=Si/CN=asher.com
时间: 2024-10-13 11:50:22

构建私有CA的相关文章

加密/解密&利用OpenSSL构建私有CA

在互联网安全及个人隐私状况日益严峻的今天,加密技术变得尤为重要并且不可或缺.在密码雪中,加密是指将明文信息隐匿起来,使之在缺少特殊信息时不可读.本文所讲的主要是在互联网传输数据时所用的加密方式.我们都知道OSI&TCP/IP网络参考模型,通常我们会把这两个模型分为通信子网和资源子网两部分,但是在构建网络的初期,信息从发送端送达到接受端都非常困难所以在设计模型之初并没有考虑过多的安全因素,以至于通信子网和资源子网都没有涉及到数据加密的内容.为了解决这个问题,网景公司在资源子网和通信子网之间添加了半

使用Openssl构建私有CA

使用Openssl构建私有CA Openssl是SSL的开源实现,是一种安全机密程序,主要用于提高远程登录访问的安全性.也是目前加密算法所使用的工具之一,功能很强大. Openssl为网络通信提供安全及数据完整性的一种安全协议,包括了主要的密码算法.常用的密钥和证书封装管理功能(CA)以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用,例如我们将会使用Openssl实现私有CA,并实现证书颁发. OpenSSL:SSL的开源实现 libcrypto:通用加密库,提供了各种加密函数 lib

加密解密基础及openssl构建私有CA初步

方今社会,互联网的普及给我们的生活带来了极大的便利,但任何事物都有其两面性:窗户打开了,阳光和新鲜的空气进来了,苍蝇也进来了.如何在利用互联网带来便利的同时,又尽量规避其风险,保护自己网络通信中信息的安全及私密,成为了一个热门话题,下面本文将主要探讨两个方面的问题,不当之处还请各位前辈不吝斧正. (一)加密解密基础 首先要搞清楚的一个问题是,我们平时的网络通信存在哪些风险呢?目前互联网上常见的攻击方式有两种:主动攻击和被动攻击.主动攻击包括报文伪装.重复.消息篡改.拒绝服务等:被动攻击主要是监听

ssh配置服务及如何构建私有CA

构建私有CA及SSH配置服务 在了解如何构建私有CA之前,先来熟悉基础概念:CA表示证书颁发机构.PKI表示公钥基础设施.RA证书的注册机构.CRL证书的吊销列表.构架CA时还会涉及到一些加密方式,这里来了解一些加密类型. 几种加密方式及其区别:单项加密:主要用于数据的提取特征值,验证通信内容的完整性.对称加密:成对密钥,且双方密钥相同.一般用于加密通信内容,效率高安全性不好.公钥加密:成对密钥,但是密钥存在公钥和私钥,效率低,安全性好. CA存在的作用和意义:是用来增加通信资源可靠性的证书颁发

openssl的加密、解密以及构建私有CA

SSL.TLS介绍: SSL:安全套接字(Secure Socket Layer,SSL)协议是Web浏览器与Web服务器之间安全交换信息的协议,提供两个基本的安全服务:鉴别与保密. TLS:安全传输层协议(Transport Layer Security)用于在两个通信应用程序之间提供保密性和数据完整性.该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake).较低的层为 TLS 记录协议,位于某个可靠的传输协议(例如 TCP)上面,与具体

使用Openssl 构建私有CA

环境准备:  一.准备两台测试机,CA服务器ip地址是192.168.10.103,证书申请者ip是192.168.10.120  二.确保Linux主机以安装openssl软件包,可以使用rpm查看  三.确保有openssl加密功能组件: openssl(多功能命令工具).libcrypto(公共加密库).libssl(SSL协议的实现) Openssl构建私有CA:  一. 构建私有CA:      1.生成私有秘钥 命令解释: # (umask 077; openssl   genrsa

利用OpenSSL构建私有CA

实验环境: CentOS release 6.6(Final)  两台 IP地址: 服务器端:172.16.31.3 客户端:172.16.31.2 查看系统书否已安装openSSL执行命令"rpm –qa openssl" [[email protected] ~]# rpm -qa openssl openssl-1.0.1e-30.el6.x86_64 OpenSSL本身是一种ssl的开源方式用以实现https的数据加密传输,但OpenSSL的功能绝不仅限于此,OpenSSL提供

实验:CentOS下构建私有CA

一.建立一CA颁发主机(机构)1.生成私钥:2.自签证书 [[email protected] ~]# (umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)Generating RSA private key, 4096 bit long modulus..............................++....++e is 65537 (0x10001) [[email protected] ~]# o

Linux基于OpenSSL实现私有CA构建

前言 随着互联网的迅猛发展,网络通信已经成为传递信息的主要途径.而通信时的数据传输大部分却是明文传输的,在网络这个不安全的环境下,如果没有一套数据加密机制,就会导致敏感信息和重要数据泄露,引起不可估量的损失.而OpenSSL正好弥补了这一缺憾,那什么是OpenSSL呢?OpenSSL是一套强大的具有加密功能的组件,它包含libcrypto(公共加密库).libssl(SSL协议的实现)和openssl(多功能命令工具),因其开源思想,现已广泛应用于数据通信加密领域.OpenSSL还可在局域网内构