CA服务器的搭建和申请证书

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CA服务器的搭建和申请证书相关的知识,希望对你有一定的参考价值。

目的:搭建一个CA服务器并给客户机授权认证

准备:
?? 1. 一台linux操作系统(以centos7虚拟机为例)
?? 2. 准备一台客户机(centos6虚拟机)
先上一张思维导图吧。
技术图片

步骤

一.CA服务器创建。

?? 1. CA服务器我们用centos7来建立,先申请该服务器的私钥,注意路径,我们要把文件放在/etc/pki/CA/private下
技术图片
?? 2. 利用刚刚建立好的私钥生成自签名证书,注:CA的证书是自己给自己签名的。
技术图片
?? 查看自签名证书
技术图片
??导入到windows系统中修改后缀为cer也可以看到详细信息。
技术图片
?? 3. 如果是初次搭建CA还要手动建立index文件和serial文件,否则在给客户机颁发证书时会提示报错。
技术图片
?? 4.得到客户机的证书申请给客户机颁发证书。
技术图片
颁发证书后也可以把证书导入到windows改后缀查看,注意要先把CA服务器的证书安装到系统中才可以看到具体的证书路径。
技术图片
?? 5.吊销证书。
技术图片


二.客户机申请证书。

?? 1.客户机首先也要申请自己的私钥,这里以虚拟机centos6为例,客户机的路径可以自己定义,我这里是在/data/app/
技术图片
?? 2.用刚刚生成的私钥创建CA证书申请文件。
技术图片
?? 3.把刚刚生成的CA证书申请文件,发送给CA服务器认证。
技术图片
CA服务器通过申请认证后,就可以把认证后的证书拿过来使用了。


利用shell脚本实现自动创建CA和申请。

一.CA服务器

注:客户机自动传过来的CA申请证书会保存在/data/下,只需要脚本后跟文件名就可以了,不用写后缀。

#!/bin/bash
    #
#***********************************************************
#Autohor:              GuoCheng                             
#QQ:                  792402658                             
#Date:                2019-06-20 
#FileName:             createCA.sh
#***********************************************************
set -u
set -e
way=/etc/pki/CA
day=100
name=$1
cd $way

#-------------------------定义函数-------------------------------
#生成CA自己的私钥
private()
(umask 077;openssl genrsa -out private/cakey.pem 4096 )
openssl req -new -x509 -key $way/private/cakey.pem  -out $way/cacert.pem  -days 3650 <<EOF
CN
beijing
beijing
magedu
devops
ca.magede.com
[email protected]
root
792402658
EOF
echo .

#------------------------------------------------------------------

#主程序开始
if [ ! -e $way/index.txt ];then
        touch  $way/index.txt
        fi
if [ ! -e $way/serial ];then
        echo 00 > $way/serial
        fi

if [ ! -e $way/private/cakey.pem ];then
        private
        fi
#颁发证书
spawn openssl ca -in  /data/$name.csr  -out $way/certs/$name.crt  -days  $day 

二.客户机

注:客户机只需要在脚本名后写入你想申请的CA证书名(不用写后缀)和CA服务器IP两个参数就可以看了,注意此脚本不够完善 顺序不要写反。

#!/bin/bash
#
#***********************************************************
#Autohor:              GuoCheng                             
#QQ:                  792402658                             
#Date:                2019-06-22 
#FileName:             RequestCA.sh
    #***********************************************************
set -u
set -e
way=/data/app
hostname=root
password=792402658
filename=$1
CAIP=$2
filekey=$filename.key
filecsr=$filename.csr
cd $way

#----------------------定义函数-------------------------------
key()
(umask 066;openssl genrsa -out $filekey 1024)
openssl req -new -key $filekey -out $filecsr <<EOF
CN
beijing
beijing
magedu
37
app.magedu.com
[email protected]
792402658
root
EOF
echo .

#--------------------------------------------------------------

#生成本机密钥和CA申请文件
key

#把申请文件发送给CA服务器
#spawn scp reboot.sh  [email protected]$ip:/data                                                      
expect <<EOF
set timeout 10
spawn scp $filecsr  [email protected]$CAIP:/data
expect <<EOF
expect 
    "yes/no"  send "yes\n";exp_continue 
    "password"  send "$password\n" 

    expect eof
EOF
echo .

以上是关于CA服务器的搭建和申请证书的主要内容,如果未能解决你的问题,请参考以下文章

CA证书申请搭建dhcp服务

如何申请https证书,搭建https网站

证书服务器CA的搭建和管理

使用OpenSSL实现CA证书的搭建过程

CA搭建与证书申请

CA搭建与证书申请