Mam plik .key, który jest plikiem klucza prywatnego w formacie PEM. Nie stworzyłem tego pliku, ale skądś go dostałem.
Chciałem zobaczyć jego skrót MD5 za pomocą narzędzia openssl, takiego jak poniższe polecenie.
openssl rsa -in server.key -modulus -noout
Ale to generuje poniżej błąd.
unable to load Private Key
13440:error:0906D06C:PEM routines:PEM_read_bio:no start line:.\crypto\pem\pem_lib.c:648:Expecting: ANY PRIVATE KEY
Oto kilka asn1parse pliku .key.
openssl asn1parse -in server.key
0:d=0 hl=4 l= 603 cons: SEQUENCE
4:d=1 hl=2 l= 1 prim: INTEGER :00
7:d=1 hl=3 l= 129 prim: INTEGER :C141201603899993919CBAA56985E9C7
C6A2AF713A02F5FE88D38CEFBED9304599689280B84B0AB577A9719CA20DDA1246A894AF397A2C57
EE5A582B036CC367E3667454DCD82DBDBF187C35FE39F61C71B517DDDF576F5471B4EC2E045E0F9D
619F5616C4E832F00CBD0DBF41B4BA3CBC4B4B603AE1FE61965917DA732E0DEF
139:d=1 hl=2 l= 3 prim: INTEGER :010001
144:d=1 hl=3 l= 128 prim: INTEGER :1687B9AE67562CEDEBDD7A531B84CDB7
093CE138519B93C34B7F626076FF0A262B16EA71904ACB6251A39307C04ADE202055BA13DD9F1539
6123EE408183361A9BC08B9413FA360EA928E48CC3F52B33ACF2980758F02BA2139F652F30A257C2
2E45D7C25835FC4D22B9ECECC12AB632318D4F47E1EBDAD9781B96BCFF03A2D1
...
Czy jest coś więcej, co mogę spróbować?
openssl
private-key
tkpl
źródło
źródło
scp
kopiowałem plik z Windows do Ubuntu. Aby to naprawić, usunąłem plik w systemie Ubuntu, utworzyłem tam nowy pusty plik i użyłem,vim
a następnie wkleiłem poprawną zawartość.Odpowiedzi:
Otwórz plik klucza w Notepad ++ i sprawdź kodowanie. Jeśli jest na nim napis UTF-8-BOM, zmień go na UTF-8. Zapisz plik i spróbuj ponownie.
źródło
Zmieniłem nagłówek i stopkę pliku PEM na
i
Wreszcie działa!
źródło
-inform pem
do polecenia, aby uzyskać ten sam wynik. Npopenssl rsa -in server.key -modulus -noout -inform pem
.Twój plik .key zawiera niedozwolone znaki. możesz sprawdzić plik .key w ten sposób:
wyjście „server.key: tekst Unicode UTF-8 (z BOM)” oznacza, że jest to zwykły tekst, a nie plik klucza. Prawidłowe dane wyjściowe powinny mieć postać „server.key: klucz prywatny PEM RSA”.
użyj poniższego polecenia, aby usunąć niedozwolone znaki:
Nowy_serwer.klucz powinien być poprawny.
Aby uzyskać więcej informacji, kliknij tutaj , dzięki za post.
źródło
file server.key
to polecenie pomogło mi rozwiązać problem. Dzięki.To, że wydaje się być w porządku,
asn1parse
prowadzi mnie do przekonania, że nie jest to kodowanie PEM.Ponieważ wygląda na ASN.1, spróbuj:
Zwróć uwagę,
-inform DER
aby przełączać się między kodowaniami.źródło
Utwórz certyfikat CA
źródło
Usuń wszelkie spacje na początku pliku .key.
źródło
Rozdzielczość po mojej stronie. Zmień kodowanie na UTF8 bez BOM
źródło
Jestem na Windows 10 i zapisałem swój klucz z kodowaniem Windows1252 i zadziałało. W przypadku innego pytania StackOverflow, niektórzy ludzie naprawiali to za pomocą UTF-8 z BOM .
Innymi słowy, może to być kodowanie pliku.
źródło
Być może sam klucz prywatny nie występuje w pliku. Miałem ten sam problem, ale problem polega na tym, że w pliku nie ma klucza prywatnego.
źródło
może się to zdarzyć, jeśli próbujesz użyć klucza publicznego do utworzenia certyfikatu zamiast klucza prywatnego. powinieneś użyć klucza prywatnego
źródło
Miałem ten sam problem dzisiaj i zauważyłem, że dzieje się tak, gdy właściciel / grupa pliku nie jest jedyną uruchomioną aplikacją, która czyta klucz. Może to też twój problem.
źródło
Żaden z pozostałych odpowiedzi wydawało poprawne w moim przypadku, jednak znalazłem prawdziwą odpowiedź tutaj
Mój
id_rsa
plik był już w formacie PEM, wystarczyło dodać.pem
rozszerzenie do nazwy pliku.Dzięki
Możliwe opcje
openssl rsa -inform
parametru to:PEM
DER
źródło
W naszym przypadku przyczyną problemu jest to, że klucz prywatny, którego próbowaliśmy użyć, został zaszyfrowany za pomocą hasła.
Musieliśmy odszyfrować klucz prywatny za pomocą,
ssh-keygen -p
zanim mogliśmy użyć klucza prywatnego z narzędziem wiersza poleceń openssl.źródło
Dlaczego nie skorzystać z bota cetificate
Uzyskanie certyfikatu
źródło