错误配置apache james 2.3.2以支持ssl:NoSuchAlgorithmException

时间:2014-04-19 15:29:25

标签: java apache ssl james

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

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

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

  3. 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,但似乎没有任何效果。如果有人知道答案我会很高兴。此外,如果有人知道如何打开日志记录,所以我可以在日志文件中看到它也有帮助。

1 个答案:

答案 0 :(得分:1)

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