java - 配置 apache james 2.3.2 以支持 ssl : NoSuchAlgorithmException 时出错

标签 java apache ssl james

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

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

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

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

最佳答案

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

关于java - 配置 apache james 2.3.2 以支持 ssl : NoSuchAlgorithmException 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23171901/

相关文章:

java - 使用 "this.xxx"指向字段时有性能差异吗?

java - 如何从监听器委托(delegate)可运行的代码?

java - QuickFIX/J CA 证书验证

rest - 在 Flask Peewee 中使用 SSL 证书

java - Java中如何将对象属性值赋给变量?

Java:泛型类型

apache - windows7安装phonegap报错

mysql - 无法使用 HTTP apache 服务器授权登录 gerrit

使用 ProxyPass 后 apache 请求非常慢

ssl - gevent SSL with godaddy error : ssl. SSLError : [SSL: SSLV3_ALERT_CERTIFICATE_UNKNOWN] sslv3 alert certificate unknown (_ssl. c:1051)