Hoppa till innehåll

47-dagarscertifikaten är på väg. Är du redo?

Agera nu →

Signera XML-filer med XMLSec-verktyget med hjälp av PKCS#11-biblioteket

Signera xml-filer med xmlsec-verktyget

Publicerad: december 2024 | Uppdaterad: augusti 2026

Att signera XML-filer med XMLSec och PKCS#11 innebär att man använder kommandoradsverktyget xmlsectool med öppen källkod för att tillämpa en digital signatur på ett XML-dokument medan den privata nyckeln finns kvar i en hårdvarusäkerhetsmodul eller token. EC:s PKCS#11-omslag låter xmlsectool kommunicera med HSM, så att nyckeln aldrig lämnar certifierad hårdvara.

Den globala datavolymen fortsätter att öka tillräckligt snabbt för att göra manuell förtroendeverifiering opraktisk i stor skala: IDC:s Global DataSphere Forecast, 2026-2030 (publicerad juni 2026) förutspår att världens data kommer att överstiga 700 zettabyte (ZB) år 2030. För att förstå det bättre motsvarar en zettabyte en biljon gigabyte (GB). Merparten av denna data är ostrukturerad och behöver något som ger den mening. Det är här XML-filer kommer in i bilden.

eXtensible Markup Language eller XML är ett markupspråk som etablerar regler och organiserar all data. Det anger också hur data ska lagras och transporteras över internet. XML använder markupsymboler eller taggar, som moderna webbläsare och databehandlingsprogram använder för att bearbeta informationen.

XML-signering

XML-filer används i stort antal, vilket gör dem till en integrerad del av våra webbaserade applikationer och vår teknik. Men ska man lita på en XML-fil? Hur kan man utveckla förtroende för XML-filens äkthet? Du behöver ett digitalt bevis eller en signatur för att autentisera och verifiera dess källa.

XML-signering hjälper dig att bifoga dina digitala inloggningsuppgifter, vilket hjälper mottagaren att lita fullt ut på filens innehåll. För att förenkla processen tillhandahåller Encryption Consulting PKCS#11 Wrapper, ett programvarubibliotek som tillhandahåller ett Java-gränssnitt för att interagera med PKCS#11-kompatibla enheter som Hardware Security Modules (HSM) , smartkort eller andra nyckelvalv.

Tillsammans med PKCS#11 Wrapper kommer vi att använda XMLSec-verktyget, ett kommandoradsverktyg för att signera, verifiera, kryptera och dekryptera XML-dokument.

Ubuntu vs. macOS: Snabb jämförelse

Den här guiden täcker Ubuntu och macOS; en Windows-installation är för närvarande inte dokumenterad för det här verktyget. Så här skiljer sig de två konfigurationerna som stöds åt i korthet.

AspectubuntuMacOS
Testad OS-versionubuntu 24.02macOS 15.1 Sequoia
Wrapper-beroendenliblog4cxx12, curl (benägen)liblog4cxx, curl (Hemmabryggt)
Java-distributionAmazon Corretto 17 via apt repoAmazon Corretto 17 via .pkg installationsprogram
Shell-konfiguration för JAVA_HOME~/.bashrc~/.zshrc
XMLSec-verktygskällashibboleth.net (xmlsectool-3.0.0-bin.zip)shibboleth.net (xmlsectool-3.0.0-bin.zip)

Konfiguration av PKCS#11 Wrapper på Ubuntu

Förutsättningar

Innan vi tittar på processen för XML-signering med XMLSec Tool och vår PKCS11 Wrapper i Linux (Ubuntu) maskin, se till att följande är klart:

  • Ubuntu-version: Ubuntu version 22.04 eller senare (testmiljön är Ubuntu 24.02)  
  • beroenden: Installera liblog4cxx12 och curl. 

För att installera beroendena, kör följande kommandon

  • sudo apt-get installera curl 
  • sudo apt-get install liblog4cxx12 

Installera EC:s PKCS#11-omslag 

Steg 1: Gå till avsnittet Signeringsverktyg i EC CodeSign Secures v3.02 och ladda ner PKCS#11 Wrapper för Ubuntu.

