2016-10-29 19 views
1

Я создал мой SSH ключ accordingly:OpenSSL не удалось загрузить сертификат на бэкэндом

ssh-keygen -t rsa -C "[email protected]" 

Это даст мне два файла:

myKey.key.pub 
myKey.key 

Тогда для преобразования в формат PEM я бегу command:

ssh-keygen -f myKey.key.pub -e -m pem > myKey.pem 

MyKey.pem - файл, предоставляемый для бэкэнд C program.

Однако, я застрял с аналогичным error:

unable to load certificate 
140387178489504:error:0906D06C:PEM routines:PEM_read_bio:no start  
line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE 

Итак, я последовал за steps:

openssl rsa -text -in file.key -inform DER 
openssl pkcs8 -in file.key -inform der 

Я также проверил некоторые другие comments и suggestions. Но проблема все еще продолжается:

error:0D0680A8:ASN1 encoding routines:ASN1CHECK_TLEN:wrong tag:tasn_dec.c:1338 
error:0D07803A:ASN1 encoding routines:ASN1CHECK_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:390:Type=X509_SIG 

Этот сертификат будет использоваться с внутренним концом. Или способ получить файл pem - это фактически создать и отредактировать его вручную? Если да, то откуда взялась часть certificate?

Любые предложения, где может быть моя ошибка? Все комментарии приветствуются :)

+2

SSH ключ! = сертификат SSL. Чего вы пытаетесь достичь? – Jakuje

+0

Hi @Jakuje! Я использовал: я использовал: ssh-keygen -f myKey.key.pub -e -m pem> myKey.pem. Что следует использовать в качестве сертификата? Спасибо Вам большое. –

+1

Чтобы получить сертификат SSL/TLS, вы используете свой ключ _private_ (а в вашем случае и многие, но не все остальные ключ ключа OpenSSH _private_ совместим с OpenSSL), чтобы сгенерировать _Certificate Signing Request_ aka CSR и передать CSR в сертификат Власть aka CA, чтобы получить сертификат. Если вы хотите, чтобы незнакомые люди доверяли вашему серверу, вам необходимо использовать общедоступный CA, такой как Verisign, GoDaddy, LetsEncrypt и т. Д. Если только вы или люди, знакомые вам с друзьями/коллегами, подключаетесь, вы можете создать свой собственный ad-hoc CA с помощью openssl , или даже самозаверяющий сертификат (без CA). –

ответ

2

Это может произойти, когда ваш ключ защищен паролем.

вы должны расшифровать его

$ OpenSSL ЗГА -in protected.key отъезда unprotected.key

Затем вы должны создать новый файл .pem

$ кошки unprotected.key yourcert .crt> yourcert.pem

Я также предлагаю вам проверить ваши файлы ключей и сертификатов на окончания строк (openssl не нравится Windows) и BOM-mark.

Убедитесь, что сертификат для Windows «совместимы», самое главное, что он не имеет^M в конце каждой строки

Если открыть его будет выглядеть следующим образом:

- ---- BEGIN CERTIFICATE -----^M MIIDITCCAoqgAwIBAgIQL9 + 89q6RUm0PmqPfQDQ + mjANBgkqhkiG9w0BAQUFADBM^M

для решения "это" открыть его с помощью Write или Notepad ++ и иметь его преобразовать его в Windows, "стиль"

+0

Привет Кристалло! Спасибо большое за Ваш комментарий. Пожалуйста, уточните мой обновленный вопрос. Чтобы создать файл pem, я использовал: ssh-keygen -f myKey.key.pub -e -m pem> myKey.pem. Что-нибудь еще не хватает? Благодаря! –

+1

OpenSSL отлично подходит для окончаний строк WIndows (CRLF) или даже для любого прочего в PEM. У него есть проблема с BOM (часто) или UTF-16 (всегда), но поскольку PEM по дизайну является только ASCII, они не нужны, и большинство программ Windows не будут добавлять их в ненужное. –

+0

@ dave_thompson_085. Спасибо за ваш комментарий. Я нахожусь в Linux. Не Windows. –