Форум программистов, компьютерный форум, киберфорум
Наши страницы
Apache, htaccess
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
Andre_NN
0 / 0 / 0
Регистрация: 29.06.2010
Сообщений: 6
1

Как привязать клиентский сертификат к логину?

29.06.2010, 17:08. Просмотров 4040. Ответов 4
Метки нет (Все метки)

httpd-2.2.15-win32-x86-openssl-0.9.8m-r2.msi

Выдаю клиентский сертификат пользователю и он используя этот сертификат может авторизоваться ТОЛЬКО со своим именем, т.е. если он будет использовать сертификат другого пользователя нашей компании он не сможет авторизоваться т.к. сертификат не будет соответствовать пользователю.

Описание:
Есть сайт x.ru . Доступ к нему разрешается только тем кому я выдам клиентский сертификат. После того как пользователь установил у себя в браузере клиентский сертификат набирает https://x.ru и получает окошко авторизации. В данном окне он вводит имя и пароль, которые привязаны к клиентскому сертификату. После успешной авторизации открывается страничка сайта.

Если человек не имеет сертификат, то он не получит ответа от сервера и ничего не сможет сделать.
Если человек имеет сертификат, но авторизуется именем которое не связано с сертификатом, то авторизация отклоняется.

Человек сможет получить доступ к сайту только при наличии клиентского сертификата и успешной авторизации учетной записью, которая привязана к выданному сертификату.

Добавлено через 1 минуту
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Пример 2.  
 
Предположим требуется разрешить доступ до защищенной области  
владельцам сертификатов со слишком разными данными, настолько, что их  
сложно описать с помощью директивы SSLRequire. В этом случае полезно  
использовать метод, основанный на имитации простой авторизации  
веб-сервером по паролю.  
 
<Directory /path/to/secure/area/>  
SSLVerifyClient require  
SSLOptions +FakeBasicAuth  
AuthName "My secure area"  
AuthType Basic  
AuthUserFile /path/to/passwd/file  
require valid-user  
</Directory>  
 
 
Содержимое файла /path/to/passwd/file  
 
/C=RU/L=Msk/O=My Inc./CN=user/emailAddress=user@domain.ru:xxj31ZMTZzkVA  
/C=RU/L=Sam/O=My LTD./CN=vas/emailAddress=vas@domain.ru:xxj31ZMTZzkVA  
/C=RU/L=Zel/O=My LLC./CN=prs/emailAddress=prs@domain.ru:xxj31ZMTZzkVA  
........  
 
 
Описание директив:  
 
SSLOptions +FakeBasicAuth  
Имитирует простую авторизацию веб-сервером. Имя пользователя и  
пароль не запрашиваются, но сверяются данные клиентского  
сертификата с данными в файле /path/to/passwd/file. Строка  
идентифицирующая клиента может быть получена из клиентского  
сертификата с помощью команды:  
 
# openssl x509 -noout -subject -in client.crt  
 
Или взята из базы данных db/index.txt, формируемой при подписи  
CSR (см. $2.). В качестве пароля всегда используется строка  
"xxj31ZMTZzkVA", являющаяся результатом шифрования строки  
"password" с помощью алгоритма DES.

Смотрел здесь

