Come Richiedere e Utilizzare il Certificato di Firma del Codice ServBay
Panoramica
Durante lo sviluppo e la distribuzione del software, la firma del codice è una fase cruciale per garantire la fiducia degli utenti e l’integrità del software. Firmare digitalmente il codice permette agli sviluppatori di dimostrare la provenienza del software e assicura che il codice non sia stato alterato dopo la firma.
ServBay offre una funzionalità pratica che consente agli sviluppatori di richiedere e utilizzare certificati di firma del codice emessi dalla CA interna di ServBay direttamente nell’ambiente locale. Questi certificati sono particolarmente indicati per:
- Firmare software nelle fasi di sviluppo o test locale, simulando il processo di firma reale.
- Firmare script, strumenti o applicazioni ad uso interno, consentendo la verifica di origine e integrità all’interno di team o in ambienti affidabili.
- Imparare e praticare l’intero processo di firma del codice senza dover acquistare costosi certificati di firma codice commerciali.
Nota importante: I certificati di firma del codice emessi tramite la CA interna di ServBay non sono rilasciati da Enti Certificatori pubblicamente riconosciuti (come Let's Encrypt, Comodo, ecc.). Non sono quindi considerati affidabili di default da sistemi operativi o browser pubblici. Di conseguenza, questi certificati non sono adatti a scenari che richiedono una fiducia pubblica, come la distribuzione di software commerciale agli utenti finali, la pubblicazione su app store o il superamento dei controlli di sicurezza dei sistemi operativi (come l’avviso per sviluppatori sconosciuti di macOS Gatekeeper). Sono destinati principalmente all’uso in sviluppo locale, test o ambienti controllati.
Introduzione ai Certificati di Firma del Codice
Un certificato di firma del codice è un certificato digitale utilizzato per firmare in modo digitale file eseguibili, script, librerie e altri tipi di codice software. I suoi scopi principali sono:
- Verifica dell’identità del publisher: Il certificato include informazioni sul pubblicatore; la firma digitale prova che il software proviene davvero dallo sviluppatore o dall’organizzazione indicata nel certificato.
- Garantire l’integrità del codice: Il processo di firma genera un valore hash basato sui contenuti del codice, criptato con la chiave privata. In fase di verifica, il sistema ricalcola l’hash e lo confronta con quello decodificato tramite la chiave pubblica contenuta nella firma. Qualsiasi modifica al codice fa sì che gli hash non corrispondano, invalidando la firma e segnalando una manomissione.
- Incrementare la fiducia degli utenti: Spesso, i sistemi operativi o gli strumenti di sicurezza mostrano avvisi di rischio per software non firmato o proveniente da publisher sconosciuti. L’uso di un certificato di firma aiuta ad eliminare questi avvisi (in ambienti affidabili, o quando la CA di ServBay viene aggiunta manualmente tra quelle fidate), aumentando la fiducia degli utenti nell’installazione e nell’uso del software.
- Prevenire la diffusione di malware: La firma del codice facilita la distinzione tra software autentico e programmi dannosi camuffati, aiutando a prevenire la diffusione di malware.
Come Richiedere un Certificato di Firma del Codice tramite ServBay
ServBay rende il processo di ottenimento di certificati di firma del codice locale semplice e veloce.
Apri il pannello di Gestione Certificati SSL: Nel menu laterale dell’applicazione ServBay, clicca su "SSL Certificates".
Crea una nuova richiesta di certificato: Nella pagina di gestione dei certificati, clicca sul pulsante "+" (Aggiungi) in alto a destra.
Compila le informazioni del certificato: Nella pagina "Request Certificate" dovrai inserire i seguenti dati principali:
- Common Name (Nome comune): Inserisci il nome della tua organizzazione o il tuo nome personale. Ad esempio:
ServBay, LLC
oppureServBay Demo Developer
. - Usage Purpose (Scopo): Seleziona l’uso del certificato. Scegli
Code Signing
(firma del codice). - Request Method (Metodo richiesta): Scegli il metodo di emissione. Seleziona
ServBay CA
per utilizzare la funzione CA interna di ServBay. - Issuer (Emittente): Seleziona la CA interna ServBay che firmerà il certificato. Di solito
ServBay User CA
. - Algorithm (Algoritmo): Seleziona l’algoritmo di cifratura per generare la coppia di chiavi. Le opzioni comuni sono
ECC
(Elliptic Curve Cryptography) oRSA
(Rivest-Shamir-Adleman). ECC offre di solito maggiore sicurezza con chiavi più corte a parità di robustezza. - Key Length (Lunghezza chiave): Seleziona la lunghezza della chiave per l’algoritmo scelto. Ad esempio, per ECC:
384
; per RSA:2048
o4096
. Chiavi più lunghe sono generalmente più sicure ma possono rallentare leggermente le operazioni. - Password: Estremamente importante! Imposta una password forte per proteggere la chiave privata del certificato. Questa password sarà necessaria sia per esportare il certificato (file
.p12
), sia per l’uso negli strumenti di firma codice. Annotala e conservala con cura: ServBay non può aiutarti a recuperare una password smarrita. Scegli una password personale e sicura. (Nota: Il “ServBay.dev” nello screenshot è solo un esempio, non usare password deboli – crea la tua personale e sicura).
Immagine di esempio: compila con i tuoi dati reali
- Common Name (Nome comune): Inserisci il nome della tua organizzazione o il tuo nome personale. Ad esempio:
Invia la richiesta di certificato: Una volta inserite tutte le informazioni e verificata la correttezza, clicca su "Request" in fondo alla pagina. ServBay rilascerà automaticamente il certificato utilizzando la ServBay User CA che hai selezionato.
Esportazione e Utilizzo del Certificato
Dopo aver ottenuto con successo il certificato di firma codice, dovrai esportarlo in un formato standard utilizzabile dai diversi strumenti di firma. Di norma, ServBay esporta il certificato in formato .p12
.
Accedi al pannello di Gestione Certificati SSL: Dal menu laterale di ServBay, clicca su "SSL Certificates".
Individua il tuo certificato di firma del codice: Nella lista dei certificati trova quello appena richiesto, con scopo "Code Signing".
Clicca sull’icona di esportazione: A destra dell'elemento corrispondente, clicca sull’icona di esportazione (di solito una freccia verso destra).
Scegli la cartella di destinazione e imposta la password: Nella finestra che si apre, seleziona la cartella locale dove salvare il file del certificato. Il formato di esportazione è solitamente
.p12
(PKCS#12). Questo file include sia il certificato sia la corrispondente chiave privata, ed è quindi protetto da password. Dovrai inserire la password scelta in fase di richiesta per completare l’esportazione.Utilizza il certificato negli strumenti di firma codice: Importa il file
.p12
ottenuto nello strumento di firma più adatto al tuo ambiente. A seconda del sistema operativo e degli ambienti di sviluppo potrai usare:- macOS: Utilizza il comando
codesign
di macOS. Potrebbe essere necessario prima importare il file.p12
in "Accesso Portachiavi" (Keychain Access) su macOS. - Windows: Utilizza lo strumento a riga di comando
signtool.exe
disponibile nel Windows SDK. Potrebbe essere necessario importare il file.p12
anche nel gestore certificati di Windows. - Altre piattaforme/strumenti: In base al tuo stack tecnologico e agli strumenti di compilazione (come
jarsigner
per Java,SignTool
per .NET, tool di terze parti per Go, ecc.), consulta la documentazione specifica per le procedure di importazione e firma. In genere sarà richiesto il percorso del file.p12
e la password della chiave privata.
- macOS: Utilizza il comando
Dopo l’importazione potrai firmare digitalmente codice, applicazioni, driver e altro utilizzando il certificato ottenuto.
Esempio di Firma del Codice con Certificato ServBay (macOS)
Questo esempio mostra come utilizzare lo strumento codesign
di macOS insieme a un certificato .p12
esportato da ServBay per firmare e verificare un semplice file binario.
Si presume che tu abbia già importato il file .p12
tramite “Accesso Portachiavi” e inserito la password corretta.
# 1. Crea un semplice file sorgente C per testare la firma
# Salva quanto segue in test.c
cat <<EOF > test.c
#include <stdio.h>
int main() {
printf("Hello, ServBay Code Signing!\n");
return 0;
}
EOF
# 2. Compila il file C in un eseguibile binario
# -o /tmp/test indica il percorso di output
gcc test.c -o /tmp/test
echo "Compilazione riuscita, generato /tmp/test"
# 3. Trova l’identità del certificato disponibile per la firma del codice
# -v mostra dettagli aggiuntivi
# -p codesigning filtra i certificati utilizzabili per signing codice
# Individua il "Common Name" o l’hash del tuo certificato (ad es. 99C183BC3796067FAFBA6F232D1C3C3425DAABDA)
security find-identity -v -p codesigning
# Output esemplificativo:
# 1) ABCDEF1234567890ABCDEF1234567890ABCDEF12 "Apple Development: Your Name (XYZ123)"
# 2) 99C183BC3796067FAFBA6F232D1C3C3425DAABDA "ServBay Demo Developer"
# 2 valid identities found
# Prendi nota dell’hash o del nome comune del certificato ServBay ("ServBay Demo Developer")
# 4. Firma il file binario con il certificato trovato
# -f forza la firma (sovrascrive se già firmato)
# -s specifica l’identità (hash o Common Name)
# --timestamp aggiunge un timestamp (opzionale ma consigliato)
# /tmp/test è il percorso del file da firmare
codesign -f -s "ServBay Demo Developer" --timestamp /tmp/test
# Oppure tramite hash:
# codesign -f -s "99C183BC3796067FAFBA6F232D1C3C3425DAABDA" --timestamp /tmp/test
echo "/tmp/test firmato con successo con il certificato di firma del codice"
# 5. Verifica correttezza della firma
# -dvvv visualizza dettagli completi della firma
codesign -dvvv /tmp/test
# Controlla il campo "Authority" per vedere info del certificato e della CA ServBay
# Controlla "Signature size" e "CDHash" per assicurarti che il file sia firmato
# Verifica la presenza del "Timestamp"
# Possibile output di verifica:
# Authority=ServBay Demo Developer
# Authority=ServBay User CA - ECC Code Signing
# Authority=ServBay Public CA - ECC Root
# Timestamp=7 Nov 2024 at 18:26:48 (data di esempio)
# 6. Modifica il file, invalidando la firma
# Scrivere dati casuali nel file cambia l’hash e rende invalida la firma
echo "abcde" >> /tmp/test
echo "Contenuto di /tmp/test modificato"
# 7. Verifica di nuovo la firma
# Ora la verifica fallirà
codesign -dvvv /tmp/test
# Esempio output:
# /tmp/test: code object is not signed at all
# O errore simile, segnalando che la firma non è più valida perché il file è cambiato.
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Note:
security find-identity
elenca i certificati in "Accesso Portachiavi" utilizzabili per specifici fini, comecodesigning
. Individua l’identificativo collegato al tuo certificato ServBay (di solito Common Name o hash).- Il comando
codesign -f -s "Your Identity"
esegue la firma vera e propria. L’opzione--timestamp
aggiunge un marcatore temporale tramite un server apposito; in questo modo, anche se il certificato dovesse scadere, la firma rimane valida (a patto che il timestamp sia valido e il certificato fosse valido durante la firma). codesign -dvvv
offre una verifica approfondita della firma. Controlla validità, catena di fiducia, e l’integrità del file rispetto al momento della firma.- L’ultimo passaggio (modifica e verifica) dimostra la funzione chiave della firma: controllo d’integrità. Qualunque variazione al file invalida la firma.
Rinnovo del Certificato
I certificati di firma del codice rilasciati da ServBay hanno una validità limitata (solitamente 800 giorni). Prima della scadenza, puoi rinnovarli dal pannello gestione certificati SSL di ServBay.
- Accedi al pannello di Gestione Certificati SSL.
- Individua il certificato di firma da rinnovare.
- Clicca sull’icona di rinnovo: Sulla destra del certificato, clicca sull’icona di rinnovo (di solito una freccia circolare).
- Conferma il rinnovo: Dopo aver confermato, ServBay genererà un nuovo certificato con validità di 800 giorni a partire dalla data corrente.
Eliminazione di un Certificato
Se non hai più bisogno di un certificato di firma del codice, puoi eliminarlo da ServBay.
- Accedi al pannello di Gestione Certificati SSL.
- Individua il certificato che desideri eliminare.
- Clicca sull’icona del cestino: A destra del certificato, clicca sull’icona del cestino.
- Conferma eliminazione: Nel menu di conferma, seleziona "Delete" e conferma di nuovo l’operazione. Attenzione: l’eliminazione è irreversibile.
Domande Frequenti (FAQ)
D: I certificati di firma del codice emessi da ServBay sono gratuiti?
R: Sì, i certificati emessi dalla CA interna di ServBay sono una funzionalità inclusa, senza costi aggiuntivi.
D: Posso firmare e distribuire software commerciale con il certificato ServBay?
R: No. I certificati rilasciati da ServBay derivano da una CA interna e non sono riconosciuti di default dai sistemi operativi o dagli store software. Sono destinati esclusivamente ad ambienti di sviluppo, test o uso interno controllato. Per la distribuzione pubblica di software commerciale serve acquistare un certificato da una CA riconosciuta pubblicamente.
D: Cosa succede se dimentico la password impostata per esportare il file .p12
?
R: ServBay non memorizza la password della tua chiave privata. Se la dimentichi, non sarà possibile esportare o usare la chiave privata di quel certificato. Dovrai eliminare il certificato e richiederne uno nuovo.
D: Posso aggiungere la ServBay User CA all’archivio fidato del mio sistema operativo?
R: Sì, puoi esportare il certificato ServBay User CA e importarlo manualmente nell’archivio delle CA fidate del tuo sistema operativo o browser.
Conclusioni
La funzione di certificati di firma del codice di ServBay offre agli sviluppatori una soluzione comoda per firmare e testare software e strumenti interni in ambiente locale. Seguendo questa guida, ora sai come richiedere, esportare e utilizzare questi certificati nel flusso di lavoro di ServBay. Ricorda che sono pensati principalmente per sviluppo e test e non per scenari che richiedono affidabilità pubblica.
Per qualsiasi problema riscontrato durante la richiesta o utilizzo, consulta la documentazione ufficiale di ServBay oppure richiedi supporto alla community.