


Erstellen Sie eine CSR, in der die Organisationseinheiten durch Kommas statt durch Pluszeichen getrennt werden
Bei der Verwendung eines SSL-Zertifikats ist das Erstellen einer CSR (Certificate Signing Request) ein wesentlicher Schritt. Ein wichtiger Parameter beim Erstellen einer CSR ist das Feld OU (Organisationseinheit). Typischerweise wird im OU-Feld ein Pluszeichen (+) verwendet, um verschiedene Organisationseinheiten zu trennen. Wenn Sie jedoch einen CSR korrekt erstellen möchten, sollten Sie, so der Vorschlag des PHP-Editors Banana, Kommas (,) verwenden, um verschiedene Organisationseinheiten zu trennen. Dadurch kann die Richtigkeit der CSR sichergestellt und Probleme während des Zertifikatsantragsprozesses vermieden werden. Denken Sie daher beim Erstellen einer CSR bitte daran, OU-Felder durch Kommas zu trennen, um die Genauigkeit des Zertifikats und eine reibungslose Anwendung sicherzustellen.
Frageninhalt
Ich versuche, mithilfe einer kryptografischen Bibliothek eine Zertifikatssignierungsanforderung in Go zu erstellen. Das Problem besteht darin, dass die OU des CSR, das es generiert, durch +
getrennt ist, d. h.
Subject: O = Example Org, OU = OU1 + OU = OU2, CN = example.com
So generieren Sie beispielsweise CSR für OU getrennt durch 、
Subject: O = Example Org, OU = OU1, OU = OU2, CN = example.com
Das Generieren von durch +
分隔的 OU 似乎是 crypto
lib 的默认行为。这可以使用加密库来完成吗?如果没有,那么是否有任何其他库可以生成CSR,其OU由,
getrennten Organisationseinheiten scheint das Standardverhalten der crypto
-Bibliothek zu sein. Kann dies mithilfe einer kryptografischen Bibliothek erfolgen? Wenn nicht, gibt es dann eine andere Bibliothek, die CSR mit OU, getrennt durch ,
Ich habe versucht, CSR mit dem folgenden Code zu generieren
package main import ( "crypto/rand" "crypto/rsa" "crypto/x509" "crypto/x509/pkix" "encoding/pem" "fmt" "os" ) func main() { privKey, err := rsa.GenerateKey(rand.Reader, 2048) if err != nil { fmt.Println(err) os.Exit(1) } csrTemplate := x509.CertificateRequest{ Subject: pkix.Name{ CommonName: "example.com", Organization: []string{"Example Org"}, OrganizationalUnit: []string{"OU1", "OU2"}, }, EmailAddresses: []string{"[email protected]"}, } csrBytes, err := x509.CreateCertificateRequest(rand.Reader, &csrTemplate, privKey) if err != nil { fmt.Println(err) os.Exit(1) } csrPem := pem.EncodeToMemory(&pem.Block{ Type: "CERTIFICATE REQUEST", Bytes: csrBytes, }) fmt.Println(string(csrPem)) }
Lösung
Weder „+“ noch „“, sind Teil des Zertifikats. Es wird verwendet, wenn eine für Menschen lesbare Zeichenfolgendarstellung einer Zertifikatsanforderung bereitgestellt wird.
Details: Ihr Code druckt lediglich die PEM-formatierte CSR-Datei aus, keine für Menschen lesbare Darstellung der Zertifikatsanforderung. Das Anzeigen dieser CSR mit asn1parse ergibt:
$ openssl asn1parse -in csr.pem ... 37:d=4 hl=2 l= 10 cons: SEQUENCE 39:d=5 hl=2 l= 3 prim: OBJECT :organizationalUnitName 44:d=5 hl=2 l= 3 prim: PRINTABLESTRING :OU1 49:d=4 hl=2 l= 10 cons: SEQUENCE 51:d=5 hl=2 l= 3 prim: OBJECT :organizationalUnitName 56:d=5 hl=2 l= 3 prim: PRINTABLESTRING :OU2 61:d=3 hl=2 l= 20 cons: SET
Das sind also separate Objekte, keine kombinierte Zeichenfolge mit einem „+“ in der Mitte. Wenn Sie req verwenden, um eine Zertifikatsanforderung anzuzeigen, erscheint dieses „+“:
$ openssl req -in csr.pem -text Certificate Request: Data: Version: 1 (0x0) Subject: O = Example Org, OU = OU1 + OU = OU2, CN = example.com
Welches Trennzeichen hier verwendet wird, ist tatsächlich konfigurierbar. Sehen Sie sich openssl-namedisplay-options an und suchen Sie nach sep_comma_plus_space
, dem Standardtrennzeichen. Dokumente zitieren:
Da haben Sie es also: Verwenden Sie Kommas zwischen verschiedenen RDNs (d. h. O, OU, CN, ...) und verwenden Sie Pluszeichen zwischen mehreren AVAs innerhalb desselben RDN (d. h. mehrere OUs). Außerdem wird unter keinen Umständen von der Verwendung mehrerer AVAs abgeraten.
Das obige ist der detaillierte Inhalt vonErstellen Sie eine CSR, in der die Organisationseinheiten durch Kommas statt durch Pluszeichen getrennt werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



OpenSSL bietet als Open -Source -Bibliothek, die in der sicheren Kommunikation weit verbreitet sind, Verschlüsselungsalgorithmen, Tasten und Zertifikatverwaltungsfunktionen. In seiner historischen Version sind jedoch einige Sicherheitslücken bekannt, von denen einige äußerst schädlich sind. Dieser Artikel konzentriert sich auf gemeinsame Schwachstellen und Antwortmaßnahmen für OpenSSL in Debian -Systemen. DebianopensL Bekannte Schwachstellen: OpenSSL hat mehrere schwerwiegende Schwachstellen erlebt, wie z. Ein Angreifer kann diese Sicherheitsanfälligkeit für nicht autorisierte Lesen sensibler Informationen auf dem Server verwenden, einschließlich Verschlüsselungsschlüssel usw.

In dem Artikel wird erläutert, wie das PPROF -Tool zur Analyse der GO -Leistung verwendet wird, einschließlich der Aktivierung des Profils, des Sammelns von Daten und der Identifizierung gängiger Engpässe wie CPU- und Speicherprobleme.Character Count: 159

Das Problem der Warteschlange Threading In Go Crawler Colly untersucht das Problem der Verwendung der Colly Crawler Library in Go -Sprache. Entwickler stoßen häufig auf Probleme mit Threads und Anfordern von Warteschlangen. � ...

In dem Artikel werden Schreiben von Unit -Tests in GO erörtert, die Best Practices, Spottechniken und Tools für ein effizientes Testmanagement abdecken.

In der Bibliothek, die für den Betrieb der Schwimmpunktnummer in der GO-Sprache verwendet wird, wird die Genauigkeit sichergestellt, wie die Genauigkeit ...

Backend Learning Path: Die Erkundungsreise von Front-End zu Back-End als Back-End-Anfänger, der sich von der Front-End-Entwicklung verwandelt, Sie haben bereits die Grundlage von Nodejs, ...

In dem Artikel werden die Verwaltungs -Go -Modulabhängigkeiten über Go.mod erörtert, die Spezifikationen, Aktualisierungen und Konfliktlösung abdecken. Es betont Best Practices wie semantische Versioning und reguläre Updates.

Wie kann man im Beegoorm -Framework die mit dem Modell zugeordnete Datenbank angeben? In vielen BeEGO -Projekten müssen mehrere Datenbanken gleichzeitig betrieben werden. Bei Verwendung von BeEGO ...
