Ik heb een hash-naam nodig voor bestand voor het plaatsen in de Capath-directory van Stunnel. Ik heb wat Certs in deze map en ze werken goed. Ik heb ook een server SERT- en SERVER-toets:
cert = c:\Program Files (x86)\stunnel\server_cert.pem
key = c:\Program> Files (x86)\stunnel\private\server_key.pem
Wanneer ik probeer een hash van mijn nieuwe cert te berekenen, krijg ik een foutmelding:
/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
Zoals ik begrijp, moet ik mijn certje ondertekenen, maar ik begrijp niet hoe ik dat kan doen.
Gelieve de oplossing te bieden.
P.S.:
Het bericht
unable to load certificate 140603809879880:error:0906D06C:PEM
routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE:
Geplaatst toen ik C_Hash voor Cert.pem Deze is niet server_cert.pem, dit is root_ca en het is inhoud van iets als
-----BEGIN CERTIFICATE-----
...6UXBNSDVg5rSx60=..
-----END CERTIFICATE-----
Wanneer ik schrijf
openssl x509 -noout -text -in cert.pem
In consolepaneel Ik zie deze info:
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:
...............
Antwoord 1, autoriteit 100%
-
Aangezien u Windows gebruikt, moet u ervoor zorgen dat uw certificaat in Windows “compatibel” is, en vooral dat er geen
^M
aan het einde van elke regel staatAls je het opent, ziet het er als volgt uit:
-----BEGIN CERTIFICATE-----^M MIIDITCCAoqgAwIBAgIQL9+89q6RUm0PmqPfQDQ+mjANBgkqhkiG9w0BAQUFADBM^M
Om “dit” op te lossen, opent u het met
Write
of Notepad++ en laat u het converteren naar Windows “stijl” -
Probeer
openssl x509 -text -inform DER -in server_cert.pem
uit te voeren en kijk wat de uitvoer is, het is onwaarschijnlijk dat een privé/geheime sleutel niet vertrouwd is, alleen vertrouwen is nodig als je de sleutel uit een sleutelarchief hebt geëxporteerd, nietwaar?
Antwoord 2, autoriteit 91%
Een andere mogelijke oorzaak hiervan is het gebruik van de ;x509; module op iets dat niet X.509 is.
Het servercertificaat heeft de indeling X.509, maar de privésleutel is RSA.
Dus:
openssl rsa -noout -text -in privkey.pem
openssl x509 -noout -text -in servercert.pem
Antwoord 3, autoriteit 40%
Mijn fout was gewoon het CSR-bestand te gebruiken in plaats van het CERT-bestand.
Antwoord 4, autoriteit 32%
Mijn situatie was een beetje anders. De oplossing was om de .pem van alles buiten de CERTIFICATE en PRIVATE KEY-secties te verwijderen en de volgorde waarin ze verschenen om te keren.
Na conversie van pfx naar pem-bestand zag het certificaat er als volgt uit:
Bag Attributes
localKeyID: ...
issuer=...
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
Bag Attributes
more garbage...
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
Na het corrigeren van het bestand, was het gewoon:
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
Antwoord 5, autoriteit 26%
Ik had hetzelfde probleem met Windows, maar ik kon het oplossen door het te openen in Notepad++ en de codering te wijzigen van “UCS-2 LE BOM” in “UTF-8”.
Antwoord 6, autoriteit 17%
Wijzig de codering in notepad++ UTF-8 met stuklijst. Zo werkte het voor mij
Antwoord 7, autoriteit 11%
Je kunt deze misleidende foutmelding krijgen als je naïefdit probeert:
[clear] -> Private Key Encrypt -> [encrypted] -> Public Key Decrypt -> [clear]
Het versleutelen van gegevens met een privésleutel is niet toegestaan door het ontwerp.
U kunt aan de opdrachtregelopties voor open sslzien dat de enige opties om encrypt -> decrypt
ga in één richting public -> private
.
-encrypt encrypt with public key
-decrypt decrypt with private key
De andere richting is opzettelijk voorkomen omdat openbare sleutels in principe “geraden kunnen worden”. Dus versleutelen met een privésleutel betekent dat het enige dat u wint, is te verifiëren dat de auteur toegang heeft tot de privésleutel.
De private key encrypt -> public key decrypt
richting wordt “ondertekenen” genoemd om het te onderscheiden van een techniek die gegevens daadwerkelijk kan beveiligen.
-sign sign with private key
-verify verify with public key
Opmerking: mijn beschrijving is een vereenvoudiging voor de duidelijkheid. Lees dit antwoord voor meer informatie.