OpenSSL: PEM-routines: PEM_READ_BIO: NO START LIJN: PEM_LIB.C: 703: Verwacht: Vertrouwde certificaat

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%

  1. Aangezien u Windows gebruikt, moet u ervoor zorgen dat uw certificaat in Windows “compatibel” is, en vooral dat er geen ^Maan het einde van elke regel staat

    Als 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 Writeof Notepad++ en laat u het converteren naar Windows “stijl”

  2. Probeer openssl x509 -text -inform DER -in server_cert.pemuit 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 -> decryptga 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 decryptrichting 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.

Other episodes