Назад | Перейти на главную страницу

замена пробела символами новой строки для использования бродячих ящиков

Я пытаюсь настроить бродячий ящик с помощью сценария оболочки, где я храню key и cert файлы. Нормальный формат любого сертификата или ключевого файла приведен ниже.

-----BEGIN CERTIFICATE-----
MIIDzzCCAregAwIBAgIJAP384f0KeRndMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNV
....
0+ZQ+Yxjzs69VHdPJbzu3cxjNQ==
-----END CERTIFICATE-----

-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC6qoE3hNniDqD7
....
wr5wa+bGBgNzIBLS5j9F9Kul
-----END PRIVATE KEY-----

Однако, когда я проверяю бродячий ящик, он выглядит так, как показано ниже.

-----BEGIN CERTIFICATE----- MIIDzzCCAregAwIB ..... 69VHdPJbzu3cxjNQ== -----END CERTIFICATE-----

-----BEGIN PRIVATE KEY----- MIIEvgIBADANBgkqhki  .... OB7jnwaqq wr5wa+bGBgNzIBLS5j9F9Kul -----END PRIVATE KEY-----

(в основном все в одном ряду)

Из-за чего Apache2 имеет ошибки в журнале. Теперь я хочу преобразовать эти ключи в их правильный формат. Я пробовал ниже

cat server.crt | tr " " "\n" 
cat server.crt | tr "\ /" " " 

но это не помогло.

    -----BEGIN
CERTIFICATE-----
MIIDzzCCAregAwIBAgIJAP384f0KeRndMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNV

0+ZQ+Yxjzs69VHdPJbzu3cxjNQ==
-----END
CERTIFICATE-----

Это то, что я получаю в результате sed -i 's/ /\n/g' *.crt команда. после END он переходит на следующую строку из-за символа пробела. Задача здесь - сохранить первую и последнюю строку как есть и отформатировать содержимое между ними.

Вы должны использовать tr '\ ' '\n'

Пример:

[root@localhost ~]# uname -a
Linux localhost 2.6.32-504.16.2.el6.x86_64 #1 SMP Tue Mar 10 17:01:00 EDT 2015 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]# uname -a | tr '\ ' '\n'
Linux
localhost
2.6.32-504.16.2.el6.x86_64
#1
SMP
Tue
Mar
10
17:01:00
EDT
2015
x86_64
x86_64
x86_64
GNU/Linux

Вы хотите sed -i 's/ /\n/g' *.crt (при условии, что у вас есть GNU sed)

Но удалось ли устранить первопричину? Как файлы были повреждены?