После реализации взаимной аутентификации сертификатов с помощью OpenSSL и веб-сервера Apache на платформе CentOS. Я пробовал этот сценарий (см. Эту диаграмму):
---------- | Root CA | // Self-Signed Certificate ---------- | | ---------- ---------- | SiteA CA | | SiteB CA | //Two Different Intermediate CAs ---------- ---------- | | | | ------- ------- ------- ------- | Server1 | | Client1 | | Server2 | | Client2 | ------- ------- ------- -------
Итак, у меня есть разные сайты с разными доменами, например:
www.siteA.com
www.siteB.com
После помещения rootca.crt
в браузере и client1.crt
который подписан siteA CA, у меня была большая проблема! Клиент1, чей сертификат подписан SiteCA1, может войти на оба сайта A и B! и это полностью ошибочно.
Как я мог сделать это правильно?
Я опубликовал ответ на вопрос в SEC.SE в котором подробно описано, как реализовать взаимную аутентификацию SSL.
Короче говоря, вы могли бы добиться большего успеха, если бы создавали клиентские сертификаты, помня о том, что для ваших серверов должен быть способ различать клиентов, чтобы иметь возможность ограничивать доступ к сайтам на основе предыдущей предпосылки.
Выберите соответствующий фрагмент информации, хранящийся в структуре x509 сертификата клиента, для ваших целей. Взгляните на Apache в Интернете документы.