各位,请教个问题,我有一台zabbix服务器,告警邮件是mailx做的,邮箱是o365的 587端口 ,由于o365要禁止TLS1.0和1.1 ,现在发告警邮件有时候会发不出去,通常发送3-5条邮件就会出现一次发不出去,请问我该怎么设置成tls1.2 ,openssl已经升级到1.1.1。
报错如下:
smtp-server: 421 4.7.66 TLS 1.0 and 1.1 are not supported. Please upgrade/update your client to support TLS 1.2. Visit https://aka.ms/smtp_auth_tls. [ZQ0PR01CA0013.CHNPR01.prod.partner.outlook.cn 2023-03-24T08:47:58.778Z 08DB2BB55D605A6B]
/etc/mail.rc 设置如下:
要设置TLS 1.2,你需要使用openssl生成新的客户端证书,并将其安装到zabbix服务器上。以下是一些步骤:
生成证书
使用以下命令生成证书:
openssl req -new -newkey rsa:4096 -nodes -keyout zabbix.key -out zabbix.csr
这将生成一个4096位RSA密钥对和一个证书签名请求(CSR)文件。
2. 提交CSR
将生成的CSR文件提交给证书颁发机构(CA)以获得证书。你需要向CA提供一些信息,如公司名称、网站名称、邮件地址等。
3. 安装证书
一旦你获得了证书,就可以将其安装到zabbix服务器上。将证书和私钥放在同一个文件中,并将其命名为zabbix.pem。
然后在mail.rc文件中使用以下命令来指定证书文件和TLS版本:
set ssl-verify=ignore
set smtp-use-starttls
set smtp-tls=openssl
set smtp-auth=login
set smtp-auth-user=zabbix@******.com.cn
set smtp-auth-password=********
set smtp=smtp.partner.outlook.cn:587
set from=zabbix@******.com.cn
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/
set ssl-version=tlsv1.2
set ssl-verify=ignore
set smtp-cert-file=/path/to/zabbix.pem
set smtp-key-file=/path/to/zabbix.pem
在这个示例中,将TLS版本设置为1.2,并指定了证书和私钥文件的路径。
你需要将上面的路径替换为你实际的证书和私钥文件的路径。
4. 测试
完成以上步骤后,你可以测试一下邮件是否能够正常发送。
校验证书是否可信:
校验证书是否是由受信任的CA根证书颁发机构颁发。
为了确保客户端
获取到的服务端公钥
不被篡改,需引入权威的第三方CA机构。
CA机构负责核实
公钥拥有者
信息、颁发证书
(对服务端公钥进行签名)、同时为使用者提供证书验证
服务。
CA机构 颁发证书的基本原理:
服务端
生成一对公钥
、私钥
。服务端
将自己的公钥提供给CA机构
。CA机构
核实服务端公钥
拥有者信息:CA机构
签发证书:公钥摘要信息
,然后利用CA机构私钥
(CA机构有一对公钥、私钥)加密摘要信息
,生成数字签名
。数字签名
信息的服务端公钥
即CA机构
颁发的数字证书
。客户端 验证服务端公钥的基本原理为:
客户端
获取到服务端的公钥
:客户端
用存储在本地的CA机构的公钥
,对 服务端公钥
中对应的数字签名
进行解密,获取到服务端公钥
的摘要信息A
;客户端
根据对服务端公钥
进行摘要计算,得到摘要信息B
;对比
摘要信息A与B
,相同则证书验证通过;没有解决,我没有申请证书,没法验证你们的答案。我换了告警邮箱,换成自建的了。