客户端在使用HTTPS/IMAPS/POP3/SMTPS访问邮件系统时候,会出现安全性警告,应为我们的证书是自签名证书,下面我们配置iRedMail使用CA办法的证书
https://docs.iredmail.org/use.a.bought.ssl.certificate.html
一、申请SSL证书
由于我们是月光族,没有能力去支付SSL证书费用,这里我们使用Let's Encrypt 提供的免费的SSL证书,在这里说句好公司一生平安
Let's Encrypt官方网站 https://letsencrypt.org/
下面来申请我们的免费证书,访问以下网址Let's Encrypt推荐使用cerbot来申请和维护证书,
首先我们访问地址地址,选择系统和使用加密的软件
然后网站会给出相关的使用文档,这里我们是apache应用在centos7上使用
首先要配置extras 和optional YUM源
安装certbot,
[root@alex opt]# yum install certbot
生成相关证书,更具官方说明我们要使用--webroot方式生成证书,然后手动修该
[root@alex opt]# certbot certonly --webroot -w /var/www/html/ -d mail.qnjslm.com
-w 指定WEB服务器的跟目录,运行命令时候会在网站根目录下面创建目录 .well-known/acme-challenge/
然后在该目录下随机产生一个文件,然后在云端进行访问认证,证明这个域名是你的。
注意了会在云端进行验证,本地Host没有什么用的哦!需要DNS记录设置好还能访问哦。
-d 就是验证的域名
完成后会生产相关证书文件在目录/etc/letsencrypt/live/指定域名/
这样我们的证书就生成了,但是这个证书有效期只有3个月,但是我们可以永久免费续期,
根据官方建议,我们在计划任务中添加一个任务来执行certbot renew 命令,频率为每天一次就好,该命令会在证书快到期时自动续期,没到期什么都不会做
[root@alex opt]# crontab -e
# SSl certificate Update
30 20 * * * /usr/bin/certbot renew
这样每天晚上八点半就会执行更新,永久免费使用
二、配置iRedMail使用SSL证书
1、设置Postfix SMTP 服务的SSL证书,使用postconf命令
指定证书文件
[root@alex opt]# postconf -e smtpd_tls_cert_file='/etc/letsencrypt/live/mail.qnjslm.com/cert.pem'
指定证书密约文件
[root@alex opt]# postconf -e smtpd_tls_key_file='/etc/letsencrypt/live/mail.qnjslm.com/privkey.pem'
指定证书链文件
[root@alex opt]# postconf -e smtpd_tls_CAfile='/etc/letsencrypt/live/mail.qnjslm.com/fullchain.pem'
重启服务让其生效
[root@alex opt]# systemctl restart postfix.service
2、设置Dovecot POP3/IMAP server服务的SSL证书,修该配置文件
[root@alex opt]# vim /etc/dovecot/dovecot.conf
ssl = required
verbose_ssl = no
ssl_ca = </etc/letsencrypt/live/mail.qnjslm.com/fullchain.pem
ssl_cert = </etc/letsencrypt/live/mail.qnjslm.com/cert.pem
ssl_key = </etc/letsencrypt/live/mail.qnjslm.com/privkey.pem
注意路径前面有个小于号,SSL_CA 正式链默认是注释的,需要手工删除前面的井号
然后重启服务使其生效
[root@alex opt]# systemctl restart dovecot.service
3、设置Apache Web服务的SSL证书,修该配置文件
[root@alex opt]# vim /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/letsencrypt/live/mail.qnjslm.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mail.qnjslm.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/mail.qnjslm.com/fullchain.pem
注意 证书链SSLCertificateChainFile配置默认是注释掉,得手动删除前面的井号
重启服务使其配置生效
[root@alex opt]# systemctl restart httpd.service
4、数据库Mysql、MariaDB证书设定
这个不是必须设置,如果是在本地可以不用设置
[root@alex opt]# vim /etc/my.cnf
ssl-ca = /etc/letsencrypt/live/mail.qnjslm.com/fullchain.pem
ssl-cert = /etc/letsencrypt/live/mail.qnjslm.com/cert.pem
ssl-key = /etc/letsencrypt/live/mail.qnjslm.com/privkey.pem
注意ca配置默认是注释的
重启服务使其生效
[root@alex opt]# systemctl restart mariadb.service
5、OpenLDAP证书设定,非必须设置
如果不是用的OpenLDAP无需设定,如果OpenLDAP只是用在本地通信也无须设定
[root@alex opt]# vim /etc/openldap/slapd.conf
TLSCACertificateFile /etc/letsencrypt/live/mail.qnjslm.com/fullchain.pem
TLSCertificateFile /etc/letsencrypt/live/mail.qnjslm.com/cert.pem
TLSCertificateKeyFile /etc/letsencrypt/live/mail.qnjslm.com/privkey.pem
重启OpenLDAP服务使其生效
[root@alex opt]# systemctl restart slapd.service
三、验证SSL证书配置
1、验证SMTP发信、以及POP3收信息使用SSL连接
可以使用客户端连接信息测试,这里使用Foxmail来进行测试
注意默认是不强制使用465 SSL来连接,如需使用参考博客其他文章进行设定
配置完成后进行发信和收信测试
2、Apche浏览器证书认证,这个比较简单,访问邮件地址即可
3、OpenLDAP 验证
在openldap客户端配置文件/etc/openldap/ldap.conf中更新TLS证书链文件
TLS_CACERT /etc/letsencrypt/live/mail.qnjslm.com/fullchain.pem
使用命令进行测试连接
ldapsearch -x -W -H 'ldap://127.0.0.1:636' -D 'cn=mail,dc=qnjslm,dc=com' -b 'o=domains,dc=qnjslm,dc=com' mail
4、数据库进行SSL安全连接
[root@www iRedMail-0.9.7]# mysql -u root -P 3306 --ssl-ca=/etc/letsencrypt/live/mail.qnjslm.com/fullchain.pem
文章末尾固定信息
评论