Попросить пользователя подписать строку сертификатом клиента и получить этот знак в PHP - PullRequest
0 голосов
/ 03 октября 2010

Я могу авторизовать пользователя по его клиентскому сертификату с помощью apache mod_ssl.Теперь мне нужно попросить пользователя подписать некоторую строку своим клиентским сертификатом и прочитать этот знак в моем php-скрипте.Я знаю, как сделать это с openssl_sign, когда у меня есть key.pem на сервере, но сертификат клиента находится на клиентском компьютере, установленном в браузере

Ответы [ 2 ]

0 голосов
/ 03 октября 2010

Вам понадобится апплет, приложение Flex или элемент управления ActiveX, работающий на стороне клиента. Это позволит вам получить доступ к сертификатам, расположенным там. Это не тривиальная задача (особенно, если вы не имели дело с этим раньше).

Мы представим компоненты распределенной подписи (включая апплет и элемент управления ActiveX) как часть нашего продукта SecureBlackbox через пару месяцев. На данный момент компоненты проходят внутреннее тестирование.

0 голосов
/ 03 октября 2010

Действительно, личный ключ клиента (соответствующий сертификату клиента) - это то, что используется для подписи, и он не собирается покидать браузер. Эти операции необходимо выполнять в браузере клиента, а не на стороне PHP (сервера).

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

Вы можете посмотреть на это, чтобы начать с: https://developer.mozilla.org/en/JavaScript_crypto#Signing_text

Кроме того, вы можете попробовать запустить приложение из браузера (например, Java WebStart), хотя это не обязательно упрощает доступ к закрытому ключу и сертификату, которые находятся в браузере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...