Сразу начну с того, что я далёк от всего этого движения.
Собрался сделать свой домашний веб сервер и задался вопросом, а где все же хранить секретные ключи которые расшифровывают наши данные? Прочитал много сайтов и ничего такого ясного разъяснения я не увидел, возможно тут увижу.
Видел идеи в хранении наших ключей вообще в другой папке от сервера: (/home/user/keys/private.pem), видел идеи с AWS и т.п. Окей! Допустим, я выбрал первый вариант в хранении далеко от нашей структуры проекта. Но есть одно НО. Эти самые ключи мы ведь используем в коде и обращаемся по пути, какой смысл от того? Хакер, который получил доступ к серверу, зайдет просто в код, найдет любую часть где есть путь и через консоль прочитает ваш ключ. Да, возможно я что-то не так думаю, т.к. повторяю, далек от всего этого.
Так как все же хранить наши ключи и использовать их в коде? Ну, мы же по сути и сами их светим.
Единственный вариант который я могу предположить, что ключам даются какие-то права или оно под паролем, а когда мы используем данные ключи в коде, то для нас они то открыты, т.к. мы в своей учетной записи. Я верно думаю?
Хочу увидеть от вас полного разъяснения и как их вообще потом использовать.
По сути, это мы будем хранить наши ключи как в файле .env :D
Веб-сервер - это не какое-то особое волшебство, это программа, которая работает с правами определенного пользователя и имеет доступ к тому, к чему есть доступ у этого пользователя.
Если веб-серверу нужны какие-то секретные ключи - значит, их нужно предоставить этому пользователю, и хакер, который вломился на сервер под ним или, тем более, под рутом, все это получит.
А в .env это добро выносят не ради какой-то секретности, а тупо ради того, чтобы не залить в систему контроля версий вместе с прочим кодом, на всеобщее обозрение, если проект открытый.