20.2.3. 配置 Netty Secure Sockets Layer (SSL)

Netty TCP 是一个简单的、非加密的基于 TCP 套接字的传输协议。Netty SSL 和 Netty TCP 类似,但通过 SSL 加密 TCP 连接提供了增强的安全性。下面的例子展示了单向 SSL 的 Netty 配置:

注意

下列参数大部分都既可以用于接收器也可以用于连接器。然而,一些参数只能用于接收器。参数描述解释了用于接收器和连接器间的区别。
<acceptors>
 <netty-acceptor name="netty" socket-binding="messaging"/>
   <param key="ssl-enabled" value="true"/>
   <param key="key-store-password" value="[keystore password]"/>
   <param key="key-store-path" value="[path to keystore file]"/>
 </netty-acceptor>
</acceptors>

表 20.2. Netty SSL 配置属性

属性名 默认值 描述
ssl-enabled true 这启用了 SSL
key-store-password [密钥库密码] 当用于接收器时,这是服务器端密钥库的密码。而用于连接器时,这是客户端密钥库的密码。如果您使用双向 SSL(也就是相互验证),它只和连接器相关。这个值可以在服务器上配置,但也可由客户端下载并使用。
key-store-path [密钥库文件的路径] 当用于接收器时,这是保存服务器信任的所有客户的密钥的服务器端 SSL 密钥库的路径。如果您使用双向 SSL(也就是相互验证),它只和接收器相关。而用于连接器时,这是保存客户端信任的所有服务器的公共密钥的客户端 SSL 密钥库的路径。用于连接器时,它是客户端信任库的密码。这个路径可以在服务器上配置,但也可由客户端下载并使用。
如果您在配置双向 SSL 的 Netty(服务器和客户端间的相互验证),除了上面单向 SSL 例子里描述的参数外,还有三个额外的参数:
  • need-client-auth:指定客户连接需要双向验证(相互验证)。
  • trust-store-password:当用于接收器时,这是服务器端信任库的密码。而用于连接器时,这是客户端信任库的密码。它和单向和双向 SSL 的连接器都是相关的。这个值可以在服务器上配置,但也可由客户端下载并使用。
  • trust-store-path:当用于接收器时,这是保存服务器信任的所有客户的密钥的服务器端 SSL 密钥库的路径。而用于连接器时,这是保存客户端信任的所有服务器的公共密钥的客户端 SSL 密钥库的路径。它和单向和双向 SSL 的连接器都是相关的。这个路径可以在服务器上配置,但也可由客户端下载并使用。