Hello Alberto, I'm not particularly knowledgeable on this subject so I might be missing something, but with Geode you can independently configure SSL for specific system components, can't you just use multiple alias to achieve your use case as described here [1]?.
*>> The situation is the following: when SSL is enabled, we would like to use multiple certificates in locators and servers: one certificate for communication inside one geographical site, and another for the communication happening between geographical sites. The approach we took is to use the default SSL context and implement our own Java Security Provider.* Here you would use *cluster *as the alias to configure the SSL settings used for communications within one geographical site, and *gateway *as the alias to configure the particular SSL settings to be used for communications across sites. Would that work for you?. Cheers. [1]: https://geode.apache.org/docs/guide/110/managing/security/implementing_ssl.html On Fri, Nov 1, 2019 at 1:37 PM Anthony Baker <aba...@pivotal.io> wrote: > Just checking, is anyone familiar enough with SSL to comment on the > proposed change? > > Anthony > > > > On Oct 29, 2019, at 2:44 AM, Mario Ivanac <mario.iva...@est.tech> wrote: > > > > Hi, > > > > We are trying to find a solution for an situation we have. Below is the > explanation of the issue, as well as a proposed way forward. We would > appreciate comments from the community regarding this approach. Also, > suggestions for a different approach to solve this issue would be welcome. > > > > The situation is the following: when SSL is enabled, we would like to > use multiple certificates in locators and servers: one certificate for > communication inside one geographical site, and another for the > communication happening between geographical sites. The approach we took is > to use the default SSL context and implement our own Java Security Provider. > > > > The client side can, from the security provider, easily distinguish > which certificate to use (just check if you are initiating a connection > towards an IP listed in gemfire.remote-locators). The thing we are missing > is a criteria based on which we can choose the certificate on the server > side of the connection. Explanation: Once the handshake starts, a > ClientHello message is sent from the peer acting as a client in that > connection (be it a geode server or a geode locator). When the ClientHello > is received on the server side, we can’t always read the real originating > IP (keeping the originating IP is sometimes not possible in cloud native > environments), so we can’t be sure whether the message originated from the > same geographical site or from another. We are left only with the > information inside the ClientHello message. The default ClientHello message > doesn’t contain information based on which we can conclude which site the > message came from and which certificate to use. > > > > Our proposal is to add the server_name extension in the ClientHello > message. The content of that extension would be the distributed system ID > of the site where the ClientHello originated. This way we could compare the > distributed system ID in the ClientHello message with the ID of the site > where the message is received. > > > > One issue with this approach is that the usage of the extension wouldn’t > be completely in line with the RFC< > https://tools.ietf.org/html/rfc6066#page-6> description: we would be > inserting client information instead of the targeted server name. Still, > since this extension is otherwise of no use in Geode, and this approach > doesn’t present a security risk (we would be sharing the distributed system > ID, which doesn’t look dangerous), we see this as a potential way to go. > > > > > > > > -- Ju@N