From my understanding of your problem domain , i think there is not much to discuss
- You gave a software package to your client
- client having a code signing certificate , client signs the code ( both parts client part(CL) and server part (SR))
- Client install the client part on his client machine (CLM) as it is signed by Trusted CA ( i assume ) CLM OS will trust it and will
get installed
- similarly the SR will be installed on the SRM i.e.. server machine
so far so good the code signing part of the certificate is over as of now , so lets move to your second problem
Can I use the code signing certificates for the server part as TLS
certificates
As @steffen pointed out about the extension KEY USAGE
For your setup to work with standard libraries of cryptography you will be needing two key usage extensions for your setup
Key Encipherment :
required at server end so that client will send keying material to server secretly
Digital Signature:
If these extensions are present that you can use the certificate for Code signing and for tls handshake server side certificate
else if these extensions are not present then too , there is no harm in using the same certificate for TLS as far as you are keeping your private key secure by keeping your machine secure . Cryptographically this is no way to say that it is insecure to use .
verify the signer name instead of FQDN
This is also up to you how accurately you map the entity and its associated proof , that is also very simple to achieve in your case , as you need to map code author identify ( map it with serial number via your software code )