openssl实现私有CA

实验环境:
CA:192.168.0.109 (RHEL7.2)
https_server:192.168.0.144 (centos6.9)
client:192.168.0.176 (mac)

0x01 在109搭建搭建CA

1、手工创建

  • 在/etc/pki/CA目录下操作,生成ca私钥
(umask 077;openssl genrsa -des -out private/cakey.pem 2048)
  • 由私钥生成公钥(可免)
openssl rsa -in private/cakey.pem -pubout > private/capub.pem
  • 用私钥自签名生成CA的证书cacert.pem
openssl req -new -x509 -key private/cakey.pem -out /etc/pki/CA/cacert.pem

2、命令创建

[root@localhost CA]# /etc/pki/tls/misc/CA -newca
0x02 在144搭建https
  • 安装mod_ssl模块
[root@redwand ~]yum install mod_ssl
[root@redwand ~]# rpm -ql mod_ssl
/etc/httpd/conf.d/ssl.conf
/usr/lib64/httpd/modules/mod_ssl.so
/var/cache/mod_ssl
/var/cache/mod_ssl/scache.dir
/var/cache/mod_ssl/scache.pag
/var/cache/mod_ssl/scache.sem
  • 按照144上配置文件/etc/httpd/conf.d/ssl.conf的目录默认存放要求,生成私钥。
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
cd /etc/pki/tls/private/
(umask 077;openssl genrsa -des -out localhost.key 1024)
  • 生成https的证书请求文件,发送给CA。
openssl req -new -key localhost.key -out localhost.csr
scp localhost.csr [email protected]:/tmp
0x03 在109的CA上给144签证

根据/etc/pki/tls/openssl.conf配置文件要求创建index.txt文件,serial文件

touch /etc/pki/CA/index.txt
echo 00 > /etc/pki/CA/serial

给144的证书请求文件签证

[root@localhost CA]openssl ca -in /tmp/localhost.csr -out /tmp/localhost.crt
[root@localhost CA]# cat index.txt
V        210224115705Z                00        unknown        /C=CN/ST=SD/O=redwand/OU=it/CN=www.redwand.com/emailAddress=[email protected]
[root@localhost CA]# cat serial
01	#serial号码+1
[root@localhost CA]# ls newcerts/
00.pem	#签好的https的证书

按照144上配置文件/etc/httpd/conf.d/ssl.conf的要求放置109的证书

scp 00.pem [email protected]:/etc/pki/tls/certs/localhost.crt
0x04 client访问https://www.redwand.com

得到警告信息,因为该证书的颁发者的证书redwand是自签名的。
openssl实现私有CA_第1张图片
openssl实现私有CA_第2张图片
隐私与安全–》查看证书–》证书颁发机构,导入CA的证书cacert.crt,从而信任颁发机构。
openssl实现私有CA_第3张图片

0x05 CA吊销证书

吊销证书00.pem

[root@localhost ~]# echo 00 > /etc/pki/CA/crlnumber
[root@localhost ~]# openssl ca -revoke /etc/pki/CA/newcerts/00.pem -cert /etc/pki/CA/cacert.pem -keyfile /etc/pki/CA/private/cakey.pem -config /etc/pki/tls/openssl.cnf
Using configuration from /etc/pki/tls/openssl.cnf
Enter pass phrase for /etc/pki/CA/private/cakey.pem:
Revoking Certificate 00.
Data Base Updated

生成证书吊销列表client.crl

[root@localhost ~]# openssl ca -gencrl -out /etc/pki/CA/crl/client.crl -cert /etc/pki/CA/cacert.pem -keyfile /etc/pki/CA/private/cakey.pem -config /etc/pki/tls/openssl.cnf

查看吊销列表的内容

[root@localhost crl]# openssl crl -in client.crl -text

你可能感兴趣的:(linux)