运行环境:centos7 centos6 Vmware

一、OpenSSL简介

OpenSSL是一个开源项目,其组成主要包括一下三个组件:

  • openssl 多用途的命令行工具

  • libcrypto 加密算法库

  • libssl 加密模块应用库,实现ssl

OpenSSL可以实现:

  • 对称加密

  • 单向加密

  • 生成密码

  • 生成随机数

  • 生成密钥对

  • 创建CA和申请证书

这里主要介绍使用OpenSSL建立CA,完成CA中心布署


二、创建CA和申请证书

使用openssl工具创建CA证书和申请证书时,需要先查看配置文件,因为配置文件中对证书的名称和存放位置等相关信息都做了定义,具体可以参考

linux中使用openssl建立CA_linux      CA

linux中使用openssl建立CA_openssl_02

linux中使用openssl建立CA_openssl_03


1、创建根CA

(1)创建CA所需要的文件

cd /etc/pki/CA
touch index.txt
echo 00 > serial

linux中使用openssl建立CA_linux      CA_04

(2)生成私钥,私钥的文件名与存放位置都要和配置文件的设置相匹配

(umask 066;openssl genrsa -out private/cakey.pem -des3 2048)

linux中使用openssl建立CA_openssl_05

openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 7300

linux中使用openssl建立CA_linux      CA_06

linux中使用openssl建立CA_openssl_07

如果不相同,则根CA无法完成对其签名,因为在相应的配置文件已经做好了设置,也可以修改配置文件

policy=policy_match 改为policy=policy_anything,只有这种情况才可以这三项不同

linux中使用openssl建立CA_openssl_03

linux中使用openssl建立CA_openssl_09

这样一个根CA就建成了!我们可以将生成的证书导出到自己的windows系统,因为windows系统识别不了以.pem结尾的文件,所以我们需要手动修改。

linux中使用openssl建立CA_linux      CA_10

linux中使用openssl建立CA_openssl_11

linux中使用openssl建立CA_openssl_12


2、颁发证书

(1)在需要使用证书的机器上生成私钥

(umask 066;openssl genrsa -out yellow.key 1024)

linux中使用openssl建立CA_linux      CA_13

(2)通过私钥生成公钥

openssl req -new -key yellowwhat.key -out yellow.csr

linux中使用openssl建立CA_linux      CA_14

linux中使用openssl建立CA_openssl_15

这里故意将第二项写错,与根CA不同

(3)将公钥发给根CA,根CA进行签名

scp yellow.csr root@c7:/etc/pki/CA(c7是在/etc/host定义号的域名)

linux中使用openssl建立CA_openssl_16

linux中使用openssl建立CA_openssl_17

这里提示无法签名,因为第二项不同,所以我们可以去修改配置文件,修改文件之后执行签名之后如下图所示:

linux中使用openssl建立CA_linux      CA_18

linux中使用openssl建立CA_openssl_19

(4)将签完名的证书重新发送回去

scp yellow.crt root@c6:/app

linux中使用openssl建立CA_openssl_20

将证书到处到windows系统中查看

linux中使用openssl建立CA_linux      CA_21