James 2.1 -使用TLS,创建邮件列表,RemoteManager的配置

这个文档解释了如何让James 2.1使用传输层安全协议(Transport Layer Security -TLS)加密客户端和服务器端的通信。
使James内部可以获得TLS/SSL服务器Sockets
James
使用Sun Java Secure Sockets Extension (JSSE)基础架构提供TLS/SSL sockets。有几个代理商的
Java发布文件都包括JSSE包(比如 Sun Java 1.4.x,、IBM Java
1.3.x)。对于这些发布文件,请遵照代理商提供的指导 配置JVM使用JSSE服务。
如果你使用的Java发布文件不包含JSSE,你需要再单独下载JSSE包。可以在这里 获得JSSE包。请遵照Sun的指示安装并配置JSSE。
在任何情况下,你都需要静态的定义JSSE TLS的提供者。通常就是默认你安装的那个JSSE。
安装完 JSSE后,需要配置James利用JSSE提供的功能。
证书密钥库
要在James内部使用TLS/SSL你还需要一个证书密钥库。
配置 Server Socket Factory
初始的配置文件中有一个SSL配置的模板。在sockets配置块的server-sockets元素下的注释中包含了一个名为 "ssl"的服务器Socket工厂元素。配置的第一步就是把注释标记去掉。
服务器Socket工厂元素包含几个子元素。 你仅仅有必要调整其中的两到三个子元素。
必需的file元素制定了工厂所用的密钥库的位置,它是一个Unix风格的文件路径。如果制定的不是绝对路径,那么它 就被认为是应用程序安装目录下的apps/james/子目录的相对路径。
password元素是证书库的密码。这个密码应该在创建证书库的时候制定,打开证书库时需要这个密码。这个值是必需的。
最后,还必须调整type元素。这个元素的值可以是JSSE提供者支持的任何密钥库类型(查看JSSE文档中的详细介绍)。 初始的配置是JKS (Java Keystore)。
其余的子元素不需要修改或删除。
配置使用TLS的服务
每个服务 – SMTP、 POP3、 NNTP和 RemoteManager – 都可以支持TLS。这些服务都有一个 可选的布尔类型配置元素useTLS。当这个值设为true时,服务就会用"ssl" 服务器socket工厂创建服务器socket连接。
验证使用TLS的James服务
在你为某个服务配置完成TLS/SSL连接后,这个服务端口应该不再接受不加密的TCP/IP连接。可以用 telnet直接连到该服务端口进行测试,telnet连接应该超时挂起。
为了证实这个服务端口能正确的接受SSL连接,需要一个SSL客户端和这个端口建立连接。 OpenSSL就一个这样的客户端,可以在OpenSSL 网站下载。 遵照SSL客户端的指示创建到服务端口的连接,连接成功后应该能够看到常用的服务问候。

RemoteManager受config.xml文件中的remotemanager配置块
控制。remotemanager标签定义了配置块的边界,它包含所有RemoteManager的相关配置。这个标签的属性或其子标签决定了
RemoteManager的行为。

这个标签有一个可选的布尔属性- enabled -定义了这个服务是否处于活动状态。如果该属性不存在,则取默认值“true”。

remotemanager的标准子标签是:

port – 可选的整型值,配置服务器在哪个端口上监听。如果这个标签或它的值被忽略了,则取默认的端口-4555。
bind – 可选值,描述绑定该服务的IP地址,是一个字符串值。 如果这个标签或它的值没有出现,则该服务将绑定到机器的所有网络接口。
useTLS
-可选的布尔值,如果其值为“true”,使用“ssl”服务器socket接口工厂为这个服务生成服务器socket连接。否则使用“plain”服务
器socket工厂。但无论该值为什么,如果配置文件中存在下面专家配置选项中所讨论的serverSocketType标签,该行为最终都由
serverSocketType标签的值决定。
handler – 这是一个保持向后兼容性的工艺品,它只是将一些相关的参数放到一组中。在将来的版本中这个标签应该会被去掉。
helloName
- 这是一个必需的标签,它的值定义了用于服务启动时的问候语中的服务器名,但它的值是可选的。这个标签可能会有一个可选的属性 -
autodetect。如果autodetect属性存在并且为“true”,则该服务会使用Java库返回的本地主机名。否则就使用该标签的值,在这种
情况下,如果标签的值不存在,那就会用“localhost”。
administrator_accounts
-必需的容器标签,包含一个或更多的administrator_account元素,每个元素都有login属性和password属性。这两个属性分
别对应可以管理员账号的登录id和密码。很明显,出于安全的原因,这些值应该在James安装完成后就进行设置。
connectionTimeout – 取值为非负整型值的可选标签。
remotemanager标签还有几个适用于高级配置的子标签。这些值仅供专家级的系统管理员使用,在这一组中的所有标签都是可选的。

serverSocketFactory – 取值为字符串值的可选标签,如果该标签存在,那它的值必须是一个在socket manager块中说明的服务器socket工厂的名字。其它任何值都将导致一个错误。另外,这个值会使useTLS标签失效。
threadGroup – 取值为字符串值的可选标签,如果该标签存在,那它的值必须是一个在thread manager块中说明的线程组的名字。其它任何值都将导致一个错误。这个标签最好用于在服务之间协调优化线程的分配。
connectionLimit
-
connectionLimit参数说明了该服务所允许的最大客户端连接。如果没有说明任何值,则默认为connectionmanager块中所定义的
值。0表示该服务不对打开的连接数进行任何限制,尽管其它组件(比如线程数的最大值)的资源限制可能会限制能够打开的连接数。




邮件列表mailet需要一个数据仓库来保存订阅者列表。每个邮件列表都有一个单独的数据仓库,并且完全独立于James用来管理e-mail账号的用户数据仓库。这在config.xml文件中的<users-store>配置块中。

你可能感兴趣的:(java)