小编BWW*_*BWW的帖子

启用节点加密后,Cassandra节点无法看到对方

我已经建立了一个6节点的Cassandra集群,跨越两个AWS区域/数据中心(每个3个),一切正常.在做了那么多的工作后,我尝试启用节点加密,尽管我阅读了关于这个主题的无数文件并且无休止地摆弄,但我无法正常工作.

我没有在日志中看到任何错误或任何异常.我确实在日志中看到以下行,表明它已按预期启动了加密消息传递服务:

MessagingService.java:482 - Starting Encrypted Messaging Service on SSL port 7001
Run Code Online (Sandbox Code Playgroud)

我已启用SSL的详细日志记录cassandra-env.sh,但是,这不会产生任何有关我可以看到的SSL节点间连接的错误或其他信息(更新如下):

JVM_OPTS="$JVM_OPTS -Djavax.net.debug=ssl"
Run Code Online (Sandbox Code Playgroud)

可以使用加密消息传递端口7001从一个节点连接到所有其他节点nc,因此没有防火墙问题.

ubuntu@ip-5-6-7-8:~$ nc -v 1.2.3.4 7001
Connection to 1.2.3.4 7001 port [tcp/afs3-callback] succeeded!
Run Code Online (Sandbox Code Playgroud)

可以使用cqlsh(我没有启用客户端 - 服务器加密)本地连接到每个节点,并可以查询系统密钥空间等.

但是,如果我运行,nodetool status我看到节点无法看到对方.列表中仅显示我正在查询群集的节点.在启用节点加密之前不是这种情况,他们都可以看到对方就好了.

ubuntu@ip-5-6-7-8:~$ nodetool status
Datacenter: us-east_A
=====================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address        Load       Tokens       Owns    Host ID                               Rack
UN  1.2.3.4        144.75 KB  256          ?       992ae1bc-77e4-4ab1-a18f-4db62bb0ce6f  1b
Run Code Online (Sandbox Code Playgroud)

我的过程是这样的:

  • 为我的群集创建了证书颁发机构
  • 为每个节点创建了密钥库和信任库,并将我的CA证书链添加到两个节点
  • 为每个节点生成密钥对和CSR,与我的CA签名,并将生成的证书添加到每个节点的密钥库 …

encryption ssl cassandra

7
推荐指数
1
解决办法
870
查看次数

NSBundle PreferredLocalizations 不返回可用的最具体的本地化

我对特定文件有“en”和“en-AU”(澳大利亚英语)本地化。

虽然当前语言环境是“en_AU”,但[[NSBundle mainBundle] localizations]会生成我期望的本地化集:

( "en-AU", "en" )
Run Code Online (Sandbox Code Playgroud)

然而,[[NSBundle mainBundle] preferredLocalizations](真正重要的)只产生:

( "en" )
Run Code Online (Sandbox Code Playgroud)

为什么首选列表中完全省略了最具体的受支持本地化,而是返回了更通用的本地化?

有没有办法可以NSBundle优先考虑最精确的可用本地化而不是不太具体的选项?

localization ios

5
推荐指数
1
解决办法
5197
查看次数

标签 统计

cassandra ×1

encryption ×1

ios ×1

localization ×1

ssl ×1