CSR-avkodare

Innan en certifikatutfärdare (CA) signerar ett TLS-certifikat lämnar du in en begäran om certifikatsignering (CSR), ett Base64-block som innehåller det subjekt du vill ange på certifikatet och din offentliga nyckel, plus en signatur som bevisar att du innehar den motsvarande privata nyckeln. Den här avkodaren tar emot en PEM-kodad CSR och visar subjektets fält och parametrarna för den offentliga nyckeln, så att du kan kontrollera det gemensamma namnet, organisationen och nyckelstorleken innan du skickar begäran till en certifikatutfärdare.

Så avkodar du en CSR

  1. 1

    Klistra in CSR

    Inkludera markörerna `-----BEGIN CERTIFICATE REQUEST-----` och `-----END CERTIFICATE REQUEST-----`. Mellanslag tolereras.

  2. 2

    Kör avkodaren

    Begäran tolkas och subjektets fält samt den offentliga nyckeln läses ut.

  3. 3

    Granska utdata

    Kontrollera subjektets fält som det gemensamma namnet och organisationen, samt nyckelns algoritm och storlek.

  4. 4

    Agera på resultatet

    Om subjektet eller nyckeln ser fel ut, generera om CSR:n innan du skickar den till en certifikatutfärdare.

Vad avkodaren visar

En CSR är en ASN.1-struktur (PKCS #10). Avkodaren läser två saker ur den:

  • Subject: de begärda fälten i Distinguished Name, vanligtvis land (C), organisation (O), organisationsenhet (OU), ort (L), region (ST) och gemensamt namn (CN).
  • Offentlig nyckel: algoritmen (RSA, EC, DSA) och nyckelstorleken i bitar.

Signaturen i CSR:n är det som bevisar för certifikatutfärdaren att den som lämnat in den innehar den motsvarande privata nyckeln. Den här avkodaren visar den inte; certifikatutfärdaren verifierar den när begäran behandlas.

Exempel på utdata

För en typisk domänbegäran ser utdatan ut så här:

Subject: commonName=www.example.com, organizationName=Example Inc., countryName=US
Key bits: 2048
Key type: RSA

De exakta attributnamnen i subject beror på hur begäran har genererats.

Fält för dubbelkontroll

  • Gemensamt namn (CN): bör vara det primära värdnamnet. Moderna webbläsare ignorerar CN och tittar endast på SAN:er, men många CA:er kräver fortfarande ett giltigt CN.
  • Alternativa namn för subjektet (SAN): ange alla värdnamn och jokertecken som certifikatet ska skydda. Webbläsare matchar mot SAN:er, inte mot CN.
  • Land (C): en tvåbokstavs ISO-kod (US, GB, DE), inte ett fullständigt namn. Certifikatutfärdare avvisar felaktiga koder.
  • Nyckelstorlek: RSA 2048 är minimum; 3072 eller 4096 för högre säkerhet. ECDSA P-256 är ett bra modernt alternativ och ger ett mindre certifikat.
  • Signaturalgoritm: SHA-256 eller en mer avancerad variant. SHA-1 är långt från aktuell och kommer att avvisas.

Om alternativa namn för subjektet (SAN)

Avkodaren visar begärans subject men inte SAN-tillägget. Webbläsare matchar certifikat mot SAN:er, inte mot CN; om certifikatet ska täcka fler värdnamn, ta med dem när begäran genereras, till exempel:

openssl req -new -newkey rsa:2048 -nodes -keyout example.key -out example.csr -addext "subjectAltName=DNS:example.com,DNS:www.example.com"

När avkodaren inte kan tolka CSR:n

De vanligaste orsakerna är ett avklippt eller skadat PEM-block:

  • Avklippt text: klistra in hela blocket igen, inklusive båda markörerna.
  • Inlagda radbrytningar: klistra in blocket exakt som det genererades.
  • Fel innehåll: en offentlig nyckel, ett certifikat eller en privat nyckel som klistrats in av misstag tolkas inte som en CSR.

Generering av motsvarande nyckel

En CSR genereras alltid tillsammans med en privat nyckel. Typiskt kommando:

openssl req -new -newkey rsa:2048 -nodes -keyout example.key -out example.csr

Eller för ECDSA:

openssl req -new -newkey ec:<(openssl ecparam -name prime256v1) -nodes -keyout example.key -out example.csr

Skydda den privata nyckeln, om den läcker måste certifikatet återkallas.

Vanliga frågor

En CSR innehåller endast offentlig information (offentlig nyckel, subjekt och SAN:er) plus en signatur; den kan tryggt delas med en CA eller klistras in i en avkodare. Det som måste förbli hemligt är den motsvarande privata nyckeln.

Nej. Den här avkodaren förväntar sig textformen PEM med markörerna BEGIN/END CERTIFICATE REQUEST. För en binär DER-begäran konverterar du den först till PEM, till exempel med openssl req -in request.der -inform DER -out request.pem.

Nej. De flesta offentliga certifieringsorganen (Let’s Encrypt, DigiCert, Sectigo) kräver endast CN och SAN; de ignorerar O, OU, L, ST och C för domänvaliderade certifikat. Organisationvaliderade och utökade valideringscertifikat kontrollerar dessa fält separat.

Vanligtvis för att den inklistrade texten har klippts av eller fått radbrytningar, eller för att en nyckel eller ett certifikat har klistrats in i stället för en CSR. Klistra in hela blocket mellan de två markörerna igen.

Relaterade verktyg

Verktyget finns på andra språk