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 .
相關文章
相關標籤/搜索