Ladda ner PKCS#11 från Codesign Secure

Steg 2: Generera sedan ett P12-autentiseringscertifikat från rullgardinsmenyn Systeminställningar > Användare > Generera autentiseringscertifikat.

Generera P12-certifikat

Steg 3: Gå till ditt Ubuntu-klientsystem och redigera konfigurationsfilerna ( ec_PKCS#11client.ini och PKCS#11properties.cfg ) som laddats ner i PKCS#11 Wrapper.

Redigera konfigurationsfiler på Ubuntu

Installera XMLSec-verktyget

Steg 1: Installera den senaste versionen av XMLSec Tool (xmlsectool-3.0.0-bin.zip) med hjälp av den här länken.

Ladda ner senaste XMLsec

Steg 2: Du kan extrahera zip-filen till en valfri katalog.

Extrahera zippad XMLsec

Ladda ner och installera Java på din Ubuntu-maskin.

Steg 1: Ladda ner Amazon Corretto 17 Java (Du kan kontrollera andra Java-versioner som stöds med XMLSec Tool här. )

wget -O – https://apt.corretto.aws/corretto.key | sudo gpg –dearmor -o /usr/share/keyrings/corretto-keyring.gpg && \ echo “deb [signed-by=/usr/share/keyrings/corretto-keyring.gpg] https://apt.corretto.aws stable main” | sudo tee /etc/apt/sources.list.d/corretto.list

Steg 2: Installera Java-paketet

sudo apt-get update; sudo apt-get install -y java-17-amazon-corretto-jdk 

Steg 3: Kontrollera om Java har installerats korrekt eller inte 

java -version

Kontrollera Java-versionen

Lägg till Java till miljövariabel 

Steg 1: Ställ in Amazon Corretto 17 Java som aktiv version 

uppdateringsalternativ –konfiguration java

ställ in corretto17 java

Steg 2: Lägg till variabeln "JAVA_HOME" i filen ~/.bashrc 

echo “exportera JAVA_HOME=/usr/lib/jvm/java-17-amazon-corretto” >> ~/.bashrc

Lägg till Java-startvariabel

Steg 3: Kontrollera ~/.bashrc-filen 

svans -3 ~/.bashrc 

Kontrollera BashRc-filen

Steg 4: Ladda om miljövariablerna 

källa ~ / .bashrc 

Ladda om miljövariabler

Steg 5: Kontrollera JAVA_HOME-variabelns värde 

echo $JAVA_HOME 

Kontrollera Java-startvariabeln

Signering 

Steg 1: Ändra terminalens arbetskatalog till den mapp som innehåller din fil "ec_pkcs11client.ini".

Ändra arbetskatalog

Steg 2: Kör signeringskommandot från den här katalogen. 

–signera –pkcs11Konfigurera –nyckelAlias –nyckellösenord INGET –ifil –utfil 

Ett exempelkommando ges nedan:

../xmlsectool-3.0.0-bin/xmlsectool-3.0.0/xmlsectool.sh –sign –pkcs11Config pkcs11properties.cfg –keyAlias ​​DemoCertificate –keyPassword INGA –inFile ../xmlSample.xml –outFile ../out-xmlSample.xml 

Verifiering 

Kör verifieringskommandot

–verifieraSignatur –pkcs11Konfiguration –nyckelAlias –nyckellösenord INGET –ifil 

Ett exempelkommando ges nedan: 

../xmlsectool-3.0.0-bin/xmlsectool-3.0.0/xmlsectool.sh –verifySignature –pkcs11Config pkcs11properties.cfg –keyAlias ​​gpg2 –keyPassword INGEN –inFile ../out-sample.xml 

Lösning för företagskodsignering

Få en lösning för alla dina behov av kodsignering och kryptografi för mjukvara med vår kodsigneringslösning.

Konfiguration av PKCS#11 Wrapper på MacOS

Förutsättningar 

Innan vi tittar på processen för XML-signering med XMLSec Tool och vår PKCS#11 Wrapper i MacOS-maskiner, se till att följande är klart: 

  • MacOS-version: MacOS version 13 (Ventura) eller senare (testmiljön är MacOS 15.1 Sequoia)  
  • beroenden: Installera liblog4cxx och curl.  

För att installera beroendena, kör följande kommandon 

  • brygginstallationslog4cxx 
  • brygga installera curl 

Installera EC:s PKCS#11-omslag

Steg 1: Gå till avsnittet Signeringsverktyg i EC CodeSign Secures v3.02 och ladda ner PKCS#11 Wrapper för Mac.

Ladda ner PKCS#11 för Mac

Steg 2: Generera sedan ett P12-autentiseringscertifikat från rullgardinsmenyn Systeminställningar > Användare > Generera autentiseringscertifikat.

Generera P12-certifikat

Steg 3: Gå till ditt MacOS-klientsystem och redigera konfigurationsfilerna ( ec_PKCS#11client.ini och PKCS#11properties.cfg ) som laddats ner i PKCS#11 Wrapper.

Redigera konfigurationsfilen

Installera XMLSec-verktyget

Steg 1: Ladda ner den senaste versionen av XMLSec Tool (xmlsectool-3.0.0-bin.zip) med hjälp av den här länken.

Installera XMLsec-verktyget

Du behöver den här shell-filen för att utföra XML-signeringen

XMLsectool.sh-filen efter nedladdning

Ladda ner och installera Java på din MacOS-maskin.

Steg 1: Ladda ner Amazon Corretto 17 Java (Du kan kontrollera andra Java-versioner som stöds med XMLSec Tool här ).

Du kan använda den här länken för att ladda ner .pkg-filen för MacOS-miljön

Steg 2: Installera Java-paketet 

Börja installationen med den nedladdade filen. 

Installera XMLsectool

Steg 3: Kontrollera om Java har installerats korrekt eller inte

java -version 

Kontrollera Java-versionen

Lägg till Java till miljövariabel 

Steg 1: Hämta den fullständiga installationssökvägen för Amazon Corretto 17 Java

/usr/libexec/java_home –verbose

Hämta den fullständiga installationssökvägen för Corretto 17

Steg 2: Lägg till variabeln “JAVA_HOME” i filen ~/.zshrc 

echo 'exportera JAVA_HOME="/Bibliotek/Java/JavaVirtualMachines/amazon-corretto-17.jdk/Innehåll/Hem"' >> ~/.zshrc 

Lägg till Java-startvariabel

Steg 3: Ladda om miljövariablerna 

källa ~/.zshrc 

Ladda om miljövariabeln

Steg 4: Kontrollera JAVA_HOME-variabelns värde 

echo $JAVA_HOME 

Kontrollera Java-startvariabeln

Signering

Steg 1: Ändra terminalens arbetskatalog till den mapp som innehåller din fil "ec_pkcs11client.ini".

Ändra arbetskatalog

Steg 2: Kör signeringskommandot från den här katalogen. 

–signera –pkcs11Konfigurera –nyckelAlias –nyckellösenord INGET –ifil –utfil 

Ett exempelkommando ges nedan: 

../xmlsectool-3.0.0/xmlsectool.sh –sign –pkcs11Config pkcs11properties.cfg –keyAlias ​​DemoCertificate –keyPassword INGA –inFile ../xmlSample.xml –outFile ../SignedSample.xml 

Verifiering 

Kör verifieringskommandot

–verifieraSignatur –pkcs11Konfiguration –nyckelAlias –nyckellösenord INGET –ifil 

Ett exempelkommando ges nedan: 

../xmlsectool-3.0.0/xmlsectool.sh –verifySignature –pkcs11Config pkcs11properties.cfg –keyAlias ​​gpg2 –keyPassword INGA –inFile ../Signedsample.xml 

Lösning för företagskodsignering

Få en lösning för alla dina behov av kodsignering och kryptografi för mjukvara med vår kodsigneringslösning.

Slutsats 

Med ostrukturerad data på uppgång är XML-dokumentsignering ett måste. Den sömlösa integrationen av vår PKCS#11 Wrapper och XMLSec-verktyget erbjuder en flexibel och effektiv lösning för XML-dokumentsignering.

Med Encryption Consultings CodeSign Secure- lösning kan du bygga upp och öka ditt kundförtroende. Den erbjuder funktioner som klientsidig hashning, rollbaserad åtkomst och applikationshantering för att säkra dina data. Den låter dig integrera olika DevOps CI/CD- pipelines för handsfree, automatiserad kodsignering. Det rollbaserade, HSM-stödda skyddet är viktigare för varje år: GitGuardians rapport State of Secrets Sprawl från 2026 fann att 28.65 miljoner nya hårdkodade hemligheter exponerades på den offentliga GitHub enbart under 2025, en ökning med 34 % jämfört med föregående år, och mediantiden för ett team att åtgärda en läckt hemlighet är 94 dagar, enligt Verizons rapport om dataintrång från 2025, ett tillräckligt långt fönster för att det är värt det extra installationssteget att hålla signeringsnycklar helt borta från disken.

Vanliga frågor om partihandel med mat och dryck

Vad är XMLSec (xmlsectool), och vad gör det?

XMLSec (xmlsectool) är ett kommandoradsverktyg med öppen källkod för att signera, verifiera, kryptera och dekryptera XML-dokument. Det underhålls av Shibboleth-projektet och fungerar med EC:s PKCS#11-omslag för att delegera själva signeringsåtgärden till en hårdvarusäkerhetsmodul.

Varför signera en XML-fil med PKCS#11 istället för ett lokalt nyckellager?

Ett lokalt nyckellager lagrar den privata nyckeln på disk, där den är sårbar om filsystemet komprometteras. PKCS#11 låter xmlsectool delegera signering till en hårdvarusäkerhetsmodul eller token, så att nyckeln genereras, lagras och används helt i hårdvaran och aldrig exporteras.

Vilka plattformar stöder EC:s PKCS#11-omslag för XML-signering?

Den här guiden dokumenterar Ubuntu och macOS. En Windows-installation är för närvarande inte dokumenterad för XMLSec-signering med denna wrapper, till skillnad från EC:s OpenSSL- och Jarsigner PKCS#11-guider, som även täcker Windows.

Vilken Java-version kräver xmlsectool?

Den här guiden använder Amazon Corretto 17 på både Ubuntu och macOS. Andra Java-distributioner och -versioner stöds också; kolla Shibboleth-wikins Java-distributionssida för den aktuella kompatibilitetslistan innan du avviker från Corretto 17.

Vad är det exakta xmlsectool-kommandot för att signera en XML-fil?

Kärnkommandot är xmlsectool.sh --sign --pkcs11Config pkcs11properties.cfg --keyAlias <key alias> --keyPassword NONE --inFile <input.xml> --outFile <output.xml>, kör från mappen som innehåller din wrappers konfigurationsfil. Den är identisk på Ubuntu och macOS.

Hur verifierar jag en signerad XML-fil?

Körning xmlsectool.sh --verifySignature --pkcs11Config pkcs11properties.cfg --keyAlias <key alias> --keyPassword NONE --inFile <signed.xml>Detta kontrollerar signaturen mot filens innehåll med samma PKCS#11-konfiguration som användes för att signera den.

Finns en Windows-installation tillgänglig för XMLSec + PKCS#11-signering?

Inte i den här guiden. Om ditt arbetsflöde kräver Windows stöder EC:s PKCS#11-omslag Windows för andra verktyg, som OpenSSL och Jarsigner, men XMLSec-specifika Windows-steg dokumenteras för närvarande inte här.

Vilken CodeSign Secure-version levererar för närvarande detta PKCS#11-omslag?

CodeSign Secure v3.02, som också lade till inbyggd LMS- och ML-DSA-post-kvantsignering, GPG2-integration och Debian/RPM-paketsignering utöver sitt befintliga PKCS#11-baserade verktygsstöd.

Hur mycket data genererar världen egentligen, och varför spelar det roll för XML-signering?

IDC:s Global DataSphere Forecast, 2026-2030, publicerad i juni 2026, förutspår att världens data kommer att överstiga 700 zettabyte år 2030. I takt med att mer av denna data flyttas genom XML-baserade format och integrationer blir det opraktiskt att verifiera äkthet och integritet i stor skala utan automatiserad, hårdvarubaserad signering snarare än manuella förtroendekontroller.