构建CA服务器
CA配置文件位置:
/etc/pki/tls/openssl.cfg
dir = /etc/pki/CA //CA文件的根目录
certs = $dir/certs //CA存放证书的目录,这里的证书是客户的授权证书
crl_dir = $dir/crl //存放吊销列表文件
database = $dir/index.txt //存放证书条目的文件(证书属性)
new_certs_dir = $dir/newcerts //系统生成的证书条目的编号
certificate = $dir/cacert.pem //默认自签证书的存放路径与名字
serial = $dir/serial //定义初始条目数,需要自已填加两位数字初始值到文件
crlnumber = $dir/crlnumber //吊销列表的条目,需要自己填加初始值,为两位数值
crl = $dir/crl.pem //吊销列表的文件
private_key = $dir/private/cakey.pem //存放私钥位置
RANDFILE = $dir/private/.rand //私钥的随机数字文件
policy = policy_match //说明生成签证的时候策略的级别{match|anything}
match //表示必须匹配的字符,它申请证书文件与CA服务器的自签证书必须相同,如果不同会失败
optional //表示此项可以不相同
supplied //表示此CA证书所用的地方
架构图:
A:172.18.252.67(CA服务器)
B:172.18.253.176(客户服务器)
在A设备上进行的操作:
通过上面的配置文件的说明需要在/etc/pki/CA/private目录下生成私钥
openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096
通过上面生成的私钥生成CA的自签证书:
openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365
生成证书的时候是交互式的
这里写到的就是上面配置文件中提到的policy策略,如果是默认的话,注意下面的几项,客户在进行生成申请证书的时候与此三项要相同
Country Name (2 letter code) [XX]:CN //所在国家
State or Province Name (full name) []:BeiJing //所在州/省
Organization Name (eg, company) [Default Company Ltd]:magedu.com //签证公司
查看生成的自签证书
openssl x509 -in cacert.pem -noout -text
生成证书完成
在B设备上进行的操作
生成私钥:
openssl genrsa -out /root/http.rsa 2048
生成申请证书:
openssl req -new -key /root/http.rsa -out /root/http.csr
注意,生成申请文件的时候对就的三项要与CA服务器上的对应的三项相同
Country Name (2 letter code) [XX]:CN //所在国家
State or Province Name (full name) []:BeiJing //所在州/省
Organization Name (eg, company) [Default Company Ltd]:magedu.com //签证公司
将生成的申请书递交给CA服务器
scp http.csr 172.18.252.67:/etc/pki/CA/
在A设备上进行对递交的申请进行审核确认
openssl ca -in http.csr -out certs/http.crt -days 365
生成的时候报错了
/etc/pki/CA/index.txt: No such file or directory
说没有这个目录,根据上面的配置文件所示需要填加一个文件显示证书属性列表
直接创建此文件即可
touch index.txt
再次生成的时候又出错了
/etc/pki/CA/serial: No such file or directory
根据配置文件中serial文件的要求,需要创建此文件
但是通过tree命令查看生成的文件时,看到已经生成了http.crt,但是通过ls命令查看文件是一个空文件
touch serial
再次生成时候又出错了
unable to load number from /etc/pki/CA/serial
通过配置文件说明,此文件是一个序号文件,这个文件内容要求为两位数值,所以直接通过下面命令进行修改
echo 01 > serial
生成正确了
发送到windows系统进行测试
安装根证书以后,可以看到打开http.crt文件时不再是”没有足够信息,不能验证该证书”而是显示”所有应用策略”
由于B服务器进行了非法操作,所以现在要对B服务器的CA进行吊销操作
openssl ca -revoke certs/http.crt
生成吊销证书
openssl ca -gencrl -out crl/crl.pem
出错:/etc/pki/CA/crlnumber: No such file or directory
touch crlnumber
出错:unable to load number from /etc/pki/CA/crlnumber
echo 11 > crlnumber
生成成功
查看吊销证书
openssl crl -in crl/crl.pem -noout -text
拉出来看看
sz crl/crl.pem
可以看至吊销列表
原创文章,作者:gaomei,如若转载,请注明出处:http://www.178linux.com/73174