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是自簽名的。
在這裏插入圖片描述
在這裏插入圖片描述
隱私與安全–》查看證書–》證書頒發機構,導入CA的證書cacert.crt,從而信任頒發機構。
在這裏插入圖片描述

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章