Вы абсолютно правы, что SSL-сертификат — это то, что вам нужно. И это не так уж сложно настроить, хотя это редко делается.
Важно помнить, что эта проблема состоит из двух компонентов. Во-первых, «как мне заставить эту чертову штуку вообще работать», и, поскольку это система безопасности, во-вторых, «как мне настроить ее так, чтобы я не мог случайно сделать что-то, что повредит моему сердцу?» безопасность?"
Первое, что я бы предложил, это написать отдельное приложение Rails для администрирования и запустить его с другим веб-сервером на другом порту. (Если вы действительно хотите избежать указания номера порта в URL-адресе сайта администратора, используйте прокси-сервер перед обоими веб-серверами, который использует заголовок Host:
для перенаправления запросов на foo.com
на один сервер и admin.foo.com
на другой.) Это разделение поможет гарантировать, что вы случайно не предоставите обычным пользователям доступ к функциям администрирования, и упростит настройку SSL.
Для сервера администратора настройте его только для доступа SSL. Создайте новый сертификат подписи и разрешите подключаться только сертификатам, подписанным сертификатом подписи. (Это зависит от веб-сервера; если вам действительно нужны подробности о том, как это сделать, вы, вероятно, захотите опубликовать новый вопрос с указанием специфики используемого вами сервера и конфигурации.) Вы можете настроить страницу (на не-SSL-сайте или на странице, доступной для неаутентифицированных пользователей на SSL-сайте), веб-браузеры ваших администраторов автоматически сгенерируют и загрузят сертификат, который вы можете подписать, что даст им доступ.
Сохраняйте копии всех сертификатов, которые вы подписываете, чтобы, когда вам нужно отозвать доступ, вы могли поместить этот сертификат в список отзыва.
person
cjs
schedule
23.05.2009