2016-09-26 101 views
0

获取尝试,因为只有外出时要使用haraka电子邮件服务器错误:haraka SMTP服务器:错误:无法获得发行者证书

[TLS]保护:密码= ECDHE-RSA-AES128-GCM-SHA256版本=的TLSv1/SSLv3的验证=虚假错误=“错误:无法获得发行者证书”为此发送电子邮件试图

[NOTICE] [06F7A5F3-E976-404E-8629-CAB3771964E9] [core] connect ip=111.222.333.444 port=55152 local_ip=:: local_port=587 
[DEBUG] [06F7A5F3-E976-404E-8629-CAB3771964E9] [core] running connect_init hooks 
[DEBUG] [06F7A5F3-E976-404E-8629-CAB3771964E9] [core] running connect_init_respond 
[DEBUG] [06F7A5F3-E976-404E-8629-CAB3771964E9] [core] running lookup_rdns hooks 
[DEBUG] [06F7A5F3-E976-404E-8629-CAB3771964E9] [core] running connect hooks 
[PROTOCOL] [06F7A5F3-E976-404E-8629-CAB3771964E9] [core] S: 220 mydomain.com ESMTP Haraka 2.8.8 ready 
[PROTOCOL] [06F7A5F3-E976-404E-8629-CAB3771964E9] [core] C: EHLO mydomain.com state=1 
[DEBUG] [06F7A5F3-E976-404E-8629-CAB3771964E9] [core] running ehlo hooks 
[DEBUG] [06F7A5F3-E976-404E-8629-CAB3771964E9] [core] running capabilities hooks 
[DEBUG] [06F7A5F3-E976-404E-8629-CAB3771964E9] [core] running capabilities hook in tls plugin 
[DEBUG] [06F7A5F3-E976-404E-8629-CAB3771964E9] [core] hook=capabilities plugin=tls function=tls_capabilities params="" retval=CONT msg="" 
[DEBUG] [06F7A5F3-E976-404E-8629-CAB3771964E9] [core] running capabilities hook in auth/flat_file plugin 
[DEBUG] [06F7A5F3-E976-404E-8629-CAB3771964E9] [auth/flat_file] Auth disabled for insecure public connection 
[DEBUG] [06F7A5F3-E976-404E-8629-CAB3771964E9] [core] hook=capabilities plugin=auth/flat_file function=hook_capabilities params="" retval=CONT msg="" 
[PROTOCOL] [06F7A5F3-E976-404E-8629-CAB3771964E9] [core] S: 250-mydomain.com Hello mydomain.com [111.222.333.444], Haraka is at your service. 
[PROTOCOL] [06F7A5F3-E976-404E-8629-CAB3771964E9] [core] S: 250-PIPELINING 
[PROTOCOL] [06F7A5F3-E976-404E-8629-CAB3771964E9] [core] S: 250-8BITMIME 
[PROTOCOL] [06F7A5F3-E976-404E-8629-CAB3771964E9] [core] S: 250-SIZE 0 
[PROTOCOL] [06F7A5F3-E976-404E-8629-CAB3771964E9] [core] S: 250 STARTTLS 
[PROTOCOL] [06F7A5F3-E976-404E-8629-CAB3771964E9] [core] C: STARTTLS state=1 
[DEBUG] [06F7A5F3-E976-404E-8629-CAB3771964E9] [core] running unrecognized_command hooks 
[DEBUG] [06F7A5F3-E976-404E-8629-CAB3771964E9] [core] running unrecognized_command hook in tls plugin 
[PROTOCOL] [06F7A5F3-E976-404E-8629-CAB3771964E9] [core] S: 220 Go ahead. 
[DEBUG] [-] [core] Upgrading to TLS 
[DEBUG] [-] [core] TLS secured. 
[INFO] [06F7A5F3-E976-404E-8629-CAB3771964E9] [tls] secured: cipher=ECDHE-RSA-AES128-GCM-SHA256 version=TLSv1/SSLv3 verified=false error="Error: unable to get issuer certificate" 
[INFO] [06F7A5F3-E976-404E-8629-CAB3771964E9] [core] hook=unrecognized_command plugin=tls function=tls_unrecognized_command params="STARTTLS" retval=OK msg="" 
[INFO] [06F7A5F3-E976-404E-8629-CAB3771964E9] [core] client [111.222.333.444] dropped connection 
[DEBUG] [06F7A5F3-E976-404E-8629-CAB3771964E9] [core] running disconnect hooks 
[DEBUG] [06F7A5F3-E976-404E-8629-CAB3771964E9] [core] running disconnect hook in tls plugin 
[DEBUG] [06F7A5F3-E976-404E-8629-CAB3771964E9] [core] hook=disconnect plugin=tls function=hook_disconnect params="" retval=CONT msg="" 
[NOTICE] [06F7A5F3-E976-404E-8629-CAB3771964E9] [core] disconnect ip=111.222.333.444 rdns="mydomain.com" helo="" relay=N early=N esmtp=Y tls=Y pipe=N errors=0 txns=0 rcpts=0/0/0 msgs=0/0/0 bytes=0 lr="" time=0.06 

这里

...整个服务器日志整个客户端的NodeJS代码向外发送电子邮件

// https://github.com/nodemailer/nodemailer 

var nodemailer = require('nodemailer'); 

var transporter = nodemailer.createTransport('smtp://myloginid:[email protected]:587'); 

var mailOptions = { 
    host: 'mydomain.com', 
    port: 587, 
    from: '[email protected]', // sender address 
    to: '[email protected]', // list of receivers 
    subject: 'Hello', 
    text: 'Hello world', 
    debug: true, 
    auth: { 
     user: 'myloginid', 
     pass: 'mypassword' 
    } 
}; 

// send mail with defined transport object 
transporter.sendMail(mailOptions, function(error, info){ 
    if(error){ 
     return console.log(error); 
    } 
    console.log('Message sent: ' + info.response); 
}); 

节点--version V6.6.0我使用从教程生成TLS证书

https://letsecure.me/secure-web-deployment-with-lets-encrypt-and-nginx/

这里有四个证书文件

cert.pem链。 pem fullchain.pem privkey.pem

我使用了其中两个TLS证书文件KA

cp /etc/letsencrypt/live/${FRESH_DOMAIN}/privkey.pem ${HARAKA_HOME}/config/tls_key.pem 
cp /etc/letsencrypt/live/${FRESH_DOMAIN}/cert.pem ${HARAKA_HOME}/config/tls_cert.pem 

下面是错误

客户nodemailer

Error: unable to verify the first certificate at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:416:38) code: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE' } 

haraka日志错误:

[INFO] [06F7A5F3-E976-404E-8629-CAB3771964E9] [tls] secured: cipher=ECDHE-RSA-AES128-GCM-SHA256 version=TLSv1/SSLv3 verified=false error="Error: unable to get issuer certificate" 

有什么建议?

PS。奇怪的是目前它工作确定,如果我使用swaks来发送电子邮件,即使上述电子邮件的NodeJS客户端无法

swaks -f [email protected] -t [email protected] -s localhost -p 587 -au myloginid -ap mypassword 

回答

0

我上面使用letsencrypt TLS证书文件选择适用于其他电子邮件服务器一样后缀...但haraka代替希望文件fullchain.pem

错了以前使用的:cert.pem

正确的TLS证书:fullchain.pem

这个文件改变固定的TLS错误,以便Haraka现在发送传出电子邮件OK以上客户的NodeJS合作de

相关问题