Applying certificate authentication on the gRPC client and server
We have already established that on the server, security certificates are used for enabling TLS. That means a trusted certificate confirms to the client that it is safe to exchange keys with the server. This is how secure communication can be established between the client and the server.
But the same types of certificates can be used by clients too. However, their purpose is different from the server certificates. Client certificates are used for authentication. That means they are there to confirm that the client is allowed to access the server application.
To ensure that the client can be trusted, the certificate that the client shows to the server needs to be trusted by the server too. But this time, it's not necessary to get a CA involved to sign the certificate. For example, it is safe to use a certificate that has been issued by the server as the client certificate. The server will already trust it...