构建私有CA

构建私有CA

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

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

实现环境 centos 7.2

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

构建私有CA

查看该配置文件

[root@redhat7 ~]# cat /etc/pki/tls/openssl.cnf

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

构建私有CA

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

[root@redhat7 ~]# (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)
[root@redhat7 ~]# ll /etc/pki/CA/private/cakey.pem  //生成的私钥文件
-rw-------. 1 root root 1675 Sep 11 16:57 /etc/pki/CA/private/cakey.pem

(2)生成自签证书 //特定目录下的特定文件名 配置文件已经定义的 [root@redhat7 ~]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 365 //输出省略

构建私有CA

[root@redhat7 ~]# 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提供所需要的目录及文件 //存在则可以忽略

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

构建私有CA

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

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

我们以httpd服务为例

确保安装有httpd服务

[root@centos6 ~]# mkdir /etc/httpd/ssl

(1)生成私钥

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

(2)生成证书签署请求

[root@centos6 ~]# openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr -days 365

构建私有CA

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

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

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

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

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

在CA主机上签署证书

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


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

构建私有CA 查看证书中的信息:

[root@redhat7 ~]# 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

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

[root@redhat7 ~]# cat /etc/pki/CA/index.txt
V   170911110034Z       01  unknown /C=CN/ST=Beijing/O=Sxj/OU=Si/CN=asher.com

原创文章,作者:sixijie,如若转载,请注明出处:http://www.178linux.com/49646

(0)
sixijiesixijie
上一篇 2016-09-28
下一篇 2016-09-28

相关推荐

  • 搭建yum仓库

    搭建yum仓库 背景: 在学习完如何搭建yum仓库后,觉得搭建yum仓库很有意义,将自己学习中的感悟和理解记录下来,以备日后复习。 介绍: yum:全称是Yellow dog Updater, Modified。它是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可…

    2017-08-05
  • Οι κωδικοποιητές software πίσω από τη συλλογή παιχνιδιών του Efbet Casino

    Όταν εξερευνάτε την πολυποίκιλη συλλογή παιχνιδιών του Efbet Casino, έρχεστε σε επαφή με το έργο προηγμένων ομάδων ανάπτυξης που έχουν μεταμορφώσει την πλατφόρμα από το 2006. Η πρό…

    Linux干货 6天前
  • MariaDB基础

    MariaDB基础 关系型数据库的基础概念: 1)数据类型:作用:存储格式、数据范围、所能参与的运算、排序方式         字符型:         定长字符型:CHAR(#),BIARNY(#)…

    Linux干货 2016-11-07
  • vsftp的使用(土著篇)

        这个vsftp本地用户登录模式(简称土著)配置方法论坛网站有一堆堆的,都是默认的东西,就那么多也写不出什么花来。     还是直接上酸菜好了,接着上回提到的vsftp的接着用,首先查看下你vsftp的配置情况。      这是上次匿名用户的配置,稍微得改一改。 配置本地用户登录的配…

    2017-07-30
  • 通过堡垒机代理SSH运行Ansible(译)

    有一种常见的网络安全模式是阻止私有网络外部对应用服务器的所有连接(指除了业务数据外其它的连接,如后台管理系统和内部业务系统。译者注),然后使用 DMZ 区域中的 堡垒机 来选择性的将到服务器的流量加入白名单。 我们有这样的一个服务器池,只允许来自特定 IP 地址的 SSH 流量。这些服务器还由 Ansible…

    Linux干货 2015-02-14
  • Linux用户和组命令

                        groupadd命令用户和工作组管理 groupadd命令用于创建一个新的工作组,新工作组的信息将被添加到系统文件中。-g:指定新建工作组的id;  -r:创建系统工作组,系统工作组的组ID小于500; -K:…

    2016-02-09