Potrzebuję nazwy skrótu dla pliku do umieszczenia w katalogu CApath programu Stunnel. Mam kilka certyfikatów w tym katalogu i działają dobrze. Mam również serwer serwera i klucz serwera:
cert = c:\Program Files (x86)\stunnel\server_cert.pem
key = c:\Program> Files (x86)\stunnel\private\server_key.pem
Kiedy próbuję obliczyć skrót mojego nowego certyfikatu, pojawia się błąd:
/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
Jak rozumiem, muszę podpisać swój certyfikat, ale nie rozumiem, jak mogę to zrobić. Proszę podać rozwiązanie.
PS:
Wiadomość
unable to load certificate 140603809879880:error:0906D06C:PEM
routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE:
opublikowane, kiedy zrobiłem c_hash dla cert.pem To nie jest server_cert.pem, to jest Root_CA i jest to coś w rodzaju
-----BEGIN CERTIFICATE-----
...6UXBNSDVg5rSx60=..
-----END CERTIFICATE-----
Kiedy piszę
openssl x509 -noout -text -in cert.pem
W panelu konsoli widzę te informacje:
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
icert
pliki znajdujące się whttps
obiekcie konfiguracyjnym dostarczonewebpack.config
„sdevServer
.Odpowiedzi:
Ponieważ korzystasz z systemu Windows, upewnij się, że Twój certyfikat w systemie Windows jest „zgodny”, a co najważniejsze, że nie ma
^M
na końcu każdej liniiJeśli go otworzysz, będzie wyglądać tak:
Aby rozwiązać ten problem, otwórz go za pomocą
Write
lub Notepad ++ i przekonwertuj na „styl” systemu WindowsSpróbuj uruchomić
openssl x509 -text -inform DER -in server_cert.pem
i zobacz, jakie są wyniki, jest mało prawdopodobne, że klucz prywatny / tajny nie będzie zaufany, zaufanie jest potrzebne tylko wtedy, gdy wyeksportowałeś klucz z magazynu kluczy, prawda?źródło
openssl x509 -hash -noout -in
, wyciąga hash, zobacz, czy to pomaga?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
gdy próbuję nawiązać połączenieca
dla swojego certyfikatu CAopenssl x509 -text -inform DER -in server_cert.pem
przekonwertowałem mójp7b
zakodowany (?) Certyfikat na nadający się do użytku.Inną możliwą przyczyną jest próba użycia modułu x509 na czymś innym niż x509
Certyfikat serwera ma format x509, ale klucz prywatny to rsa
Więc,
źródło
Moja sytuacja była trochę inna. Rozwiązaniem było usunięcie .pem ze wszystkiego poza sekcjami CERTIFICATE i PRIVATE KEY i odwrócenie kolejności, w jakiej się pojawiały. Po konwersji z pliku pfx do pem certyfikat wyglądał następująco:
Po poprawieniu pliku po prostu:
źródło
cat $SOURCE/privkey.pem $SOURCE/fullchain.pem > server.pem
Moim błędem było po prostu użycie pliku CSR zamiast pliku CERT.
źródło
key is not found
Miałem ten sam problem z systemem Windows, który został rozwiązany, otwierając go w Notepad ++ i zmieniając kodowanie z „UCS-2 LE BOM” na „UTF-8”.
źródło
Zmień kodowanie w notatniku ++ UTF-8 z BOM . Tak to u mnie zadziałało
źródło
Możesz otrzymać ten mylący błąd, jeśli spróbujesz to zrobić naiwnie :
Szyfrowanie danych przy użyciu klucza prywatnego jest niedozwolone z założenia .
Możesz zobaczyć z opcji wiersza poleceń dla otwartego ssl, że jedyne opcje
encrypt -> decrypt
idą w jednym kierunkupublic -> private
.Drugi kierunek jest celowo zabroniony, ponieważ klucze publiczne w zasadzie „można odgadnąć”. Zatem szyfrowanie za pomocą klucza prywatnego oznacza, że jedyną rzeczą, jaką zyskujesz, jest weryfikacja, czy autor ma dostęp do klucza prywatnego.
private key encrypt -> public key decrypt
Kierunek jest nazywany „podpisywania”, aby odróżnić ją od bycia technika, która może rzeczywiście bezpieczne dane.Uwaga: mój opis jest uproszczeniem dla większej przejrzystości. Przeczytaj tę odpowiedź, aby uzyskać więcej informacji .
źródło