Meteen naar de inhoud

Certificaten voor 47 dagen komen eraan. Ben je er klaar voor?

Handel nu →

Apple-applicaties ondertekenen met Codesign Secure en onze Apple CSP

codesign Secure

Introductie 

De applicaties die u op uw Macintosh (Mac) gebruikt, zijn .app-applicaties. Applicaties die in de Mac App Store worden gebruikt, of gewoon op een Mac in het algemeen, moeten digitaal ondertekend zijn om door het besturingssysteem te kunnen worden gebruikt. Het ondertekenen van deze .app-bestanden door de iOS App Store of met uw eigen tools of codeondertekeningsplatform kan enige tijd in beslag nemen. Sterker nog, veel codeondertekeningsplatforms bieden niet de mogelijkheid om .app-bestanden op een Mac te ondertekenen. Wij van Encryption Consulting hebben het echter mogelijk gemaakt om deze .app-bestanden eenvoudig op uw Mac te ondertekenen. Met CodeSign Secure en onze Apple Signing CSP kunt u snel en efficiënt uw omgeving instellen om .app-bestanden gemakkelijk te ondertekenen.

Een Apple-applicatie ondertekenen met CodeSign Secure, in het kort: Installeer de ECCssProvider CSP op je Mac, authenticeer deze bij CodeSign Secure met een P12-clientcertificaat en voer vervolgens de volgende stappen uit. codesign -f -s <certificate hash> <path to .app, .dmg, .pkg, .ipa, or .mpkg>De privésleutel verlaat de HSM van CodeSign Secure nooit; de CSP vraagt ​​er alleen een handtekening van op.

Key Takeaways

  • In tegenstelling tot Windows, worden gangbare CA-rootketens niet standaard als vertrouwd meegeleverd bij macOS. Als u ondertekent met een OV/EV-certificaat, moet u de volledige certificaatketen zelf importeren in Sleutelhangertoegang, anders kan er met codeondertekening geen vertrouwde handtekening worden gemaakt.
  • Het codesign-commando identificeert het te gebruiken certificaat aan de hand van de SHA-1-hash, niet aan de hand van de naam. Controleer daarom altijd de hash via security export-smartcard voordat u ondertekent, in plaats van ervan uit te gaan dat de certificaatvolgorde niet is gewijzigd.

Omgevingsmatrix

