I am looking to expand trust within our application by setting up mutual TLS between the customer service and our service. I am trying to wrap my head around this stuff as I am kinda new to this tech so would like to confirm my approach.
I am thinking of asking the customer for their Domain-validated certificate. I will then cross-sign it with our own intermediate CA (AWS private CA) and generate a leaf certificate which they will use for requests.
On the handshake with our server I want validate that they are a company/domain allowed to interact with our services (validate their DV cert). Also, since I cross sign with our CA I can revoke their access if needed. So basically I validate those two things.
Is this best practice for this sort of thing? Will the customer need to provide me with a new certificate every year when it expires? Will I have any problems cross signing their DV cert with my intermediate CA?
Extra information:
I want there to be a real-time set-up of a trusted encrypted session. So I want the client (which will be the customer server) to send a certificate (which we provide) to our service.
I'm trying to build a trust network in which I can onboard new users and ensure they are trusted entities (hence the DV cert part)
Maybe I don't have my own private CA and, instead, use a commercial CA instead.