地址:http://zhumeng8337797.blog.163.com/blog/static/10076891420124165655721/
openssl建立CA中心
实验用了三台机:
CA中心:server1.example.com(192.168.10.254)
mail server: station20.example.com(192.168.10.20)
mail client: station19.example.com(192.168.10.19)
一.CA中心(server1.example.com:192.168.10.254)的设置
/etc/pki/tls
vim openssl.cnf
cd ../CA/
[root@server1 CA]# mkdir {certs,newcerts,crl} #创建刚才定义的那几个目录
[root@server1 CA]# echo 00 > serial ;touch index.txt #分配一个开始序列号并创建index.txt
[root@server1 CA]# echo 00 > ;crlnumber #同上
------------->开始生成CA中心自己的私钥
[root@server1 CA]#(umask 077; openssl genrsa –out private/my-ca.key –des3 2048 )
-------------- > 通过私钥来生成公钥:
[root@server1 CA]# openssl req -new -x509 -key private/my-ca.key -days 365 > my-ca.crt
下面开始用服务来验证
[root@station20 ~]# vim /etc/dovecot.conf
-------------- > 生成私钥
[root@station20 ~]# openssl genrsa 1024 > station20.key
--------------- > 通过私钥生成一个证书请求文件.
[root@station20 ~]# openssl req -new -key station20.key -out dovecot.csr
---------------->把证书请求文件发给CA中心
[root@station20 ~]# scp dovecot.csr 192.168.10.254:/root
--------------->CA中心签名[注意:现在在CA中心(server1.example.com:192.168.10.254)操作了]
[root@server1 ~]# openssl ca -in dovecot.csr -out dovecot.crt
-------------->生成后传回给mailserver(station20.example.com:192.168.10.20)
[root@server1 ~]# cp /etc/pki/CA/my-ca.crt pub/
[root@server1 ~]# cp dovecot.crt pub/
[root@server1 pub]# scp * 192.168.10.20:/root
-------------->设置/etc/dovecot.conf
[root@station20 ~]# cp station20.key /etc/pki/tls/private/dovecot.pem #公钥
[root@station20 ~]# cp dovecot.crt /etc/pki/tls/certs/dovecot.pem #私钥
[root@station20 ~]# vim /etc/dovecot.conf
ssl_cert_file = /etc/pki/tls/certs/dovecot.pem
ssl_key_file = /etc/pki/tls/private/dovecot.pem
下面客户端(station19.example.com:192.168.10.19)开始验证
[root@station20 ~]# scp my-ca.crt 192.168.10.19:/root/
看吧,告诉我这是一个不受信任的证书,问you要不要信任,信不信由你, 这个在实际环境挺险的,所以我要做下一步,把咱的权威CA导入到信任列表中,成为受信任的权威合法机构.
雷鸟导入CA证书
------------>生成吊销证书
[root@server1 newcerts]# openssl ca -revoke 00.pem
[root@server1 newcerts]# ls 00.pem
---------------->生成过期列表.
[root@server1 CA]# openssl ca -gencrl -out /etc/pki/CA/crl/my-ca.crl
由于firefox与thunderbird不支持此格式,需要转换,一般别的不需要此步
[root@server1 crl]# openssl crl -in my-ca.crl -outform DER -out my-ca-der.crl
顺便搭个httpserver让别人能下载得到过期列表
[root@server1 crl]# yum install -y httpd
[root@server1 crl]# service httpd restart
[root@server1 crl]# mkdir /var/www/html/certs
[root@server1 crl]# cp my-ca-der.crl /var/www/html/certs/
总结:
三个服务器:CA中心,mail中心和客户端client
整个总体配置流程应该是:(后续发现不正确还会改动,忘有人提出见解)
一、CA中心,生成my-ca.key私钥和my-ca.crt本机认证,并配置vim openssl.cnf信息。
二、mail中心,生成station20.key 和 请求认证信息dovecot.csr 把dovecot.csr 发送到"CA中心"。
三、CA中心生成penssl ca -in dovecot.csr -out dovecot.crt (会隐射改变本机的配置),并把dovecot.crt 和my-ca.crt 发送给mail中心。
四、mail中心,把station20.key 和 dovecot.crt 配置到vim /etc/dovecot.conf 邮件服务上;并把my-ca.crt 发送给客户端;
五、client客户端安装my-ca.crt 配置邮件基本信息,然后就可以访问服务器了。
六、吊销证书由CA中心来吊销。客户端就没有响应了。
总体请求流程(目前假设) (我调试了nginx,视乎流程和以下一样):
一、client发送请求到,mail服务器。
二、mail中心会,连接CA中心;并CA中心执行CA认证;吧执行结果返回给mail中心;
三、mail中心,会更具结果,验证是否通过进行处理;如果通过就给client发送邮件,否则发送验证不通过的信息。
四、client根据信息进行相应显示处理。
间接说明,CA认证,不会启动服务,而是被启动某些认证服务(待个人研究)。