Вопрос

Я настроил свой собственный поставщик open id на своем личном сервере и добавил перенаправление на https в свой конфигурационный файл apache.Когда не используется безопасное соединение (когда я отключаю перенаправление) Я могу нормально войти в систему, но с перенаправлением я не могу войти в систему с этим сообщением об ошибке:

Базовое соединение было закрыто:Не удалось установить доверительные отношения для защищенного канала SSL / TLS.

Я предполагаю, что это потому, что я использую самозаверяющий сертификат.

Кто-нибудь может подтвердить, является ли проблема с самозаверяющим сертификатом?Если нет, есть ли у кого-нибудь какие-нибудь идеи, в чем проблема?

Это было полезно?

Решение

Основное преимущество использования SSL для вашего URL-адреса OpenID заключается в том, что он предоставляет проверяющей стороне механизм для определения того, был ли изменен DNS.Проверяющая сторона не может определить, был ли скомпрометирован URL OpenID с самозаверяющим сертификатом.

Есть и другие преимущества, которые вы получаете от использования SSL по URL конечной точки вашего провайдера (проще устанавливать ассоциации, нет подслушивания данных расширения), которые все равно сохранялись бы, если бы вы использовали самозаверяющий сертификат, но я бы счел их второстепенными.

Другие советы

OpenID разработан прозрачным для перенаправления способом.Пока необходимые пары ключ / значение сохраняются при каждом перенаправлении, будь то с помощью GET или POST, все будет работать корректно.

Самое простое решение для достижения совместимости с потребителями, которые не работают с самозаверяющими сертификатами, - это использовать незашифрованную конечную точку, которая перенаправляет checkid_immediate и checkid_setup сообщения в зашифрованном виде.

Сделать это в коде вашего сервера проще, чем с перенаправлениями веб-сервера, поскольку первый может легче обрабатывать POST-запросы, сохраняя при этом единый код.Кроме того, вы можете использовать одну и ту же конечную точку для обработки всех операций OpenID, независимо от того, должна ли она обслуживаться по протоколу SSL, при условии выполнения надлежащих проверок.

Например, в PHP перенаправление может быть таким же простым, как:

// Redirect OpenID authentication requests to https:// of same URL
// Assuming valid OpenID operation over GET
if (!isset($_SERVER['HTTPS']) &&
        ($_GET['openid_mode'] == 'checkid_immediate' ||
         $_GET['openid_mode'] == 'checkid_setup'))
    http_redirect("https://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}");

В качестве openid.return_to значение было сгенерировано для простой конечной точки HTTP, что касается потребителя, то он имеет дело только с незашифрованным сервером.Предполагая правильную работу OpenID 2.0 с сеансами и одноразовыми номерами, какая бы информация ни передавалась между потребителем и вашим сервером, она не должна раскрывать информацию, пригодную для использования.Операции между вашим браузером и сервером OpenID, которые могут быть использованы (перехват пароля или файлов cookie сеанса), выполняются по зашифрованному каналу.

Помимо защиты от подслушивающих устройств, выполнение операций аутентификации по протоколу SSL позволяет вам использовать secure Флаг HTTP cookie.Это добавляет еще один уровень защиты для checkid_immediate операции, если вы пожелаете это разрешить.

(Отказ от ответственности:Я новичок в OpenID, так что, возможно, здесь я ошибаюсь.) Связь между потребителем Open ID (например, StackOverflow) и поставщиком Open ID (вашим сервером) не требует HTTPS - она будет работать так же нормально и так же надежно по обычному HTTP.Что вам нужно сделать, так это настроить ваш сервер на переключение на HTTPS только тогда, когда он показывает вам вашу страницу входа в систему.В этом случае только ваш браузер должен иметь дело с самозаверяющим сертификатом.Вы можете импортировать сертификат на свой компьютер, и все будет так же безопасно, как, скажем, с сертификатом, выпущенным Verisign.

Похоже на то.Клиент вашего сервера OpenID не доверяет корневому центру сертификации.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top