使用Apache James实现客户端身份验证

时间:2011-07-19 13:05:26

标签: java apache ssl x509 james

我使用Apache james作为邮件服务器,我需要使用X509证书实现客户端和服务器端身份验证。

服务器端非常简单,只需要在config.xml中进行配置 - 但是clientauth怎么样?

是否有一种通过配置实现此功能的简单方法? 在config.xml的sockets-Area中,我可以将authenticate-client设置为true,但是James wiki说我只允许在keystore-section下提供的密钥库中只放置一个证书:

 <factory name="ssl" class="org.apache.avalon.cornerstone.blocks.sockets.TLSServerSocketFactory">
        <authenticate-client>true</authenticate-client>
        <ssl-factory>
           <keystore>
              <file>conf/@KEYSTORE_FILENAME@</file>
              <password>@KEYSTORE_PASSWORD@</password>
              <key-password>@PRIVATEKEY_PASSWORD@</key-password>
              <type>JKS</type>
              <protocol>TLS</protocol>
              <algorithm>SunX509</algorithm>
           </keystore>
        </ssl-factory>
     </factory>

因此,如果您有关于如何执行此操作的建议或了解处理此问题的教程,我将非常感谢您分享它。

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您愿意,可以将所有证书放入密钥库。但是因为我需要明确地关注密钥和信任库,所以我改变了詹姆斯的来源,这是可能的。

不幸的是,没有更简单的方法可以做到这一点。