В итоге идет запрос пароля, но авторизация не проходит (((
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2010, 17:08
Ответы с готовыми решениями:

Https, клиентский сертификат, apache2 и hsts
Здравствуйте. Продолжаю ломать ownCloud, параллельно изучая. Сегодня весь день пытался сотворить...

Как привязать свой сертификат SSL к приложению SelfHost для использования шифрования TSL?
Приветствую! Вопрос в следующем: Делаю самостоятельное приложение (SelfHost) API. С http работает...

Как создать клиентский блок?
На форме &quot;Входящий запрос&quot; есть поле со списком &quot;Организация&quot;. Как сделать, чтобы при выборе в...

Сертификат безопасности сайта не является доверенным! Вы попытались перейти на сайт www.google.ru, но сервер предоставил сертификат, выданный организа
Сертификат безопасности сайта не является доверенным! Вы попытались перейти на сайт www.google.ru,...

Как передать массив из серверного скрипта в клиентский?
как передать массив из серверного скрипта в клиентский?

4
Andre_NN
0 / 0 / 0
Регистрация: 29.06.2010
Сообщений: 6
01.07.2010, 17:16  [ТС] 2
весь инет перелопатил! ((( В чем причина не пойму. Сделал также как указано здесь. См. параграф "How can I allow only clients who have certificates to access a particular URL, but allow all clients to access the rest of the server?"

Ошибка:
Код
[Thu Jul 01 15:37:35 2010] [error] [client 127.0.0.1] user /C=RU/ST=-/L=Moscow/O=Reki.ru/OU=SVN/CN=bugzilla.ru/emailAddress=svn@svn.reki.ru: authentication failure for "/": Password Mismatch
0
odip
Эксперт С++
7170 / 3228 / 77
Регистрация: 17.06.2009
Сообщений: 14,166
01.07.2010, 21:55 3
Вообще-то там написано немного не так
Код
httpd.passwd

/C=DE/L=Munich/O=Snake Oil, Ltd./OU=Staff/CN=Foo:xxj31ZMTZzkVA
/C=US/L=S.F./O=Snake Oil, Ltd./OU=CA/CN=Bar:xxj31ZMTZzkVA
/C=US/L=L.A./O=Snake Oil, Ltd./OU=Dev/CN=Quux:xxj31ZMTZzkVA
Добавлено через 1 минуту
http://httpd.apache.org/docs/2.2/ssl/ssl_howto.html
0
Andre_NN
0 / 0 / 0
Регистрация: 29.06.2010
Сообщений: 6
02.07.2010, 11:46  [ТС] 4
Цитата Сообщение от odip Посмотреть сообщение
Вообще-то там написано немного не так
Код
httpd.passwd

/C=DE/L=Munich/O=Snake Oil, Ltd./OU=Staff/CN=Foo:xxj31ZMTZzkVA
/C=US/L=S.F./O=Snake Oil, Ltd./OU=CA/CN=Bar:xxj31ZMTZzkVA
/C=US/L=L.A./O=Snake Oil, Ltd./OU=Dev/CN=Quux:xxj31ZMTZzkVA
Добавлено через 1 минуту
http://httpd.apache.org/docs/2.2/ssl/ssl_howto.html

Не много не дополнял вас (((

Сертификаты то у меня свои и они естественно отличаются от примера на сайте http://httpd.apache.org/docs/2.2/ssl/ssl_howto.html

Также можно посмотрет http://opennet.ru/base/sec/ssl_cert.txt.html . Начинаем читать с «Пример 2.»

Предположим требуется разрешить доступ до защищенной области
владельцам сертификатов со слишком разными данными, настолько, что их
сложно описать с помощью директивы SSLRequire. В этом случае полезно
использовать метод, основанный на имитации простой авторизации
веб-сервером по паролю.

<Directory /path/to/secure/area/>
SSLVerifyClient require
SSLOptions +FakeBasicAuth
AuthName "My secure area"
AuthType Basic
AuthUserFile /path/to/passwd/file
require valid-user
</Directory>


Содержимое файла /path/to/passwd/file

/C=RU/L=Msk/O=My Inc./CN=user/emailAddress=user@domain.ru:xxj31ZMTZzkVA
/C=RU/L=Sam/O=My LTD./CN=vas/emailAddress=vas@domain.ru:xxj31ZMTZzkVA
/C=RU/L=Zel/O=My LLC./CN=prs/emailAddress=prs@domain.ru:xxj31ZMTZzkVA
........


Описание директив:

SSLOptions +FakeBasicAuth
Имитирует простую авторизацию веб-сервером. Имя пользователя и
пароль не запрашиваются, но сверяются данные клиентского
сертификата с данными в файле /path/to/passwd/file. Строка
идентифицирующая клиента может быть получена из клиентского
сертификата с помощью команды:

# openssl x509 -noout -subject -in client.crt

Или взята из базы данных db/index.txt, формируемой при подписи
CSR (см. $2.). В качестве пароля всегда используется строка
"xxj31ZMTZzkVA", являющаяся результатом шифрования строки
"password" с помощью алгоритма DES.
0
Andre_NN
0 / 0 / 0
Регистрация: 29.06.2010
Сообщений: 6
05.07.2010, 16:45  [ТС] 5
Цитата Сообщение от odip Посмотреть сообщение
Вообще-то там написано немного не так
Код
httpd.passwd

/C=DE/L=Munich/O=Snake Oil, Ltd./OU=Staff/CN=Foo:xxj31ZMTZzkVA
/C=US/L=S.F./O=Snake Oil, Ltd./OU=CA/CN=Bar:xxj31ZMTZzkVA
/C=US/L=L.A./O=Snake Oil, Ltd./OU=Dev/CN=Quux:xxj31ZMTZzkVA
Добавлено через 1 минуту
http://httpd.apache.org/docs/2.2/ssl/ssl_howto.html
в окне авторизации в браузере мне в имени пользователя что вводить?
Эту строку "/C=DE/L=Munich/O=Snake Oil, Ltd./OU=Staff/CN=Foo" ?
0
05.07.2010, 16:45
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.07.2010, 16:45

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как растянуть Form1 на весь клиентский экран?
Здравствуйте! Прошу помощи в решении возникшей задачи. Требуется растянуть Form1 на весь монитор. ...

Как передать из массив из серверного скрипта в клиентский?
??? Не понятно, как сделать цикл..

Как найти id по логину
Есть таблица с users, как без фреймворков, имея логин вытащить id пользователя с этим логином?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.