Я пытаюсь настроить бродячий ящик с помощью сценария оболочки, в котором я храню файлы ключа
и сертификата
. Нормальный формат любого файла сертификата или ключа показан ниже
-----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 он переходит на следующую строку из-за символа пробела.
Задача здесь - сохранить первую и последнюю строку как есть и отформатировать содержимое между ними.
Вы хотите sed -i 's / / \ n / g' * .crt
(при условии, что у вас есть GNU sed)
Но устранили ли вы основную причину ? Как файлы были повреждены?
Вы должны использовать 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