原创

iRedMail邮件系统-使用SSL证书,让客户端不显示警告信息,Let's Encrypt证书使用

温馨提示:
本文最后更新于 2021年12月21日,已超过 1,049 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

客户端在使用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来申请和维护证书,

首先我们访问地址地址,选择系统和使用加密的软件

https://certbot.eff.org/

iRedMail邮件系统-使用SSL证书,让客户端不显示警告信息,Let’s Encrypt证书使用-图片1

 
 

然后网站会给出相关的使用文档,这里我们是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/指定域名/

iRedMail邮件系统-使用SSL证书,让客户端不显示警告信息,Let’s Encrypt证书使用-图片2

 
 

这样我们的证书就生成了,但是这个证书有效期只有3个月,但是我们可以永久免费续期,

根据官方建议,我们在计划任务中添加一个任务来执行certbot renew 命令,频率为每天一次就好,该命令会在证书快到期时自动续期,没到期什么都不会做

[root@alex opt]# crontab -e

# SSl certificate Update

30 20 * * * /usr/bin/certbot renew

 
 

这样每天晚上八点半就会执行更新,永久免费使用

iRedMail邮件系统-使用SSL证书,让客户端不显示警告信息,Let’s Encrypt证书使用-图片3

 
 

 
 

 
 

二、配置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

iRedMail邮件系统-使用SSL证书,让客户端不显示警告信息,Let’s Encrypt证书使用-图片4

 
 

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 正式链默认是注释的,需要手工删除前面的井号

iRedMail邮件系统-使用SSL证书,让客户端不显示警告信息,Let’s Encrypt证书使用-图片5

 
 

然后重启服务使其生效

[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配置默认是注释掉,得手动删除前面的井号

iRedMail邮件系统-使用SSL证书,让客户端不显示警告信息,Let’s Encrypt证书使用-图片6

 
 

重启服务使其配置生效

[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配置默认是注释的

iRedMail邮件系统-使用SSL证书,让客户端不显示警告信息,Let’s Encrypt证书使用-图片7

 
 

重启服务使其生效

[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

iRedMail邮件系统-使用SSL证书,让客户端不显示警告信息,Let’s Encrypt证书使用-图片8

 
 

重启OpenLDAP服务使其生效

[root@alex opt]# systemctl restart slapd.service

 
 

三、验证SSL证书配置

1、验证SMTP发信、以及POP3收信息使用SSL连接

可以使用客户端连接信息测试,这里使用Foxmail来进行测试

iRedMail邮件系统-使用SSL证书,让客户端不显示警告信息,Let’s Encrypt证书使用-图片9

 
 

注意默认是不强制使用465 SSL来连接,如需使用参考博客其他文章进行设定

 
 

配置完成后进行发信和收信测试

 
 

2、Apche浏览器证书认证,这个比较简单,访问邮件地址即可

iRedMail邮件系统-使用SSL证书,让客户端不显示警告信息,Let’s Encrypt证书使用-图片10

 
 

3、OpenLDAP 验证

在openldap客户端配置文件/etc/openldap/ldap.conf中更新TLS证书链文件

TLS_CACERT /etc/letsencrypt/live/mail.qnjslm.com/fullchain.pem

iRedMail邮件系统-使用SSL证书,让客户端不显示警告信息,Let’s Encrypt证书使用-图片11

使用命令进行测试连接

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

iRedMail邮件系统-使用SSL证书,让客户端不显示警告信息,Let’s Encrypt证书使用-图片12

 
 

 
 

 
 

正文到此结束
本文目录