首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >haraka smtp服务器:错误:无法获取颁发者证书

haraka smtp服务器:错误:无法获取颁发者证书
EN

Stack Overflow用户
提问于 2016-09-27 07:39:52
回答 1查看 890关注 0票数 0

尝试仅作为传出使用时,获取haraka电子邮件服务器错误:

tls安全:密码=ECDHE-RSA-acs128-GCM-sha256版本=tlsv1/sslv3 verified=false error=“错误:无法获取颁发者证书”

..。此发送电子邮件尝试的完整服务器日志

代码语言:javascript
复制
[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客户端代码

代码语言:javascript
复制
// https://github.com/nodemailer/nodemailer

var nodemailer = require('nodemailer');

var transporter = nodemailer.createTransport('smtp://myloginid:mypassword@mydomain.com:587');

var mailOptions = {
    host: 'mydomain.com',
    port: 587,
    from: 'myloginid@mydomain.com', // sender address
    to: 'mygmailname@gmail.com', // 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);
});

节点--版本v6.6.0

我正在使用由教程生成的TLS证书,请参阅

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

下面是四个cert文件

cert.pem chain.pem fullchain.pem privkey.pem

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

代码语言:javascript
复制
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 

以下是错误

客户端节点邮件程序

代码语言:javascript
复制
Error: unable to verify the first certificate   at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:416:38) code: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE' }

haraka日志错误:

代码语言:javascript
复制
[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。奇怪的是,即使上面的nodejs电子邮件客户端失败了,如果我使用swaks发送电子邮件,它现在仍然可以正常工作

代码语言:javascript
复制
swaks -f myloginid@mydomain.com -t mygmailname@gmail.com -s localhost -p 587 -au myloginid -ap mypassword
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-27 07:39:52

我在上面使用的letsencrypt证书文件的选择适用于其他电子邮件服务器,如postfix ...然而,haraka却想要文件fullchain.pem

以前使用的错误: cert.pem

正确的TLS证书: fullchain.pem

此文件更改修复了TLS错误,因此Haraka现在可以使用上述nodejs客户端代码正常发送传出电子邮件

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39713946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档