目的:搭建一个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 .