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

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

准备:
   1. 一台linux操做系统(以centos7虚拟机为例)
   2. 准备一台客户机(centos6虚拟机)
先上一张思惟导图吧。
CA服务器的搭建和申请证书shell

步骤

一.CA服务器建立。

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


二.客户机申请证书。

   1.客户机首先也要申请本身的私钥,这里以虚拟机centos6为例,客户机的路径能够本身定义,我这里是在/data/app/
CA服务器的搭建和申请证书
   2.用刚刚生成的私钥建立CA证书申请文件。
CA服务器的搭建和申请证书
   3.把刚刚生成的CA证书申请文件,发送给CA服务器认证。
CA服务器的搭建和申请证书
CA服务器经过申请认证后,就能够把认证后的证书拿过来使用了。 centos


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

一.CA服务器

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

#!/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
admin@magedu.com
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
#颁发证书
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
app@magedu.com
792402658
root
EOF
echo .
}
#--------------------------------------------------------------

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

#把申请文件发送给CA服务器
#spawn scp reboot.sh  $user@$ip:/data                                                      
expect <<EOF
set timeout 10
spawn scp $filecsr  $hostname@$CAIP:/data
expect <<EOF
expect {
    "yes/no" { send "yes\n";exp_continue }
    "password" { send "$password\n" }
}
    expect eof
EOF
echo .
相关文章
相关标签/搜索