提问者:小点点

DKIM错误签名。期望的身体哈希与发送的BH相同。阿帕奇詹姆斯


我做了很多关于这个主题的研究。我有一个Apache James2.3.2.1Mail Server。我把它配置为正式服。我让它运行,稳定,但是实现jDKIM很麻烦。我找到了这些链接来让它正确。http://www.nailedtothex.org/roller/kyle/entry/configuring-james-to-sign-dkimhttps://github.com/smoradi/config/blob/master/noften/apache-james.txt

到目前为止,我反复验证公钥和私钥。邮件库。Java邮件的代码和配置。但是我卡住了。

在使用www.appmaildev.com/en/domainkeys/进行测试时,我终于解决了上面提到的主题的一些错误。但现在它只是在玩弄我。在DKIM测试结果中,它说预期的身体哈希必须是预期的身体哈希:

  : frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN/XKdLCPjaYaY=

但是在Message Header中说主体哈希就是这样。

bh : frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN/XKdLCPjaYaY=

这是一样的,所以这个测试应该没问题。也许我错过了DNS或邮件配置中的一些东西,我只是不知道我一直在尝试以不同的方式接近,但这是我每次都得到的。

注意,在得到这一点之前,每次我通过Outlook或Homail发送邮件时,它都会立即到达垃圾邮件,现在几乎是每3或5次发送一次。虽然Gmail自SPF以来一直在收件箱中。并且服务器没有在DNS中正确配置PTR记录。

这是来自appmaildev的邮件。

我改变我的域名超过example.com

把IP改成xxx.xxx.xxx.xxx

这个测试特别是使用ehlo在telnet上进行的

我用 ** **.标记了代码中令人费解的部分

================================================================

Signed by: webmaster@example.com
**Expected Body Hash: frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN/XKdLCPjaYaY=**

PublicKey: selector._domainkey.example.com
    IN TXT = "k=rsa; p=
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCtLBczKGEysTT6QuRgApyn6yvM
XOU9Sjkx6YMomuFujqPk2XgMuBbgafckRX+1F18h9G1rURmvc3EmPxegFxim6wrE
1RJGfddO+OHEjTBOsuXa7BK29P/bhCOehVeYG4o0L5DH8z3izfmvNuC3dC4N5G3R
8ZrNd7k/196TCZIaMwIDAQAB;"

---Original Message Header---
x-sender: webmaster@example.com
x-receiver: AAAA4AcCCxQA@appmaildev.com
Received: from james ([xxx.xxx.xxx.xxx]) by mail.appmaildev.com with Microsoft SMTPSVC(7.5.7600.16385);
     Thu, 11 Feb 2016 22:05:19 -0500
DKIM-Signature: v=1; d=example.com; b=V9gPNU9Gjky7fFov5cYuTGN/gQEoBgaAkctwnME17pT/Uket4PDsVixMQbyiKvgQF3ADK8HTrKyd1L+9bBiesJAQaD1L1lH0ualjO/Ctf8jjzLyDUfB6cu4TEuAD+aVkIUVVbd0LNhcpxiOMsd5cADRBqZy60Mw9fQOaqyjh0QU=; s=selector; a=rsa-sha256; **bh=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN/XKdLCPjaYaY=;** h=from:to:received:received;
Message-ID: <1848510914.01455246317306.JavaMail.root@james>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-UserIsAuth: true
Received: from localhost.localdomain ([127.0.0.1])
by james (JAMES SMTP Server 2.3.2.1) with SMTP ID 101
for <AAAA4AcCCxQA@appmaildev.com>;
Fri, 12 Feb 2016 03:05:17 +0000 (UTC)
Date: Fri, 12 Feb 2016 03:05:17 +0000 (UTC)
From: webmaster@example.com
subject: prueba ehlo
ehlo.:
Bcc:
Return-Path: webmaster@example.com
X-OriginalArrivalTime: 12 Feb 2016 03:05:20.0069 (UTC) FILETIME=[34ED9F50:01D16542] 

共1个答案

匿名用户

经过更多的研究和测试,我使其正常工作。似乎我在DKIM-Signature中缺少值。这是我在DKIMSign邮箱中用于Apache James的config. xml中的原始标签:

  <signatureTemplate>v=1; s=selector; d=example.com;
 h=from:to:received:received; a=rsa-sha256; bh=;
 b=;</signatureTemplate>

我错过了“c”,我改变了“h”

c=relaxed/relaxed;

h=Message-ID:Date:Subject:From:To:MIME-Version:Content-Type;

修改后我得到了这个:

  <signatureTemplate>v=1; s=selector; d=example.com; 
  h=Message-ID:Date:Subject:From:To:MIME-Version:Content-Type; 
  a=rsa-sha256; bh=; b=;c=relaxed/relaxed;</signatureTemplate>

另一个细节,我做了几个测试是DNS记录。我的是在视窗服务器上,所以为了小心,我检查了这些细节。

首先,“k”中分号前的转义字符

k=rsa\; 

其次,“p”值是最后一个值,没有分号或转义字符。

p=MIG...QAB

所以,在主机命令之后,我得到了类似的东西

selector._domainkey.example.com descriptive text "k=rsa\;p=\010...QAB"

在这些更改和检查之后。它通过了每次测试:)

我发现对配置有用的另一个链接是这个。http://mail-archives.apache.org/mod_mbox/james-server-user/201410.mbox/<544FD474.2040906@malcolms.com>