Вопрос или проблема
мой openssl.cnf пропал. Возможно ли сгенерировать новый стандартный файл?
Когда система жалуется, что файл отсутствует, я бы попробовал
touch /path/to/file/openssl.cnf
Если это не сработает, переустановите и перезапишите пользовательские изменения.
Хотя в некоторых случаях конфигурационные файлы генерируются на лету сценариями установки пакетов, в этом случае стандартный файл предоставляется в составе содержимого пакета – как вы можете убедиться с помощью поиска dpkg:
$ dpkg -S /etc/ssl/openssl.cnf
openssl: /etc/ssl/openssl.cnf
Таким образом, вы можете получить копию, скачав deb-файл и извлекая его, например:
apt download openssl
(это загружается в локальный каталог – специальные привилегии не требуются) затем
dpkg-deb --fsys-tarfile openssl_3.0.2-0ubuntu1.18_amd64.deb | tar xf - ./etc/ssl/openssl.cnf
После этого вы можете скопировать файл на его законное место:
sudo cp ./etc/ssl/openssl.cnf /etc/ssl/
После этого вы можете удалить загруженный deb-файл и дерево fsys-tarfile.
Ответ или решение
Если файл openssl.cnf отсутствует в вашей системе Ubuntu 22.04, это может создать ряд проблем, особенно если вы широко используете OpenSSL для управления сертификатами и шифрованием. К счастью, существует несколько способов восстановить этот файл, и в этом ответе я подробно расскажу о каждом из них.
Восстановление openssl.cnf в Ubuntu 22.04
1. Проверка наличия файла
Первым делом стоит убедиться, что файл действительно отсутствует. Откройте терминал и выполните команду:
ls /etc/ssl/openssl.cnf
Если файл не найден, система вернёт сообщение об ошибке. Теперь перейдём к его восстановлению.
2. Создание нового файла openssl.cnf
Если у вас нет резервной копии файла, вы можете создать новый openssl.cnf. Это можно сделать, но рекомендуется получить стандартный файл конфигурации, который шёл вместе с первоначальной установкой OpenSSL.
3. Восстановление файла путём повторной установки
В большинстве случаев конфигурационные файлы устанавливаются вместе с пакетами. Если нужно восстановить openssl.cnf, лучшим решением будет переустановка пакета OpenSSL. Используйте следующие команды:
sudo apt-get update
sudo apt-get install --reinstall openssl
Этот процесс вернёт все файлы, включая openssl.cnf, к их первоначальным значениям. Учтите, что при переустановке сделанные вами изменения могут быть потеряны.
4. Извлечение системного файла из пакета .deb
Если переустановка не является предпочтительным решением в вашей ситуации, вы можете извлечь файл конфигурации из .deb пакета. Для этого выполните следующие шаги:
-
Скачайте пакет OpenSSL:
apt download openssl
Это скачает файл в вашу локальную директорию без необходимости использования привилегий суперпользователя.
-
Извлеките openssl.cnf:
Используйте следующую команду, чтобы извлечь файл конфигурации:
dpkg-deb --fsys-tarfile openssl_3.0.2-0ubuntu1.18_amd64.deb | tar xf - ./etc/ssl/openssl.cnf
Обратите внимание, что имя файла .deb может варьироваться в зависимости от версии.
-
Переместите файл на место:
После извлечения вам необходимо скопировать файл в нужное место:
sudo cp ./etc/ssl/openssl.cnf /etc/ssl/
-
Удалите ненужные файлы:
После успешного восстановления файла рекомендуется удалить скачанный .deb файл и временные файлы:
rm openssl_3.0.2-0ubuntu1.18_amd64.deb rm -rf ./etc/ssl/
Заключение
В случае отсутствия openssl.cnf на Ubuntu 22.04, вы можете легко восстановить его, переустановив OpenSSL или извлекши файл конфигурации из пакета. Оба метода эффективны и помогут восстановить необходимые настройки для функциональности OpenSSL. Если у вас есть специфические настройки, не забудьте внести их снова в файл после восстановления.