Security 保护动物园管理员,从哪里开始?
我想弄清楚我的选择是什么,我觉得很迷茫。Apache的程序员指南和管理员指南没有详细说明任何实质性内容。我的O'Reilly动物园管理员手册几乎没有提到安全性。。。我错过什么了吗?我希望能通过谷歌找到有关验证客户端连接、授权操作以及加密动物园管理员和客户端之间发送的消息的教程。我遇到了很多麻烦,但我找到了答案,底部的链接对我帮助很大 这个代码(使用策展人)很难理解:Security 保护动物园管理员,从哪里开始?,security,apache-zookeeper,Security,Apache Zookeeper,我想弄清楚我的选择是什么,我觉得很迷茫。Apache的程序员指南和管理员指南没有详细说明任何实质性内容。我的O'Reilly动物园管理员手册几乎没有提到安全性。。。我错过什么了吗?我希望能通过谷歌找到有关验证客户端连接、授权操作以及加密动物园管理员和客户端之间发送的消息的教程。我遇到了很多麻烦,但我找到了答案,底部的链接对我帮助很大 这个代码(使用策展人)很难理解: List<ACL> myAclList = new ArrayList<ACL>(); aclList.a
List<ACL> myAclList = new ArrayList<ACL>();
aclList.add(new ACL(ZooDefs.Perms.ALL, ZooDefs.Ids.AUTH_IDS));
client.create(withACL(myAclList)).forPath(myPath);
列表,自zookeeper版本3.5.4-beta以来,您可以启用使用客户端证书来保护与远程zookeeper服务器的通信:
客户端
ZooKeeper客户端可以通过设置Java系统属性来使用Netty:
zookeeper.clientCnxnSocket="org.apache.zookeeper.ClientCnxnSocketNetty"
zookeeper.client.secure=true
为了在客户端上进行安全通信,请设置以下Java系统属性:
zookeeper.clientCnxnSocket="org.apache.zookeeper.ClientCnxnSocketNetty"
zookeeper.client.secure=true
请注意,设置了“secure”属性后,客户端可以而且应该只连接到服务器的“secureClientPort”,稍后将对其进行描述
然后通过设置以下Java系统属性来设置密钥库和信任库环境:
zookeeper.ssl.keyStore.location="/path/to/your/keystore"
zookeeper.ssl.keyStore.password="keystore_password"
zookeeper.ssl.trustStore.location="/path/to/your/truststore"
zookeeper.ssl.trustStore.password="truststore_password"
服务器
ZooKeeper服务器可以通过设置以下Java系统属性来使用Netty:
zookeeper.serverCnxnFactory="org.apache.zookeeper.server.NettyServerCnxnFactory"
ZooKeeper服务器还需要提供侦听端口以接受安全的客户端连接。此端口不同于已知的“clientPort”,并与之并行运行。应在“zoo.cfg”中添加:
secureClientPort=2281
所有安全客户端(如上所述)都应连接到此端口
然后像客户端那样设置密钥库和信任库环境
更多信息请点击此处:
您是否在zk中启用了身份验证?你能告诉我更多的细节吗?它在windows服务器上工作吗?我按照你的描述做了,我得到了错误:2019-12-26 13:57:16381[myid:]-错误[main:ZooKeeperServerMain@66]-无效参数,异常退出java.lang.NumberFormatException:对于输入字符串:“E:\apache-zookeeper-3.5.6-bin\bin\..\conf\zoo.cfg”,位于java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)在java.lang.Integer.parseInt(Integer.java:580)处