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服务器的搭建和申请证书的主要内容,如果未能解决你的问题,请参考以下文章