Обсуждение статьи тематического каталога: Авторизация с помощью клиентских SSL сертификатов. (ssl crypt mod_ssl apache)Ссылка на текст статьи: http://www.opennet.me/base/sec/ssl_cert.txt.html
спасибо
Точно такое же содержимое прочитал на сайте ...ua
Господа ! Как Вы себе представляете личный ключ, который отдали с сервера клиенту. Вопрос а сколько клиентов его получило ОДИН или ДВА -гарантии нет !
Гм, а пароль от зашифрованного ключа, который передается клиенту, должен знать только ОДИН :)
Автору золотую медаль размером с обеденную тарелку
Автору золотую медаль и категорическое требование осветить вопрос работы клиентов со смарткартами, а то инфы нету по этому поводу :(
Я делал ЭТО с apache под виндой (не надо кидать в меня тяжелые предметы, надо было). Так вот, мне пришлось добавить в ca.config секции
[ req ]
distinguished_name = req_distinguished_name
[ req_distinguished_name ]а в httpd.conf
SSLCACertificateFile ssl/ca.crtи только после этого все заработало.
А директива SSLRequire должна выглядеть как SSLRequireSSL.Это особенности работы apache под виндами или неполнота статьи?
>[оверквотинг удален]
> distinguished_name = req_distinguished_name
>[ req_distinguished_name ]
>
>а в httpd.conf
> SSLCACertificateFile ssl/ca.crt
>
>и только после этого все заработало.
>А директива SSLRequire должна выглядеть как SSLRequireSSL.
>
>Это особенности работы apache под виндами или неполнота статьи?Если можно расскажите как удалось авторизацию юзеров по сертификатам сделать? (что в каком порядке, если гайд есть буду прыгать от счастья)
Мудохаюсь с EasyPHP3.0 вроде бы все что надо есть, а в сертификатах запутался наглухо.
У меня работает только "SSLVerifyClient optional", при "SSLVerifyClient require" в доступе отказывается.
Только при "SSLVerifyClient optional" клиентский браузер сообщает, что сервер требует предъявить сертификат (если указать на сертификат - всё срабатывает и доступ предоставляется), при "require" отказывают в доступе безо всякого запроса, сразу.
В чём может быть дело?
указанных директив для httpd.conf недостаточно, во всяком случае у меня начало запрашивать сертификат только после добавления
SSLEngine On
SSLCertificateFile
SSLCertificateKeyFileполностью это выглядит так
<VirtualHost 127.0.0.1>
SSLEngine On
SSLVerifyClient require
SSLCertificateFile ca.crt
SSLCertificateKeyFile ca.key
SSLCACertificateFile ca.crt
DocumentRoot "..."
</VirtualHost>
Спасибо за подсказку, а то я голову ломал, какой сертификат засунуть в
SSLCertificateFile
и какой ключ в
SSLCertificateKeyFile
В статье допущен ряд неточностей. В частности, пропущена процедура создания сертификата для сервера (соответственно и его подписи), не совсем правильно указаны директивы в настройке хоста:Написано:
SSLCACertificateFile /path/to/ca.crt
<Directory /path/to/secure/area/>
SSLVerifyClient require
</Directory>Необходимо:
SSLCertificateFile /path/to/server.crt
SSLCertificateKeyFile /path/to/server.key
SSLCACertificateFile /path/to/ca.crt
<Directory /path/to/secure/area/>
SSLVerifyClient require
</Directory>Более правильный вариант настройки авторизации по клиентским сертификатам описан в "Системном администраторе". Вот ссылка: http://www.samag.ru/cgi-bin/go.pl?q=articles&n=11.2005&a=06
Все кто читал эту статью рано или поздно сталкиваются с проблеммой управления сертификатами. Из командной строки или батника не очень удобно. Сел я и написал прогу webPKI
Качаем на сатйте: http://alsdx.narod.ruОчень приветствую здоровую критику в адрес проги
================================================
ыв
апвп
Отличная статья! От себя добавлю, что чтобы сертификат сервера принимался Java соединениями, нужно добавить PEM Extensions :
sudo openssl ca -extfile ca/server_ext ... дальше как указано в статье.Пример файла server_ext:
basicConstraints=CA:FALSE
keyUsage=digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage=serverAuth, clientAuth
subjectKeyIdentifier=hash
authorityKeyIdentifier=issuer
А можно ли подписывать клиентские сертификаты купленным сертификатом, скажем от комодо?
Нет нельзя, для подписи нужен ключ от сертификата, а он есть только у CA, в вашем случае у комодо.
>Создайте конфигурационный файл с именем ca.config следующего содержания.Где его создавать то, точнее где хранить? Ведь сервер его должен увидеть, а для этого он должен находиться в правильной директории - какой именно?
Разобрался. Файл ca.config ложится в каталог, который является корневым для выполнения команд терминала
Подскажите - если нет полного доступа настройкам Apache таким как httd.config и т.д. (есть только доступ к админ-панели и возможность работы с .htaccess), то можно ли настроить сервер через .htaccess?
Пробовал но получил внутреннюю ошибку сервера 500
помогите разобраться как сертификат клиентский подписать, я не админ и не знаю почему ошибка выскакивает, такой папки пообще нет, номер ошибки рандомный
.\crypto\bio\bss_file.cUsing configuration from ca.cnf
Loading 'screen' into random state - done
Error opening CA private key ./ca.key
15944:error:02001002:system library:fopen:No such file or directory:.\crypto\bio
\bss_file.c:398:fopen('./ca.key','rb')
15944:error:20074002:BIO routines:FILE_CTRL:system lib:.\crypto\bio\bss_file.c:4
00:
unable to load CA private key
error in ca
После проделанной процедуры, упаковываю файлы в .p12 отправляю файл пользователю, который открывает этот файл и видит ошибку "Этот файл не может использоваться как: Файл обмена личной информацией". В чем может быть проблема??
Как подружить apache2-server+nginx+proxy авторизация с помощью клиентских SSL сертификатов:имееться веб сервер с апачем и модулем рпаф,на нем авторизация с помощью клиентских SSL сертификатов, а на этот сервер проксируеться vps'ka nginx.проблема в следущем,при обращений к серверу с апачем напрямую все работает отлично,но при запросе через проксю(vps nginx) к веб серверу выдает такую ошибку:Secure Connection Failed
An error occurred during a connection to . PR_END_OF_FILE_ERROR