Dalla mia comprensione del dominio del problema, penso che non ci sia molto da discutere
- 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
fino ad ora la parte di firma del codice parte del certificato è finita, quindi passiamo al secondo problema
Can I use the code signing certificates for the server part as TLS
certificates
Come @steffen ha sottolineato l'estensione KEY USAGE
Affinché la tua installazione funzioni con le librerie standard di crittografia, avrai bisogno di due estensioni di utilizzo chiave per la tua configurazione
Encipherment chiave:
richiesto al server in modo che il client invii segretamente il materiale per la codifica al server
Firma digitale:
Se sono presenti queste estensioni è possibile utilizzare il certificato per la firma del codice e per il certificato lato server tls handshake
altrimenti se queste estensioni non sono presenti anche in questo caso, non c'è nulla di male nell'usare lo stesso certificato per TLS se si tiene la chiave privata al sicuro mantenendo il proprio computer sicuro. Crittograficamente questo non è il modo per dire che non è sicuro da usare.
verify the signer name instead of FQDN
Questo dipende anche da quanto accuratamente mappi l'entità e la relativa prova associata, che è anche molto semplice da ottenere nel tuo caso, in quanto devi mappare il codice identificativo dell'autore (mappalo con il numero di serie tramite il tuo codice software)