The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"SSL: peer did not return a certificate"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Информационная безопасность (Шифрование, SSH, SSL / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"SSL: peer did not return a certificate"  +/
Сообщение от CromaX email on 20-Мрт-08, 14:56 
Доброе утро.
Пытаюсь создать SSL канал, и авторизацию при помощи SSL сертификатов.

Создаю сертификаты, как описанно здесь : http://www.vanemery.com/Linux/Apache/apache-SSL.html

CA:
openssl genrsa -des3 -out my-ca.key 2048
openssl req -new -x509 -days 3650 -key my-ca.key -out my-ca.crt

Для сервера
openssl genrsa -des3 -out mars-server.key 1024
openssl req -new -key mars-server.key -out mars-server.csr
openssl x509 -req -in mars-server.csr -out mars-server.crt -sha1 -CA my-ca.crt -CAkey my-ca.key -CAcreateserial -days 3650

для клиента :
openssl genrsa -des3 -out van-c.key 1024
openssl req -new -key van-c.key -out van-c.csr
openssl x509 -req -in van-c.csr -out van-c.crt -sha1 -CA my-ca.crt -CAkey my-ca.key -CAcreateserial -days 3650
openssl pkcs12 -export -in van-c.crt -inkey van-c.key -name "Van Emery Cert" -out van-c.p12
openssl pkcs12 -in van-c.p12 -clcerts -nokeys -info

Импортирую в IE 7 van-c.p12. Все ок, но Пишет что "Невозможно обнаружить поставщика этого сертификата." на вкладке "путь сертификации".
Это значит, как я понимаю, в сертификат не включена инфа о поставщике (CA)????
пробовал параметр указывать -CAfile при подписи van-c : не получилось указать, не понятно как и где....
в логе ssl -
[error] Re-negotiation handshake failed: Not accepted by client!?
[trace] OpenSSL: Write: SSLv3 read client certificate B
[trace] OpenSSL: Exit: error in SSLv3 read client certificate B
[error] SSL error on writing data (OpenSSL library error follows)
[error] OpenSSL: error:140890C7:SSL routines:SSL3_GET_CLIENT_CERTIFICATE:peer did not return a certificate [Hint: No CAs known to server for verification?]

если указать SSLVerifyClient none, то соеденение SSL работает нормально.
Совсем запутался.

В http.conf сначало такая секция:
<VirtualHost _default_:443>

#  General setup for the virtual host
DocumentRoot "/usr/local/www/data"
ServerName mars
ServerAdmin admin@mars
ErrorLog /var/log/httpd-error.log
TransferLog /var/log/httpd-access.log
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

#   Server Certificate:
SSLCertificateFile /usr/local/etc/apache/ssl.crt/mars-server.crt

#   Server Private Key:
SSLCertificateKeyFile /usr/local/etc/apache/ssl.key/mars-server.key

#   Server Certificate Chain:
#SSLCertificateChainFile /usr/local/etc/apache/ssl.crt/ca.crt

#   Certificate Authority (CA):
#SSLCACertificatePath /usr/local/etc/apache/ssl.crt

#by Crx
SSLCACertificateFile  /usr/local/etc/apache/ssl.crt/my-ca.crt

<Directory /home/mars/data/www/mars/test/restructed/>
#    SSLRequireSSL
#    SSLVerifyClient require
#    SSLVerifyClient 2
#    SSLVerifyClient none
#    SSLVerifyDepth 1
</Directory>

#   Certificate Revocation Lists (CRL):
#SSLCARevocationPath /usr/local/etc/apache/ssl.crl
#SSLCARevocationFile /usr/local/etc/apache/ssl.crl/ca-bundle.crl

#   Client Authentication (Type):
# by crx
#SSLVerifyClient require
#SSLVerifyDepth  10

#   SSL Engine Options:
#SSLOptions +FakeBasicAuth +ExportCertData +CompatEnvVars +StrictRequire
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
    SSLOptions +StdEnvVars
</Files>
<Directory "/usr/local/www/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>

#   SSL Protocol Adjustments:
SetEnvIf User-Agent ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0
#   Per-Server Logging:
CustomLog /var/log/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

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

<VirtualHost ip:443>
    ServerName mars
    DocumentRoot /home/mars/data/www/mars
    Group mars
    User mars
    CustomLog /home/mars/logs/mars.access.log combined
    ErrorLog /home/mars/logs/mars.error.log
    ServerAlias www.mars
    ServerAdmin admin@mars
    AddDefaultCharset windows-1251
    php_admin_value open_basedir "/home/mars/data:."
    php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f admin@mars"
    php_admin_value upload_tmp_dir "/home/mars/data/tmp"
    php_admin_value session.save_path "/home/mars/data/tmp"
    AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml
    AddType application/x-httpd-php-source .phps
    SSLEngine on
    SSLCertificateFile /usr/local/etc/apache/ssl.crt/mars-server.crt
    SSLCertificateKeyFile /usr/local/etc/apache/ssl.key/mars-server.key
    SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
    <Directory /home/mars/data/www/mars/test/restructed/>
        SSLVerifyClient 2
#             SSLVerifyClient none
#             SSLVerifyClient reque
        SSLVerifyDepth 1
    </Directory>
</VirtualHost>

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "SSL: peer did not return a certificate"  +/
Сообщение от angra (??) on 21-Мрт-08, 05:56 
Самоподписанные сертификаты ничего не стоят и естественно валидными не считаются. Если хотите чтобы бразуеры клиентов считали ваши сертификаты валидными, то заплатите определенную сумму соответствующему CA.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "SSL: peer did not return a certificate"  +/
Сообщение от CromaX email on 21-Мрт-08, 13:00 
>Самоподписанные сертификаты ничего не стоят и естественно валидными не считаются. Если хотите
>чтобы бразуеры клиентов считали ваши сертификаты валидными, то заплатите определенную сумму
>соответствующему CA.

Необходимо подписать сертификат клиентский (van-..), чтобы он включал информацию о поставщике Сертификата.
Как это сделать я не знаю.
Сейчас он не включает.
Одно дело Когда Браузер пишет "нет доверия к сертификату ...", и другое, когда "не могу онаружить поставщика данного сертификата".
Помогите советом, гуру SSL, уже очень долго мучаюсь...


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "SSL: peer did not return a certificate"  +/
Сообщение от CromaX email on 22-Мрт-08, 00:13 
Проблема было в неправильной настройке httpd.conf и в некоректной подписи CA.

CA :
openssl req -new -newkey rsa:1024 -nodes -keyout ca.key -x509 -days 500 -subj /C=RU/ST=Msk/L=Msk/O=mars/OU=mars/CN=mars.in/emailAddress=admin@mars.in -out ca.crt

Сертификат Для сервера
openssl genrsa -des3 -out mars-server.key 1024
openssl req -new -key mars-server.key -out mars-server.csr -subj /C=RU/ST=Msk/L=Msk/O=mars/OU=mars2/CN=mars.in/emailAddress=admin@mars.in
openssl x509 -req -in mars-server.csr -out mars-server.crt -sha1 -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650

Сертификат Для Клиента
openssl req -new -newkey rsa:1024 -nodes -keyout client01.key -subj /C=RU/ST=Msk/L=Msk/O=mars/OU=mars1/CN=mars.in/emailAddress=admin@mars.in -out client01.csr
openssl ca -config ca.config -in client01.csr -out client01.crt -batch
openssl pkcs12 -export -in client01.crt -inkey client01.key -certfile ca.crt -out client01.p12 -passout pass:1234


Обязательно проверить правильность готовых сертификатов:
openssl verify -CAfile ca.crt client01.crt
openssl verify -CAfile ca.crt mars-server.crt

В http.conf

<VirtualHost *:443>
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLProtocol all -SSLv2

SSLCertificateFile /usr/local/etc/apache/ssl.crt/mars-server.crt
SSLCertificateKeyFile /usr/local/etc/apache/ssl.key/mars-server.key
SSLCertificateChainFile /usr/local/etc/apache/ssl.crt/ca.crt
SSLCACertificatePath /root/
SSLCACertificateFile /usr/local/etc/apache/ssl.crt/ca.crt #CA
<Directory /home/mars/data/www/mars.in/test/restructed/>
    SSLRequireSSL
    SSLVerifyClient require #требовать авторизацию сертификатом
    SSLVerifyDepth 1    #проверять CA, 0 не проверять.
</Directory>
</VirtualHost>

<VirtualHost 10.10.10.10:443>
    ServerName mars.in
    DocumentRoot /home/mars/data/www/mars.in
    Group mars
    User mars
    CustomLog /home/mars/logs/mars.in.access.log combined
    ErrorLog /home/mars/logs/mars.in.error.log
    ServerAlias www.mars.in
    ServerAdmin admin@mars.in

    SSLEngine on
    SSLCACertificateFile /usr/local/etc/apache/ssl.crt/ca.crt # CA
    SSLCertificateFile /home/httpd-cert/mars-server.crt
    SSLCertificateKeyFile /home/httpd-cert/mars-server.key
    SSLVerifyClient require
    SSLVerifyDepth 1
    SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
</VirtualHost>


Так работает. Правдо, в 2х местах пришлось все это прописывать.
Не хочеться ничего менять, т.к. 2 недели разбирался...
client01.p12 импортируем в IE7. В FireFox вроде тоже работает.

доп информация :
    http://www.vanemery.com/Linux/Apache/apache-SSL.html
    http://www.webscript.ru/stories/04/05/29/2604693
    http://www.modssl.org/docs/2.8/ssl_faq.html#ToC9
    http://httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslciphers...

Здесь таже проблема на eng :
    http://www.mail-archive.com/openssl-users@openssl.org/m...

Тема закрыта.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "SSL: peer did not return a certificate"  +/
Сообщение от guest 55 on 11-Мрт-10, 16:45 
зашел по вашей ссылке, просмотрел до:

[root]# cp mars-server.crt /etc/httpd/conf/ssl.crt
[root]# cp mars-server.key /etc/httpd/conf/ssl.key
[root]# cp my-ca.crt /etc/httpd/conf/ssl.crt

дальше читать не стал, ибо уже тут бессмыслица

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "SSL: peer did not return a certificate"  +/
Сообщение от croamx email on 11-Мрт-10, 18:27 
>зашел по вашей ссылке, просмотрел до:
>
>[root]# cp mars-server.crt /etc/httpd/conf/ssl.crt
>[root]# cp mars-server.key /etc/httpd/conf/ssl.key
>[root]# cp my-ca.crt /etc/httpd/conf/ssl.crt
>
>дальше читать не стал, ибо уже тут бессмыслица

Да, спасибо за интерес :)
Дату поста заметели? Оо


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

6. "SSL: peer did not return a certificate"  +/
Сообщение от guest 55 on 11-Мрт-10, 18:56 
>>зашел по вашей ссылке, просмотрел до:
>>
>>[root]# cp mars-server.crt /etc/httpd/conf/ssl.crt
>>[root]# cp mars-server.key /etc/httpd/conf/ssl.key
>>[root]# cp my-ca.crt /etc/httpd/conf/ssl.crt
>>
>>дальше читать не стал, ибо уже тут бессмыслица
>
>Да, спасибо за интерес :)
>Дату поста заметели? Оо

Да конечно :) Просто время идёт, а проблемы остаются, вот столкнулся с похожей ,вышел на вашу статью

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

7. "SSL: peer did not return a certificate"  +/
Сообщение от cromax email on 11-Мрт-10, 21:23 
Помню что проблему решил. В чем была загвоздка, счас уже точно не скажу, но тут вроде описал решение, как счас помню...
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру