Hoe een ServBay code-ondertekeningscertificaat aanvragen en gebruiken
Overzicht
Bij softwareontwikkeling en -distributie is code-ondertekening een essentiële stap om gebruikersvertrouwen en code-integriteit te waarborgen. Door code digitaal te ondertekenen kan de ontwikkelaar de herkomst van de software aantonen en verzekeren dat de code sinds het ondertekenen niet is gewijzigd.
ServBay biedt een handige functie waarmee ontwikkelaars in hun lokale omgeving eenvoudig code-ondertekeningscertificaten kunnen aanvragen bij een interne ServBay CA. Deze certificaten zijn vooral geschikt voor:
- Het ondertekenen van software tijdens lokale ontwikkeling of testrondes om echte ondertekeningsprocessen te simuleren.
- Het ondertekenen van interne scripts, tools of applicaties zodat deze binnen een team of vertrouwde omgeving gevalideerd kunnen worden op oorsprong en integriteit.
- Het leren en oefenen van het volledige proces van code-ondertekening zonder dat je dure commerciële code-ondertekeningscertificaten hoeft aan te schaffen.
Belangrijk: De code-ondertekeningscertificaten uitgegeven door de interne CA van ServBay zijn niet verstrekt door publieke vertrouwde certificaatautoriteiten (zoals Let's Encrypt, Comodo e.d.). Ze worden niet standaard vertrouwd door publieke besturingssystemen of browsers. Gebruik deze certificaten daarom niet in scenario’s waar openbare betrouwbaarheid vereist is, zoals commerciële software voor eindgebruikers, software voor app stores of toepassingen die controles van het besturingssysteem moeten doorstaan (zoals Gatekeeper-waarschuwingen op macOS voor onbekende ontwikkelaars). Ze zijn primair bedoeld voor lokale ontwikkeling, testen en gecontroleerde omgevingen.
Introductie tot code-ondertekeningscertificaten
Een code-ondertekeningscertificaat is een digitaal certificaat bedoeld om uitvoerbare bestanden, scripts, bibliotheken en andere softwarecode digitaal te ondertekenen. De belangrijkste functies hiervan zijn het opbouwen van vertrouwen en het waarborgen van veiligheid:
- Verifiëren van de identiteit van de software-uitgever: Het certificaat bevat informatie over de ontwikkelaar of uitgever. De digitale handtekening bewijst dat de software daadwerkelijk van de in het certificaat vermelde partij afkomstig is.
- Zorgen voor code-integriteit: Het ondertekeningsproces genereert een hash van de code die met de privésleutel wordt versleuteld. Bij verificatie berekent het systeem opnieuw de hash en vergelijkt deze met het uit de handtekening gehaald resultaat via de publieke sleutel. Als de code is aangepast, komt de hash niet meer overeen en mislukt de ondertekeningscontrole—dit wijst op manipulatie.
- Vertrouwen van gebruikers vergroten: Besturingssystemen of beveiligingssoftware geven vaak waarschuwingen over niet-ondertekende of van onbekende uitgevers afkomstige software. Met een code-ondertekeningscertificaat verdwijnen deze waarschuwingen (mits de CA wordt vertrouwd, of wanneer de ServBay CA handmatig aan de vertrouwensketen wordt toegevoegd), wat het vertrouwen tijdens installatie en gebruik verhoogt.
- Voorkomen van de verspreiding van malware: Code-ondertekening maakt het voor gebruikers gemakkelijker om legitieme van malafide software te onderscheiden, wat helpt bij het tegengaan van malwareverspreiding.
Een code-ondertekeningscertificaat aanvragen via ServBay
ServBay maakt het proces voor het verkrijgen van een code-ondertekeningscertificaat in je lokale omgeving eenvoudig.
Open het SSL-certificatenbeheer: Klik in de zijbalk van de ServBay-app op het menu-item "SSL Certificates".
Start een nieuw certificaataanvraag: Klik op de "+" (toevoegen) knop rechtsboven op de SSL-certificatenpagina.
Vul de certificaatgegevens in: In de "Request Certificate" (Certificaat aanvragen) pagina voer je de volgende gegevens in:
- Common Name (Algemene naam): Voer je bedrijfsnaam of persoonlijke naam in. Bijvoorbeeld:
ServBay, LLC
ofServBay Demo Developer
. - Usage Purpose (Doeleinde): Selecteer het gebruiksdoel van het certificaat. Kies hier
Code Signing
(Code-ondertekening). - Request Method (Aanvraagmethode): Selecteer de manier van uitgifte. Kies
ServBay CA
om gebruik te maken van de ingebouwde CA-functionaliteit van ServBay. - Issuer (Uitgever): Kies de interne ServBay CA die dit certificaat moet uitgeven. Meestal is dit
ServBay User CA
. - Algorithm (Algoritme): Kies het type cryptografisch algoritme voor de sleutelgeneratie, zoals
ECC
(Elliptische krommen) ofRSA
(Rivest-Shamir-Adleman). ECC is doorgaans veiliger en vereist kortere sleutels voor eenzelfde niveau van veiligheid. - Key Length (Sleutellengte): Kies de lengte van de sleutel voor het geselecteerde algoritme. Voor ECC bijvoorbeeld
384
; voor RSA bijvoorbeeld2048
of4096
. Langere sleutels bieden in het algemeen meer veiligheid, maar kunnen de verwerking iets vertragen. - Password (Wachtwoord): Zeer belangrijk! Stel een sterk wachtwoord in om je privésleutel te beveiligen. Dit wachtwoord is vereist bij het exporteren van het certificaat (.p12-bestand) en bij gebruik in ondertekeningstools. Zorg ervoor dat je dit wachtwoord onthoudt, want ServBay kan het niet herstellen als je het kwijt bent. Bedenk een uniek en veilig wachtwoord. (Let op: het wachtwoord
ServBay.dev
in de schermafbeelding is slechts een voorbeeld; gebruik dit niet in de praktijk! Maak je eigen veilige keuze.)
Voorbeeldafbeelding, vul in op basis van je eigen gegevens.
- Common Name (Algemene naam): Voer je bedrijfsnaam of persoonlijke naam in. Bijvoorbeeld:
Dien de certificaataanvraag in: Nadat alle gegevens correct zijn ingevuld, klik je onderaan de pagina op de knop "Request". ServBay laat de geselecteerde ServBay User CA vervolgens automatisch het code-ondertekeningscertificaat voor je uitgeven.
Certificaat Exporteren en Gebruiken
Na succesvolle aanvraag moet je het code-ondertekeningscertificaat exporteren naar een standaardformaat zodat je het met verschillende tools kunt gebruiken. Certificaten die door ServBay worden geëxporteerd zijn meestal .p12
-bestanden.
Ga naar het SSL-certificatenbeheer: Klik in de ServBay-zijbalk op "SSL Certificates".
Zoek je code-ondertekeningscertificaat: Zoek in de lijst het certificaat dat je net hebt aangevraagd, met als doeleinde "Code Signing".
Klik op de exportactie: Klik op het exporticoon naast het certificaat (meestal een pijl naar rechts).
Kies exportdirectory en stel een wachtwoord in: Kies in het exportvenster de lokale map waar je het certificaat wil opslaan. Het gehanteerde exportformaat is gewoonlijk
.p12
(PKCS#12). Dit bestand bevat zowel het code-ondertekeningscertificaat als de bijbehorende privésleutel en is daarom met een wachtwoord beveiligd. Je moet het wachtwoord gebruiken dat je bij de aanvraag hebt ingesteld om de export af te ronden.Gebruik het certificaat in code-ondertekeningstools: Importeer het geëxporteerde
.p12
-bestand in de betreffende code-ondertekeningstool. Verschillende besturingssystemen en ontwikkelomgevingen gebruiken hiervoor hun eigen tools:- macOS: Gebruik de ingebouwde
codesign
commandoregeltool. Importeer hiervoor het.p12
-bestand in Sleutelhangertoegang (Keychain Access). - Windows: Gebruik de
signtool.exe
uit de Windows SDK. Vaak moet je het.p12
-bestand eerst importeren in de certificaatbeheerder van Windows. - Overige platforms/tools: Raadpleeg de instructies van je specifieke tech-stack of bouwtool (zoals Java
jarsigner
, .NETSignTool
, Go-ondertekeningstools, enz). In alle gevallen heb je het pad naar het.p12
-bestand en het privésleutelwachtwoord nodig.
- macOS: Gebruik de ingebouwde
Na importeren kun je de certificaten gebruiken om je code, applicaties, drivers en meer digitaal te ondertekenen.
Voorbeeld: Code ondertekenen met een code-ondertekeningscertificaat (macOS)
Onderstaand voorbeeld laat zien hoe je op macOS met de tool codesign
en een via ServBay geëxporteerd .p12
-certificaat een eenvoudig binair bestand kunt ondertekenen en de ondertekening kunt verifiëren.
Stel dat je het door ServBay geëxporteerde .p12
-bestand al in Sleutelhangertoegang hebt geïmporteerd en het correcte wachtwoord hebt opgegeven.
bash
# 1. Maak een eenvoudig C-bronbestand aan om te testen met ondertekening
# Sla het volgende op als test.c
cat <<EOF > test.c
#include <stdio.h>
int main() {
printf("Hello, ServBay Code Signing!\n");
return 0;
}
EOF
# 2. Compileer het C-bestand met gcc tot een uitvoerbaar bestand
# -o /tmp/test geeft de uitvoernaam /tmp/test
gcc test.c -o /tmp/test
echo "Compilatie gelukt, /tmp/test aangemaakt"
# 3. Zoek de beschikbare ondertekeningsidentiteiten (Identity)
# -v toont extra informatie
# -p codesigning filtert identiteiten geschikt voor code-ondertekening
# Zoek de "Common Name" of hash van je geïmporteerde certificaat, bijv. 99C183BC3796067FAFBA6F232D1C3C3425DAABDA
security find-identity -v -p codesigning
# Voorbeeldoutput:
# 1) ABCDEF1234567890ABCDEF1234567890ABCDEF12 "Apple Development: Your Name (XYZ123)"
# 2) 99C183BC3796067FAFBA6F232D1C3C3425DAABDA "ServBay Demo Developer"
# 2 valid identities found
# Noteer de hash of "Common Name" ("ServBay Demo Developer") van je ServBay-certificaat
# 4. Onderteken het binaire bestand met het gevonden certificaat
# -f forceert de ondertekening (overschrijft oude indien aanwezig)
# -s geeft de ondertekeningsidentiteit op (hash of Common Name)
# --timestamp voegt tijdstempel toe (optioneel, aanbevolen voor geldigheid)
# /tmp/test is het te ondertekenen bestand
codesign -f -s "ServBay Demo Developer" --timestamp /tmp/test
# Of met hash:
# codesign -f -s "99C183BC3796067FAFBA6F232D1C3C3425DAABDA" --timestamp /tmp/test
echo "/tmp/test is ondertekend met het code-ondertekeningscertificaat"
# 5. Verifieer de ondertekening
# -dvvv toont zeer uitgebreide info
codesign -dvvv /tmp/test
# Controleer het veld "Authority", je moet je certificaatinfo en de ServBay CA-keten zien
# Let op "Signature size", "CDHash" en controleer de aanwezige "Timestamp"
# Deel van de voorbeeldoutput:
# Authority=ServBay Demo Developer
# Authority=ServBay User CA - ECC Code Signing
# Authority=ServBay Public CA - ECC Root
# Timestamp=Nov 7, 2024 at 18:26:48 (voorbeeld)
# 6. Wijzig de bestandinhoud om de ondertekening te verbreken
# Voeg willekeurige data toe, dit verandert de hash
echo "abcde" >> /tmp/test
echo "/tmp/test is aangepast"
# 7. Verifieer opnieuw de ondertekening
# De verificatie zou nu moeten mislukken
codesign -dvvv /tmp/test
# Voorbeeldoutput:
# /tmp/test: code object is not signed at all
# Of soortgelijke foutmeldingen, wat aangeeft dat de ondertekening niet langer rechtsgeldig is.
1
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
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
Toelichting:
security find-identity
toont alle certificaten in Sleutelhangertoegang die geschikt zijn voor bijvoorbeeldcodesigning
. Noteer de juiste identiteitsnaam of hash van het ServBay-certificaat.codesign -f -s "Jouw identiteit"
ondertekent het bestand. De optie--timestamp
koppelt een tijdstempel aan de handtekening, waardoor ondertekende bestanden ook geldig blijven na certificaatverloop, zolang het certificaat geldig was op het moment van ondertekenen.codesign -dvvv
geeft uitgebreide informatie ter validatie van de ondertekening, inclusief de certificaatketen en gehashte waarden.- Door het bestand aan te passen en opnieuw te controleren, demonstreer je de kernfunctie van code-ondertekening: integriteitscontrole. Elke wijziging maakt de handtekening ongeldig.
Certificaat verlengen (renewal)
Code-ondertekeningscertificaten uitgegeven door ServBay hebben een bepaalde geldigheidsduur (meestal 800 dagen). Voor het verlopen kun je het certificaat in het SSL-certificatenbeheer van ServBay eenvoudig verlengen.
- Open het SSL-certificatenbeheer.
- Zoek het certificaat dat je wilt verlengen.
- Klik op de verlengingsactie: Klik op het icoon voor verlengen (meestal een pijltje in een cirkel) naast het certificaat.
- Bevestig de verlenging: Na klikken wordt een nieuw certificaat uitgegeven met een geldigheid van opnieuw 800 dagen vanaf de verlengdatum.
Certificaat verwijderen
Als je een code-ondertekeningscertificaat niet meer gebruikt, kun je dit uit ServBay verwijderen.
- Open het SSL-certificatenbeheer.
- Zoek het te verwijderen certificaat.
- Klik op de verwijderactie: Klik op het prullenbakicoon naast het certificaat.
- Bevestig het verwijderen: Selecteer in het bevestigingsscherm "Delete" en bevestig de actie. Let op: Na verwijdering is het certificaat niet meer te herstellen.
Veelgestelde vragen (FAQ)
V: Zijn de code-ondertekeningscertificaten van ServBay gratis?
A: Ja, certificaten uitgegeven door de interne CA van ServBay zijn gratis en onderdeel van de ingebouwde functionaliteit.
V: Mag ik met een ServBay-certificaat mijn commerciële software ondertekenen en verspreiden?
A: Nee. Certificaten van ServBay worden uitgegeven door een interne CA en worden niet standaard vertrouwd door publieke besturingssystemen en app stores. Ze zijn alleen bedoeld voor lokale ontwikkeling, testen of gecontroleerde interne omgevingen. Commerciële software voor publieke distributie vereist een certificaat van een publiek vertrouwde autoriteit.
V: Wat als ik het wachtwoord van het geëxporteerde .p12
-bestand ben vergeten?
A: ServBay bewaart je privésleutelwachtwoord niet. Zonder het juiste wachtwoord kun je de privésleutel niet exporteren of gebruiken. Je moet het certificaat verwijderen en een nieuw aanvragen.
V: Kan ik de ServBay User CA toevoegen aan mijn besturingssysteem als vertrouwde CA?
A: Ja, meestal dien je het ServBay User CA-certificaat te exporteren en handmatig te importeren in de vertrouwde CA-opslag van je OS of browser.
Samenvatting
De code-ondertekeningscertificaten van ServBay bieden ontwikkelaars een gemakkelijke manier om software in een lokale omgeving te ondertekenen voor test- en interne doeleinden. In deze gids heb je geleerd hoe je een certificaat aanvraagt, exporteert en gebruikt binnen ServBay. Onthoud: deze certificaten zijn alleen bedoeld voor ontwikkeling en testen en mogen niet worden ingezet in situaties waar publieke betrouwbaarheid nodig is.
Mocht je tijdens het gebruik of aanvragen van certificaten problemen tegenkomen, raadpleeg dan de officiële documentatie van ServBay of zoek hulp binnen de community.