目的:搭建一個CA服務器並給客戶機受權認證 linux
準備:
1. 一臺linux操做系統(以centos7虛擬機爲例)
2. 準備一臺客戶機(centos6虛擬機)
先上一張思惟導圖吧。
shell
1. CA服務器咱們用centos7來創建,先申請該服務器的私鑰,注意路徑,咱們要把文件放在/etc/pki/CA/private下
2. 利用剛剛創建好的私鑰生成自簽名證書,注:CA的證書是本身給本身簽名的。
查看自簽名證書
導入到windows系統中修改後綴爲cer也能夠看到詳細信息。
3. 若是是初次搭建CA還要手動創建index文件和serial文件,不然在給客戶機頒發證書時會提示報錯。
4.獲得客戶機的證書申請給客戶機頒發證書。
頒發證書後也能夠把證書導入到windows改後綴查看,注意要先把CA服務器的證書安裝到系統中才能夠看到具體的證書路徑。
5.吊銷證書。
windows
1.客戶機首先也要申請本身的私鑰,這裏以虛擬機centos6爲例,客戶機的路徑能夠本身定義,我這裏是在/data/app/
2.用剛剛生成的私鑰建立CA證書申請文件。
3.把剛剛生成的CA證書申請文件,發送給CA服務器認證。
CA服務器經過申請認證後,就能夠把認證後的證書拿過來使用了。 centos
注:客戶機自動傳過來的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 .