2014-04-19 26 views
0

我已經下載了apache james 2.3.2。目前我只想用ssl encyption讓它在localhost上工作(但我對ssl知之甚少)。最初,我設法讓它運行,創建帳戶(通過運行james-2.3.2/bin/run.bat)並使用mozilla thunderbird郵件客戶端連接到這些帳戶。當我嘗試創建一個自簽名ssl證書時,麻煩來了。我嘗試了兩種不同的方法。錯誤配置apache james 2.3.2以支持ssl:NoSuchAlgorithmException

  1. 運行密鑰工具-genkeypair我的主目錄中創建的.keystore 密鑰庫和

  2. 運行密鑰工具-genkeypair -alias證書-keystore my_keystore.pfx -storepass密碼 - validity 365 -keyalg RSA -keysize 2048 -storetype pkcs12my_keystore.pfx中創建密鑰庫。

詹姆斯2.3.2將接受的.keystore但雷鳥不會和Thunderbird將接受my_keystore.pfx但詹姆斯拋出異常。我認爲錯誤可能在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 

當我嘗試從批處理文件重新運行詹姆士一世得到NoSuchAlgorithException。曾嘗試使用算法標記allsorts而不是SHA256withRSA,但似乎沒有任何工作。如果有人知道答案我會很好。此外,如果有人知道如何打開日誌記錄,所以我可以在日誌文件中看到它也會有幫助。

回答

0

sunjce_provider.jar必須從JRE lib文件夾複製到James的lib文件夾中。如果算法標籤保留爲默認的SunX509,James將接受.pfx文件。我在config xml文件的註釋中發現了這個信息塊。