第1台为客户机,访问邮件服务器的邮箱服务
IP地址192.168.1.1 主机名:client.ujiuye.com,安装邮件客户端软件mutt
第2台虚拟机为dovecot邮件服务器,实现向CA中心请求签证,并搭建邮件服务,提供客户机访问
IP地址192.168.1.2 主机名:mail.ujiuye.com,安装软件postfix和dovecot
第3台虚拟机扮演私有CA服务器,实现证书认证请求和签发 ,同时也搭建DNS服务,实现域名解析:ca.ujiuye.com,mail.ujiuye.com,client.ujiuye.com
IP地址192.168.1.3 主机名:ca.ujiuye.com,安装软件bind,bind-utils,bind-libs
注意:该实验要首先构建DNS完成域名解析
三台虚拟机都绑定到虚拟交换机VMnet1 修改网卡主配置文件配置IP地址。
重启网络:systemctl restart network
Ping 192.168.1.2
Ping 192.168.1.3
配置DNS 服务:yum -y install bind vim /etc/namd.conf
解析测试:client端
yum -y install bind (主要安装测试工具组件)
1.构建私有CA,并给服务器签发证书。
1)ca服务器,根据openssl工具实现自签证书、配置自身的CA配置文件
修改CA配置文件
vim /etc/pki/tls/openssl.cnf (:set nu 调出行号 129 G 快速定位)
2)在CA根目录/etc/pki/CA下创建***文件和索引文件
cd /etc/pki/CA
touch index.txt
echo 01 > serial
3)CA服务器生成私钥
openssl genrsa -out private/cakey.pem
4)使用私钥提取公钥,生成自签证书
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 3650 -out /etc/pki/CA/cacert.pem
cat /etc/pki/CA/cacert.pem
5)邮件服务器搭建dovecot邮件服务,然后创建私钥
yum -y install postfix
yum -y install dovecot
openssl genrsa -out imaps-svr.key 2048
6)邮件服务器生成签名请求文件,把请求文件传输给CA
修改CA配置文件
vim /etc/pki/tls/openssl.cnf (:set nu 调出行号 129 G 快速定位)
openssl req -new -key imaps-svr.key -days 365 -out imaps-svr.crs
scp imaps-svr.crs [email protected]:/root
7)CA中心进行签名,认证,然后把认证的证书发往mail邮件服务器。
openssl req -in imaps-svr.crs -noout -text (以文本方式先进行输出查看一下证书内容和签名信息)
openssl ca -in imaps-svr.crs -out imaps-svr.crt (并确认签署)
scp imaps-svr.crt 192.168.1.2:/root
总结:这里遇到的问题 一个是主机名没读出来 解决的方法是手动再写一遍
还有就是当你删除证书文件,重新再签署一个的话 会报错;解决方法是
需要删除索引文件再重新touch 创建一个。还有如下方法:
创建CA证书报错-failed to update database TXT_DB error number 2
openssl TXT_DB error number 2 failed to update database
产生的原因是:
This thing happens when certificates share common data. You cannot have two
certificates that look otherwise the same.
方法一:
修改demoCA下 index.txt.attr
将 unique_subject = yes 改为unique_subject = no
方法二:
删除demoCA下的index.txt,并再touch下
rm index.txt touch index.txt
方法三:
将 common name设置成不同的
9)确认mail邮件服务器的postfix服务是否开启,并查看devocot配置文件
systemctl status postfix
vim /etc/postfix/main.cf
修改postfix的配置文件main.cf中的inet_interfaces=localhost,改为inet_interfaces=all
重启postfix :systemctl restart postfix
10)修改dovecot的ssl配置文件,并查看证书存放路径和私钥存放路径
cd /etc/dovecot
vim conf.d/10-ssl.conf
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
11)将mail邮件服务器自身的证书和私钥放置到指定的路径,并进行启动dovecot,查看端口是否开放,110,143
将证书复制为/etc/pki/dovecot/certs/dovecot.pem
cp /root/imaps-svr.crt /etc/pki/dovecot/certs/dovecot.pem
将私钥复制为/etc/pki/dovecot/private/dovecot.pem
cp /root/imaps-svr.key /etc/pki/dovecot/private/dovecot.pem
12)在客户端安装mutt邮件客户端,进行设置邮件服务器邮箱地址,验证其邮箱的证书可用性。
yum -y install mutt
cd root
mkdir .mutt
vim .mutt/muttrc
set folder=imaps://mail.offcn.com
set spoolfile=imaps://mail.offcn.com
set certificate_file=/root/.mutt/OFFCN_CA.CRT
保存退出
执行命令mutt
2.吊销上题中的证书。 CA服务器
1)openssl x509 -in /root/imaps-svr.crt -noout -serial -subject
2)CA服务端根据客户提交的serial与subject信息,对比检验是否和index.txt文件中的信息一致,
3)吊销:openssl ca -revoke /etc/pki/CA/newcerts/01.pem
4)生成吊销证书的编号(第一次吊销)
echo 01 > /etc/pki/CA/crlnumber
5)更新证书吊销列表
openssl ca -gencrl -out /etc/pki/CA/crl/crl.pem**