阿里雲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步調整,就成功發送郵件。