YannickB / odoo-hosting

Other
64 stars 50 forks source link

[RFC] Certificate Authority #167

Open lasley opened 7 years ago

lasley commented 7 years ago

Alright now to another thing we're going to need as part of the ELK stack, and really just anything that needs internal authentication/encryption - a Certificate Authority.

This will be a fairly simple template, because it's all just OpenSSL. The more intricate part though, and why I'm raising this RFC, is an interface for our internal usage.

We should also possibly consider the LetsEncrypt logic that is embedded in the Proxy template. LetsEncrypt is a Cert Authority, so we should use whatever interface for this as well when generating the Proxy certs. It also breaks badly on non-public facing instances.

I didn't see any other cert logic, but we should also identify and consider if existing.

I propose the following modules:

Interface definitions (WIP):

clouder_base_ca:

clouder_base_ca_server:

clouder_base_ca_client:

YannickB commented 7 years ago

I agree with the design, but most of the functions shall be in the core module, and letsencrypt in proxy module. We shall not create specific module for this.

lasley commented 7 years ago

Why integrate most into core? We've gotten this far only having it in proxy & there's only a select set of applications that require the CA functionality, particularly in the server sense.

It does make sense to leave LetsEncrypt in proxy though, particularly with the way that the cert setup is intrinsically linked to a proxy server.

YannickB commented 7 years ago

Hum... If I understand your proposal, you'd like to create at least 5modules. I really believe it's too much and will confuse people looking at the module list.

Currently they see only core and then one module template for each application (except for invoicing/asynchronous/website which are pretty self explanatory). This is clear, I'd like to keep it that way. Maybe we can add one module to manage CA, but not more IMO.

lasley commented 7 years ago

Ok so based on your comments and reflections on what I see already, I'm going to simplify this. The modules were all being proposed to allow an abstract set of adapters to connect to the interface. The interface modules would have been in the "Hidden" category, which hides from Apps views. The adapter ones probably wouldn't even need to be classified as apps either because they were also depends.

Everywhere else here though, there is one open source project being chosen. It doesn't make sense to create this direction right now, given the direction that we're already in.

That said, I will make two modules - both "Hidden":