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

Java 配置apache james 2.3.2以支持ssl时出错:NoSuchAlgorithmException,java,apache,ssl,james,Java,Apache,Ssl,James,我已经下载了ApacheJames2.3.2。目前,我只想让它在本地主机上使用ssl加密选项(但我对ssl知之甚少)。最初我设法让它运行,创建帐户(通过运行james-2.3.2/bin/run.bat)并使用mozilla thunderbird邮件客户端连接到这些帐户。当我试图创建一个自签名ssl证书时,麻烦就来了。我试过两种不同的方法 运行keytool-genkeypair将在中创建密钥库。密钥库 在我的主目录和 运行keytool-genkeypair-alias certificat

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

  • 运行keytool-genkeypair将在中创建密钥库。密钥库 在我的主目录和

  • 运行keytool-genkeypair-alias certificate-keystore my_keystore.pfx-storepass密码-有效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
    
    
    conf/my_keystore.pfx
    密码
    密码
    PKCS12
    TLS
    SHA256withRSA
    假的
    
    sunjce_provider.jar必须从JRE lib文件夹复制到James中的lib文件夹。如果算法标记保留为默认值,则James将接受.pfx文件。我在配置xml文件的注释中发现了这些信息