Как безопасно и автономно подключать ssl сертификат, что бы к нему был доступ у websocket сервера laravel echo (ispmanager)?
Мы имеет:
1. vps сервер на ispmanager.
2. Сайт на laravel.
3. Автоматически обновляемый ssl сертификат.
Запуск laravel echo server требует:
sslCertPath - файл .crt
и
sslKeyPath - файл .key
изначально эти файлы хранятся в директории отдельной от сайтов под правами root laravel server не может к ним подключиться, не имеет доступа.
При переносе в другую папку, меняя владельца и группу на пользователя сайта всё работает.
Но проблема в том что эти файлы не вечны, время от времени сертификат обновляется и старый уже недействителен.
Каждый раз переносить их и лишаться работоспособности сервера на время обновления сертификата - неприемлимо.
Если изменить владельца root на самих файлах сертификата в изначальном каталоге не возникнет ли проблем с автоматическим продлением?
Опасны ли файлы .crt и .key в общем доступе? или же они в любом случае предоставляются для сверки?
Прошу подсказать как грамотно решается подобный вопрос.
P.S. Не очень разбираюсь в правах файловой системы. В вопросах ssl осведомлён лишь теоретически, на практике какой из файлов за что отвечает не вникал.
Защищать нужно только key - это приватный ключ. Сертификат можно раздавать кому угодно - там публичный ключ и другая не секретная информация, типа срока действия, алгоритма и т.п.
Сделайте скрипт, который будет запускаться после обновления, копировать ключи куда надо и менять права на новых файлах, перезапускать сервис (если нужно), таким образом минимизируете время простоя сервиса.
Обычно владельцем файла key должен быть тот пользователь из-под которого запущен ваш сервис, права на key - только для чтения этим пользователем. Права на crt можно дать на чтение всем.
У certbot есть возможность вызывать скрипты после процесса обновления сертификата. Напишите скрипт, который копирует сертификаты туда, куда нужно и меняет необходимые для laravel права, и если необходимо - делает рестарт laravel. И вызывайте его через -post-hook в certbot
а разве ispmanager использует именно certbot? я так понимаю у него иная система, не подскажете в каком направлении рыть что бы перехватить событие смены сертификата? что почитать, как найти информацию об этом
Alex Alc, вам ничто не мешает остановить выдачу сертификатов через ispmanager и настроить ее через certbot. По ispmanager и возможности запускать скрипты после перевыпуска - лучше уточнить в ТП ISPManager
Андрей Гаврилов, еще раз - laravel не очень хочет работать по умолчанию без https на бекенде, ваше предложение про nginx ssl proxy здесь никак не помогает. Необходима работа через SSL между nginx и laravel. А для этого необходима доставка сертификатов в Laravel.