我已经为基于服务器证书的身份验证配置了设置。服务器和客户端都是 sendmail 系统,并且都具有相同的证书集。
但是,当客户端与服务器通信时,出现以下错误:
403 4.7.0 身份验证失败
访问文件内容:
TLS_Srv:mx3.domaintest.com 验证 TLS_Rcpt:验证:CI:/O=Sendmail/OU=Sendmail+20Server/CN=debian/Email=admin@debian
使用以下命令创建 db 文件:
makemap hash access.db < access
客户端 sendmail 日志:
5 月 13 日 03:38:26 sendmail[5052]: STARTTLS: CRLFile 丢失
5 月 13 日 03:38:26 sendmail[5052]: STARTTLS=client,init=1
5 月 13 日 03:38:26 sendmail[5052]: STARTTLS=client,start=ok
5 月 13 日 03:38:26 sendmail[5052]: STARTTLS=client,信息:fds=7/6,err=2
5 月 13 日 03:38:27 sendmail[5052]: STARTTLS: TLS 证书验证:depth=0 /O=Sendmail/OU=Sendmail Server/CN=debian/emailAddress=admin@debian,state=0,原因=自签名证书
5 月 13 日 03:38:27 sendmail[5052]: STARTTLS=client,信息:fds=7/6,err=2
5 月13 03:38:27 sendmail[5052]: STARTTLS=client,get_verify: 18 get_peer: 0x81e7a60
5 月 13 日 03:38:27 sendmail[5052]: STARTTLS=client,relay=mx3.domaintest.com.,version=TLSv1/SSLv3,verify=FAIL,cipher=DHE-RSA-AES256-SHA,bits=256/256
5 月 13 日 03:38:27 sendmail[5052]: STARTTLS=client,cert-subject=/O=Sendmail/OU=Sendmail+20Server/CN=debian/emailAddress=admin@debian,cert-issuer=/O=Sendmail/OU=Sendmail+20Server/CN=debian/emailAddress=admin@debian,verifymsg=自签名证书
5 月 13 日03:38:27 sendmail[5052]: 规则集=tls_server,arg1=FAIL,中继=mx3.domaintest.com,拒绝=403 4.7.0 身份验证失败
服务器日志:
5 月 13 日 02:03:41 domaintest sm-mta[3966]: STARTTLS=read,信息:fds=8/4,err=2
5 月 13 日 02:03:41 domaintest sm-mta[3966]: STARTTLS=read,信息:fds=8/4,err=2
5 月 13 日 02:03:41 domaintest sm-mta[3966]: r4D73R1p003966:from=,size=706,class=0,nrcpts=1,msgid=<[电子邮件保护]>,proto=ESMTP,daemon=MTA-v4,relay=domain.com [client_ip]
5 月 13 日 02:03:41 domaintest sm-mta[3966]: r4D73R1p003966: --- 250 2.0.0 r4D73R1p003966 消息已接受传送
5 月 13 日 02:03:41 domaintest sm-mta[3966]: STARTTLS=read,info: fds=8/4,err=2
5 月 13 日 02:03:41 domaintest sm-mta[3966]: r4D73R1q003966: <-- QUIT
5 月 13 日 02:03:41 domaintest sm-mta[3966]: r4D73R1q003966: --- 221 2.0.0 domaintest.com 关闭连接
5 月 13 日 02:03:41 domaintest sm-mta[3966]: STARTTLS=server,SSL_shutdown 未完成
5 月 13 日 02:03:41 domaintest sm-mta[3966]: poststats: /var/lib/sendmail/sendmail.st: 没有此文件或目录
5 月 13 日 02:03:41 domaintest sm-mta[3970]: r4D73R1p003966: to=, delay=00:00:00, xdelay=00:00:00, mailer=local, pri=30999, dsn=2.0.0, stat=Sent
5 月 13 日 02:03:41 domaintest sm-mta[3970]: poststats: /var/lib/sendmail/sendmail.st: 没有此文件或目录
5 月 13 日02:03:41 domaintest sm-mta[3970]: r4D73R1p003966: 完成;延迟=00:00:00,ntries=1
5 月 13 日 02:03:41 domaintest sm-mta[3970]: poststats: /var/lib/sendmail/sendmail.st: 没有此文件或目录
我哪里做错了?
在客户端 sendmail.cf 文件中,我可以看到以下规则被命中:
STLS_连接
需要身份验证:给出适当的错误,
另一方已进行身份验证(通过 STARTTLS)
R <> OK $@ OK
R OK $:
R OK $:
R $* $:
R $#error $@ $2 $: $1 "需要身份验证"
R FAIL $#error $@ $2 $: $1 “身份验证失败”
R NO $#error $@ $2 $: $1 “未经身份验证”
R NOT $#error $@ $2 $: $1 “未请求身份验证”
R NONE $#error $@ $2 $: $1 “另一方不支持 STARTTLS” R $+ $#error $@ $2 $: $1 “身份验证失败” $4
R $: $>max $&{cipher_bits} : $&{auth_ssf}
R $- $: $(arith l $@ $4 $@ $2 $)
R TRUE $#error $@ $2 $: $1 “加密太弱” $4 “小于” $3
R $* $:
R $@ OK
R $:
R < $+ ++ $+ >
R $+ $@ $>"TLS_req" $3 $|
请指导!
问候