我已经下载了apache james 2.3.2。目前我只想通过ssl encyption使用localhost(但我对ssl知之甚少)。最初我设法让它运行,创建帐户(通过运行james-2.3.2 / bin / run.bat)并使用mozilla thunderbird邮件客户端连接到这些帐户。当我尝试创建自签名的ssl证书时出现问题。我尝试了两种不同的方法。
运行 keytool -genkeypair 会在 .keystore 中创建一个密钥库 在我的主目录和
运行 keytool -genkeypair -alias certificate -keystore my_keystore.pfx -storepass密码-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,但似乎没有任何效果。如果有人知道答案我会很高兴。此外,如果有人知道如何打开日志记录,所以我可以在日志文件中看到它也有帮助。
答案 0 :(得分:1)
sunjce_provider.jar 必须从JRE lib文件夹复制到James中的lib文件夹。如果算法标记保留为默认 SunX509 ,则James将接受.pfx文件。我在config xml文件的注释中发现了这个信息块。