阿里云ECS  VPC网络,搭建了zabbix,想通过三方邮件系统发送邮件,本机开虚拟机测试发邮件一切正常,到阿里ECS的时候邮件各种发不出去,到处找原因,最后度娘告诉了我真想,原来阿里把25端口屏蔽了。

尝试解封,呵呵...继续找度娘 谷哥,说是可以绕开25端口,用465端口,步骤如下(先不要操作,我在测试机上按一下步骤成功使用465发送了邮件,但阿里云上ECS貌似不需要这些步骤就可以直接使用465发成功):

1、请求数字证书(这里使用126邮箱)

#创建目录,用于存放数字证书

mkdir -p /root/.certs

#向126请求证书

echo -n | openssl s_client -connect smtp.126.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/126.crt

打印如下内容:

depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root CA
verify return:1
depth=1 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = GeoTrust RSA CA 2018
verify return:1
depth=0 C = CN, L = Hangzhou, O = "NetEase (Hangzhou) Network Co., Ltd", OU = Mail Dept., CN = *.126.com
verify return:1
DONE

#增加一个证书到证书数据库中

certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/126.crt

#再增加一个证书到证书数据库中

certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/126.crt

#列出目录中的证书

Certificate Nickname Trust Attributes
SSL,S/MIME,JAR/XPI

GeoTrust SSL CA C,,

 

2、126邮箱打开smtp并获取客户端授权码,以及设置客户端授权密码

步骤:设置--POP3/SMTP/IMAP  开启

     客户端授权密码       开启

3、若有如下报错(证书不被信任)

Error in certificate: Peer's certificate issuer is not recognized.

解决办法:

cd /root/.certs/

certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i 126.crt 

显示内容:Notice: Trust flag u is set automatically if the private key is present.

4、如果以后要通过服务器直接发送邮件而不是通过zabbix来发邮件,可能会遇到一下问题,这里也做下记录:

革命先驱者:https://www.cnblogs.com/yunweis/p/8149242.html

发邮件报错如下:

Error initializing NSS Unknown error -8015.
以root用户就可以发送,其他用户不行。 (由于上面的文章介绍,生成的证书目录放在了root下,这样会导致其他用户没有可读和执行权限)
解决办法是 将证书文件目录:certs/ 移动到一个755权限的地方即可。如/etc下 一定要保证其他用户有读取和执行的权限,否则其他用户无法发送邮件。

5、zabbix配置变更如下:

变更前:

变更后:

 

再次触发报警,邮件发送成功,以上步骤线下实测,结果OK。

但阿里云ECS只将做了第5步调整,就成功发送邮件。

 

内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!