удалите пустой пароль из ssl ключа с помощью openssl

Мне зашифровали openssl файл ключей с пустым паролем. Я пытаюсь удалить пароль с помощью этой команды

openssl rsa -in ca.key -out ca.key.clear

Я затем пытаюсь ввести пустой пароль, когда он просит текущий пароль, но я получаю эту ошибку:

140592616367776:error:28069065:lib (40): UI_set_result:result также small:ui_lib.c:869:You должен ввести в 4 - 8 191 символе

Таким образом, кажется, что я не могу удалить пароль, если это - меньше чем 4 символа.

Как я удаляю пароль, идеально с помощью openssl.

4
задан 7 July 2015 в 10:37
3 ответа

Я придумал обходной путь с помощью инструмента etcd-ca.

mkdir .etcd-ca
mv ca.key .etcd-ca/ca.host.key
touch .etcd-ca/ca.host.crt
chmod a-w .etcd-ca/ca.host.crt
etcd-ca export --insecure ca > ca.tar
tar xf ca.tar

Это некрасиво, но это сработало. Но я до сих пор не знаю, как этого добиться с помощью openssl.

.
3
ответ дан 3 December 2019 в 03:06

Это правда, что вы не можете получить PEM_bytes_read_bio и PEM_do_header , где и заканчиваются расшифровки устаревшего PEM, чтобы взять кодовую фразу нулевой длины, нет.

Есть обходной путь, но он может вам не понравиться :

# assumes DES3 (aka DES-EDE3) CBC as in the example
# changes and/or additional logic needed for other ciphers

# get the IV from the file header 
iv=`awk <silly -F, '/DEK-Info:/{print $2}'`
# use enc to do EVP_BytesToKey with salt=IV and just print result 
key=`openssl enc -des3 -k '' -S $iv -P |awk -F= '/^key/{print $2}'`
# get body of the file, debase64 and decrypt 
# note openssl silently drops dash-END line, another debase64 may not 
<silly sed '1,/^$/d' |openssl base64 -d |openssl enc -des3 -d -K $key -iv $iv >sillyd

# sillyd is now unencrypted DER "legacy" (PKCS#1) 
# and can be read by "openssl rsa <sillyd -inform der"
# but since we're on a roll let's do PEM too!
(echo -----BEGIN RSA PRIVATE KEY-----;openssl base64 <sillyd;\
 echo -----END RSA PRIVATE KEY-----) >sillyp

Мое предложение: в следующий раз не используйте пустую кодовую фразу: -)

2
ответ дан 3 December 2019 в 03:06

Oto jak obejść ten problem.

  1. Dodaj nowe hasło do klucza prywatnego, który został pierwotnie utworzony bez hasła.

     openssl rsa -des3 -in your.key -out your.encrypted.key
    mv twój.encrypted.key twój.klucz
     

To wyświetli monit o wprowadzenie nowego hasła.

  1. Teraz usuń hasło w następujący sposób:

     openssl rsa -in your.key -out your.key_NO_PASSPHRASE.pem
     
  2. To wyświetli monit o wprowadzenie hasła określonego w kroku 1. powyżej, a następnie usunie je z klucza.

To zadziałało dla mnie i Apache uruchomił się bez żadnych błędów. (Zakładam, że właśnie dlatego musiałeś go usunąć w pierwszej kolejności :))

1
ответ дан 3 December 2019 в 03:06

Теги

Похожие вопросы