Ich benötige einen Hash-Namen für die Datei zum Posten im CApath-Verzeichnis von Stunnel. Ich habe einige Zertifikate in diesem Verzeichnis und sie funktionieren gut. Außerdem habe ich einen Server-Sert und einen Server-Schlüssel:
cert = c:\Program Files (x86)\stunnel\server_cert.pem
key = c:\Program> Files (x86)\stunnel\private\server_key.pem
Wenn ich versuche, einen Hash meines neuen Zertifikats zu berechnen, wird folgende Fehlermeldung angezeigt:
/etc/pki/tls/misc/c_hash cert.pem
unable to load certificate 140603809879880:error:0906D06C:PEM
routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE
Soweit ich weiß, muss ich mein Zertifikat unterschreiben, aber ich verstehe nicht, wie ich das machen kann. Bitte geben Sie die Lösung an.
PS:
Die Nachricht
unable to load certificate 140603809879880:error:0906D06C:PEM
routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE:
gepostet, als ich c_hash für cert.pem gemacht habe Dies ist nicht server_cert.pem, dies ist Root_CA und es ist so etwas wie Inhalt
-----BEGIN CERTIFICATE-----
...6UXBNSDVg5rSx60=..
-----END CERTIFICATE-----
Wenn ich schreibe
openssl x509 -noout -text -in cert.pem
Im Konsolenfenster sehe ich diese Informationen:
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 1 (0x1)
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=BE, ST=BB, L=BB, O=BANKSYS NV, OU=SCY, CN=TEST Root CA
Validity
Not Before: May 31 08:06:40 2005 GMT
Not After : May 31 08:06:40 2020 GMT
Subject: C=BE, ST=BB, L=BB, O=BB NV, OU=SCY, CN=TEST Root CA
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:82:c8:58:1e:e5:7a:b2:63:a6:15:bd:f9:bb:1f:
............
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
X509v3 Subject Key Identifier:
76:70:AB:92:9B:B1:26:CE:9E:93:D8:77:4F:78:0D:B8:D4:6C:DA:C6
Signature Algorithm: sha1WithRSAEncryption
2c:7e:bd:3f:da:48:a4:df:8d:7c:96:58:f7:87:bd:e7:16:24:
...............
key
undcert
Dateien imhttps
Konfigurationsobjekt anwebpack.config
's geliefert habedevServer
.Antworten:
Da Sie unter Windows arbeiten, stellen Sie sicher, dass Ihr Zertifikat in Windows "kompatibel" ist, vor allem, dass es nicht vorhanden ist
^M
am Ende jeder Zeile stehtWenn Sie es öffnen, sieht es folgendermaßen aus:
Um "dies" zu lösen, öffnen Sie es mit
Write
oder Notepad ++ und lassen Sie es in Windows "style" konvertieren.Versuchen Sie zu starten
openssl x509 -text -inform DER -in server_cert.pem
und zu sehen, was die Ausgabe ist. Es ist unwahrscheinlich, dass ein privater / geheimer Schlüssel nicht vertrauenswürdig ist. Vertrauen ist nur erforderlich, wenn Sie den Schlüssel aus einem Schlüsselspeicher exportiert haben, oder?quelle
openssl x509 -hash -noout -in
Sie dies auszuführen, es führt Hash-Extraktion durch, sehen Sie, ob es hilft?SSL_accept: 14094418: error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca Connection reset: 0 byte(s) sent to SSL, 0 byte(s) sent to socket
wenn ich versuche, eine Verbindungca
für ihr CA-Zertifikat verwendenopenssl x509 -text -inform DER -in server_cert.pem
meinp7b
verschlüsseltes (?) Zertifikat in etwas Verwendbares konvertiert .Eine andere mögliche Ursache hierfür ist der Versuch, das x509-Modul für etwas zu verwenden, das nicht x509 ist
Das Serverzertifikat hat das Format x509, der private Schlüssel ist jedoch rsa
So,
quelle
Meine Situation war etwas anders. Die Lösung bestand darin, das .pem von allem außerhalb der Abschnitte CERTIFICATE und PRIVATE KEY zu entfernen und die Reihenfolge umzukehren, in der sie angezeigt wurden. Nach der Konvertierung von pfx in pem sah das Zertifikat folgendermaßen aus:
Nach dem Korrigieren der Datei war es nur:
quelle
cat $SOURCE/privkey.pem $SOURCE/fullchain.pem > server.pem
Mein Fehler war einfach die Verwendung der CSR-Datei anstelle der CERT-Datei.
quelle
key is not found
Ich hatte das gleiche Problem mit Windows, das behoben wurde, indem es in Notepad ++ geöffnet und die Codierung von "UCS-2 LE BOM" in "UTF-8" geändert wurde.
quelle
Ändern Sie die Codierung in Notepad ++ UTF-8 mit Stückliste . So hat es bei mir funktioniert
quelle
Sie können diesen irreführenden Fehler erhalten, wenn Sie naiv versuchen, dies zu tun:
Das Verschlüsseln von Daten mit einem privaten Schlüssel ist nicht zulässig .
Sie können aus den Befehlszeilenoptionen für open ssl ersehen, dass die einzigen Optionen
encrypt -> decrypt
in eine Richtung gehenpublic -> private
.Die andere Richtung wird absichtlich verhindert, da öffentliche Schlüssel grundsätzlich "erraten werden können". Wenn Sie also mit einem privaten Schlüssel verschlüsseln, müssen Sie nur überprüfen, ob der Autor Zugriff auf den privaten Schlüssel hat.
Die
private key encrypt -> public key decrypt
Richtung wird als "Signieren" bezeichnet, um sie von einer Technik zu unterscheiden, mit der Daten tatsächlich gesichert werden können.Hinweis: Meine Beschreibung dient der Klarheit. Lesen Sie diese Antwort für weitere Informationen .
quelle