1

我已经下载了 apache james 2.3.2。目前我只想让它在 localhost 上使用 ssl 加密(但我对 ssl 知之甚少)。最初我设法让它运行,创建帐户(通过运行 james-2.3.2/bin/run.bat)并使用 mozilla 雷鸟邮件客户端连接到这些帐户。当我尝试创建自签名 ssl 证书时,问题就来了。我尝试了两种不同的方法。

  1. 运行keytool -genkeypair 在我的主目录中的.keystore中创建一个密钥库,并且

  2. 运行keytool -genkeypair -alias certificate -keystore my_keystore.pfx -storepass password -validty 365 -keyalg RSA -keysize 2048 -storetype pkcs12在my_keystore.pfx创建一个密钥库。

james-2.3.2 将接受.keystore但 Thunderbird 不会,而 Thunderbird 将接受my_keystore.pfx但 James 会抛出异常。我认为错误可能在james-2.3.2/apps/james/SAR-INF/conf.xml文件中。

<sockets>
  <server-sockets>
    <factory name="plain" class="org.apache.avalon.cornerstone.blocks.sockets.DefaultServerSocketFactory"/>
    <factory name="ssl" class="org.apache.avalon.cornerstone.blocks.sockets.TLSServerSocketFactory">
      <ssl-factory>
        <keystore>
          <file>conf/my_keystore.pfx</file>
          <password>password</password>
          <key-password>password</key-password>
          <type>PKCS12</type>
          <protocol>TLS</protocol>
          <algorithm>SHA256withRSA</algorithm>
          <authenticate-client>false</authenticate-client>
         </keystore>
       </ssl-factory>
     </factory>
   </server-sockets

当我尝试从批处理文件再次运行 james 时,我得到NoSuchAlgorithException。尝试使用 allsorts 作为算法标签而不是 SHA256withRSA,但似乎没有任何效果。如果有人知道答案,我会很高兴。另外,如果有人知道如何打开日志记录,那么我可以在日志文件中看到它,这也会很有帮助。

4

1 回答 1

1

sunjce_provider.jar必须从 JRE lib 文件夹复制到 James 中的 lib 文件夹。如果算法标签保留为默认SunX509,James 将接受 .pfx 文件。我在 config xml 文件的注释中发现了这些信息。

于 2014-04-21T10:59:04.553 回答