[ https://issues.apache.org/jira/browse/ZOOKEEPER-236?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15899664#comment-15899664 ]
Powell Molleti commented on ZOOKEEPER-236: ------------------------------------------ Hi Abe, I am more then happy to combine efforts and collaborate. I think the significant amount of work is testing which is what I am attempting to get it right in the Trunk patch which also has Netty support when compared to work on branch-3.5 (this patch). This patch has support for configuration of for Truststore. Hence if the admin provides a cert chain that contains the CA(s) or for that matter if the Truststore contains all the self signed certs it should also work. I did not do extensive testing for this in this branch (I did this for branch-3.4, hence I think it should work). Let me point you to the code and let me know if this can work or is what you are expecting: createSSLContext() calls always chain Trustmanagers via X509ChainedTrustManager class with Truststore manager first i.e ZKX509TrustManager class and dynamic trust verification via ZKPeerX509TrustManager class. Client side SSL socket creation: https://github.com/apache/zookeeper/pull/185/files#diff-74d86ae5e83698ad62aada32dcbe615eR53 Quorum server side SSL socket creation: https://github.com/apache/zookeeper/pull/185/files#diff-eb0052bc7ed160b8dee226f2ed1bdad2R51 I do think we need consensus here if there is need or want to support dynamic reconfiguration with SSL in a fault-tolerant way. By which I mean, if I understand correctly, both the operations of managing the certs (add/remove of certs) and reconfig() API to change members of a quorum have to be fault-tolerant. reconfig() is atomic hence no issue there. But then that leaves managing the certs for the Quorum which is a non trivial problem and there exists a solution I think that does need support in the guts of ZK. But I think we can simplify the orchestration of Zookeeper with SSL if it is SSL aware. CA seems like the best way and simple way to go till such a time arrises when the CA has to be changed. Also prevalent security considerations recommend revoking the cert of the Quorum member that is removed. Again how do we accomplish this in a fault-tolerant way. Hence there is some work still left to do in CA case. If we do not consider fault-tolerance for SSL config management or take a stance that ZK does not have to solve this for the admin then just providing a Truststore would suffice. Also regarding the path forward do you think we should aim for a Trunk patch or patch to 3.5?. Also should we split the effort two phases, first without Netty and then perhaps bring in Netty etc. Let me know if I got something wrong and what do you think about bringing in Netty support for Quorum communication. Cheers Powell. > SSL Support for Atomic Broadcast protocol > ----------------------------------------- > > Key: ZOOKEEPER-236 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-236 > Project: ZooKeeper > Issue Type: New Feature > Components: quorum, server > Reporter: Benjamin Reed > Assignee: Abraham Fine > Priority: Minor > > We should have the ability to use SSL to authenticate and encrypt the traffic > between ZooKeeper servers. For the most part this is a very easy change. We > would probably only want to support this for TCP based leader elections. -- This message was sent by Atlassian JIRA (v6.3.15#6346)