Bestanddeeleis
leverancierECCssProvider (CodeSign Secure's Apple CSP), gedownload uit de sectie 'Ondertekeningstools'.
authenticatieHet P12-clientcertificaat, gegenereerd via CodeSign Secure's Gebruiker > Authenticatiecertificaat genereren, is geïmporteerd in de systeemsleutelbos.
CertificaatketenDe volledige OV/EV-keten moet worden geïmporteerd in Sleutelhangertoegang; macOS vertrouwt deze rootbestanden niet vooraf zoals Windows dat wel doet.
OndertekeningstoolApple's ingebouwde codeontwerpfunctie (onderdeel van Xcode Command Line Tools)
Ondersteunde bestandstypen.app, .dmg, .pkg, .ipa, .mpkg

Apple-ondertekening

Apple-applicaties zijn een onmisbaar onderdeel van elk macOS. Als je deze applicaties ontwikkelt om ze in de iOS App Store te plaatsen, moet je ervoor zorgen dat deze bestanden correct zijn ondertekend. Het zelf instellen van Apple Signing kan een ingewikkeld proces zijn, maar met de Apple Signing CSP van CodeSign Secure is het eenvoudig om de vereisten op je Mac in te stellen en met Apple Signing te beginnen. 

Configuratie voor Apple Signing

Het configureren van uw Mac voor onze Apple CSP is een zeer snel en eenvoudig proces. Een van de belangrijkste vereisten is dat u toegang moet hebben tot de webpagina van CodeSign Secure. Vanaf daar zijn het slechts een paar stappen om uw machine daadwerkelijk voor te bereiden op ondertekening. Laten we beginnen met de downloads van CodeSign Secure.

Voorwaarden: Zorg ervoor dat u een gebruikersnaam hebt en toegang tot de CodeSign Secure-webpagina.

Ga op de CodeSign Secure-webpagina naar de sectie 'Signing Tools' en download de EC Provider voor Mac.

co-designing ondertekeningstools

Pak het bestand uit en verplaats het naar de map Programma's. Start hier de applicatie ECCssProvider.

ECCssProvider-invoerpagina

Zorg ervoor dat je je CodeSign Secure URL, gebruikersnaam en code in de applicatie hebt ingevoerd en selecteer vervolgens vernieuwen.

ECCssProvider-detailspagina

De pagina zou nu de verschillende certificaten moeten weergeven waartoe u toegang hebt om te ondertekenen. Nu moeten we het P12-certificaat instellen voor toegang tot de server om te ondertekenen. Ga eerst naar de CodeSign Secure-webpagina en selecteer het gedeelte Instellingen. Selecteer vervolgens 'Gebruiker'. Selecteer ten slotte in het下拉菜单 aan de rechterkant 'Authenticatiecertificaat genereren'.

co-designing gebruikersbeheer

Voer de certificaatnaam, gebruikersnaam en vervaldatum van het P12-certificaat in en selecteer vervolgens de optie 'Genereer'. Er wordt een P12-certificaat gegenereerd en gedownload naar uw computer. Sla het wachtwoord van het certificaat en het certificaat zelf op.

codesigning genereer authenticatiecertificaat

Dubbelklik op het zojuist gedownloade P12-certificaat en open het met de toepassing 'Key Chain Access'. U wordt gevraagd om het beheerderswachtwoord en het certificaatwachtwoord in te voeren. Hiermee wordt het certificaat in uw systeem-sleutelhanger geplaatst.

sleutelhangertoegangscertificaten

Nadat u het authenticatiecertificaat in uw sleuteltoegangsketen hebt geplaatst, opent u de sleutel zelf. Ga naar Certificaten onder Systeem. Deze zou in de vervolgkeuzelijst van het authenticatiecertificaat moeten staan. Klik er met de rechtermuisknop op en selecteer 'Info ophalen'. Selecteer vervolgens 'Toegangscontrole' en sta toegang tot het certificaat toe met behulp van de ECCssProvider.app-applicatie. U moet uw computer waarschijnlijk opnieuw opstarten om te zien of de machtiging daadwerkelijk is gewijzigd.

sleutelhanger toegangssleutels
geïmporteerde privésleutel

Zorg er vervolgens voor dat u het volledige certificeringspad van het certificaat dat u gaat ondertekenen in uw Sleutelhangertoegang hebt. Mac-apparaten starten meestal niet met de bekende certificeringsketens zoals Windows-machines. Als u dus een OV/EV-certificaat gebruikt voor ondertekening, moet u die volledige certificeringsketen uploaden.

sleutelhangertoegangscertificaten

Nu moeten we de volgende opdracht uitvoeren: /Applications/ECCssProvider.app/Contents/macOS/ECCssProvider --batch --tlsclient <Auth Cert Name> . Met deze opdracht wordt het geüploade authenticatiecertificaat ingesteld als het TLS-authenticatiecertificaat bij het verbinden met de CodeSign Secure-server.

opdrachtvenster

Onze volgende opdracht is security export-smartcard -i com.encryptionconsulting.ECCssProvider.CssToken:ECCSS . Deze opdracht toont alle certificaten die in de ECCssProvider GUI worden weergegeven, inclusief details over die certificaten. Het belangrijkste detail dat we nodig hebben, is de SHA1-hash van het certificaat. We gebruiken die hash om te bepalen met welk certificaat we ondertekenen. De certificaten staan ​​in dezelfde volgorde als in de GUI.

opdrachtvenster

Tot slot voeren we ons codesign-commando uit: codesign -f -s <Hash van het certificaat voor ondertekening> <Applicatie of bestand dat moet worden ondertekend> . De vlag -f dient om oude handtekeningen op bestanden te overschrijven, en de vlag -s geeft aan wat we ondertekenen. Vervolgens geven we de hash van het certificaat dat we gebruiken en het pad naar het te ondertekenen bestand op.

Verificatie

Controleer na het ondertekenen of de handtekening correct is geplaatst voordat u het bestand verspreidt. Voer het volgende commando uit:

codesign --verify --verbose

Een succesvolle ondertekening meldt "geldig op schijf" en "voldoet aan de aangewezen vereisten". Om te bevestigen dat het bestand ook op een andere machine de Gatekeeper-beoordeling doorstaat, voert u het volgende commando uit:

spctl --assess --verbose

Dit rapport geeft aan of Gatekeeper het bestand accepteert op basis van de digitale handtekening en, voor notarieel bekrachtigde apps, het notarisbewijs.

Veel voorkomende fouten

Foutwaarschijnlijke oorzaakBepalen
Codesign meldt dat de identiteit niet vertrouwd is.De volledige OV/EV-certificaatketen is niet geïmporteerd in Sleutelhangertoegang.Importeer alle tussenliggende en rootcertificaten voor het ondertekeningscertificaat, niet alleen het bladcertificaat.
ECCssProvider staat niet vermeld als een toegestane toepassing voor de sleutel.De toegangscontrole voor het geïmporteerde P12-certificaat is niet bijgewerkt om ECCssProvider.app toe te staan.Controleer in Sleutelhangertoegang nogmaals de informatie over het certificaat via 'Info' > 'Toegangsbeheer' en herstart vervolgens de computer.
Er wordt een verkeerd certificaat gebruikt voor de ondertekening.De certificaatvolgorde in de GUI komt niet overeen met de veronderstelde SHA-1-hash.Voer de beveiligingsexport van de smartcard direct vóór het ondertekenen opnieuw uit om de huidige hash te bevestigen.

CI/CD-gebruik en -opruiming

Voor herhaaldelijk ondertekenen op een buildmachine kunt u de ondertekenings- en verificatiesequentie samen scripten, zodat een build direct mislukt als de verificatie niet slaagt, in plaats van een niet-geverifieerd artefact te verzenden. Omdat de privésleutel in de HSM van CodeSign Secure blijft, hoeft er achteraf geen ondertekeningssleutel van de buildagent te worden verwijderd; de enige lokaal aanwezige referentie is het P12-authenticatiecertificaat dat wordt gebruikt om verbinding te maken met de server. Dit certificaat moet uit Keychain Access worden verwijderd als de buildagent wordt gedeeld of buiten gebruik wordt gesteld.

Veelgestelde Vragen / FAQ

Waarom vereist macOS het importeren van de volledige certificaatketen, terwijl Windows dat niet vereist?

Windows wordt standaard geleverd met veel gangbare openbare CA-root- en tussenliggende certificaten die al in de certificaatopslag zijn opgeslagen. De sleutelbos van macOS vertrouwt deze set niet voor codeondertekening, dus een OV/EV-certificaatketen die op Windows "gewoon werkt" vereist dat de tussenliggende certificaten handmatig in de sleutelbos van macOS worden geïmporteerd.

Bevestigt codesign –verify dat de app de Gatekeeper-procedure doorstaat?

Niet helemaal. codesign –verify bevestigt dat de handtekening zelf geldig en ongewijzigd is. spctl –assess controleert het bredere Gatekeeper-beleid, inclusief de notariële status, wat een aparte vereiste is voor apps die buiten de Mac App Store worden gedistribueerd.

Conclusie

Zoals u ziet, is de configuratie voor deze Apple-ondertekening zeer eenvoudig, vooral als u in het verleden al verschillende soorten ondertekening met CodeSign Secure hebt ingesteld . Onze Apple CSP kan elk type Apple-bestand ondertekenen, inclusief .app-, .dmg-, .pkg-, .ipa- en .mpkg-bestanden. Meer gedetailleerde documentatie vindt u in het documentatiegedeelte van de CodeSign Secure-website. Als u vragen hebt, een demo wilt zien of een proof-of-concept wilt starten, kunt u contact opnemen via [email protected] of www.encryptionconsulting.com.