Ssl error no peer certificate

Привет, Telnet! И пока. Команда OpenSSL s_client для зашифрованных соединений

Изображение: JanBaby, via Pixabay CC0

Сетевая утилита telnet на слуху. Её в своё время очень активно использовало подавляющее большинство системных администраторов и прочих любителей удалённого администрирования серверов. Утилита позволяет получить доступ к портам удалённого хоста, пройти процедуру авторизации и запускать команды на этой машине.

Но протокол telnet не использует шифрование. В сегодняшних реалиях жертвовать безопасностью — непозволительная роскошь. Однако, есть ряд задач, которые telnet с переменным успехом может выполнять: тестирование сети, проверка портов, а также взаимодействие с IoT устройствами и роутерами.

Казалось бы, утилиту можно легко использовать, как продвинутую версию ping. Сама по себе, команда ping в лучшем случае всего лишь проверяет доступность хоста (иногда эту команду вообще не получится использовать, например, из-за ограничений политики доступа). А вот команда telnet не только проверяет, открыт ли порт, но и может взаимодействовать с сетевыми службами через этот порт. Но со временем мы всё чаще будет сталкиваться с необходимостью использовать зашифрованное соединение, где telnet вновь окажется бессилен.

OpenSSL и команда s_client

Поэтому в большинстве случаев вместо telnet я использую команду s_client из библиотеки OpenSSL. Команда s_client выполняет функции SSL/TLS клиента для подключения к удалённому хосту с различными настройками — ключ шифрования, вид рукопожатия, протокол и так далее. Команда также позволяет проверить, происходит ли возобновление сеанса.

Установка OpenSSL

Если библиотека OpenSSL ещё не установлена на вашей ОС, то её можно установить с помощью менеджера пакетов:

Проверка доступа к порту

Так работает команда telnet для проверки доступа к порту номер 25:

В примере выше мы открыли интерактивный сеанс с неким почтовым сервером, который слушает 25-й порт. Если мы получим к нему доступ, то сможем обмениваться с ним сообщениями. Если порт 25 окажется недоступен, соединение не будет установлено.

Теперь посмотрим, как работает аналогичная команда из OpenSSL:

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

Открываем интерактивный сеанс с зашифрованным подключением

В этом случае браузеры и веб-серверы взаимодействуют таким образом, что трафик, направленный на порт 80, фактически перенаправляется на порт 443, зарезервированный для HTTPS-трафика. Зная это, вы можете с любой веб-службой, которая слушает порт 443.

Сначала подключимся к порту с помощью SSL. Используем опцию -showcerts, и SSL-сертификат будет распечатан на вашем терминале:

Нам удалось открыть интерактивный сеанс. Пока он не закрылся, мы можем отправлять на сервер HTTP-сообщения:

Дважды нажмём клавишу Return (для MacOS) или ENTER (для Windows), и получим от сервера ответ в виде example.com/index.html:

READ  Smtp protocol returned permanent error 550

Почтовый сервер

Команду s_client можно использовать для тестирования зашифрованного соединения с почтовым сервером. Чтобы это работало, нам понадобится имя пользователя и пароль (в моём случае — для тестового пользователя), закодированные в Base64.

Закодировать их можно, например, так:

Если всё пройдёт успешно, можно переходить к следующему шагу — подключение к почтовому серверу через SSL. Обычно используется порт 587:

Я ввёл адрес почты admin@example.com, на который я ожидаю получить тестовое сообщение от почтового сервера.

Неоправданный риск

Кто-то всё ещё использует telnet, но это уже не тот незаменимый инструмент, которым он когда-то был. Теперь во многих системах он классифицирован как «устаревший» пакет. Некоторые системные администраторы недоумевают, почему он исключён из установки по умолчанию. Telnet постепенно теряет актуальность. Это объективный процесс.

Сетевая безопасность жизненно необходима для большинства систем, поэтому стоит разобраться с соответствующими инструментами. Важно, что они способны работать с защищёнными подключениями. Так что во время тестирования или устранения неполадок не придётся отключать защиту системы и рисковать безопасностью.

Облачные серверы от Маклауд быстрые и безопасные.

Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!

Источник

Ssl error no peer certificate

Доброе утро.
Пытаюсь создать SSL канал, и авторизацию при помощи SSL сертификатов.

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 сначало такая секция:

# 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

READ  Non square matrix error

# 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

# SSLRequireSSL
# SSLVerifyClient require
# SSLVerifyClient 2
# SSLVerifyClient none
# SSLVerifyDepth 1

# 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

SSLOptions +StdEnvVars

SSLOptions +StdEnvVars

# 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 %x %x \»%r\» %b»

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

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

SSLVerifyClient 2
# SSLVerifyClient none
# SSLVerifyClient reque
SSLVerifyDepth 1

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

Оглавление

  • SSL: peer did not return a certificate, angra, 05:56 , 21-Мрт-08, (1)
    • SSL: peer did not return a certificate, CromaX, 13:00 , 21-Мрт-08, (2)
      • SSL: peer did not return a certificate, CromaX, 00:13 , 22-Мрт-08, (3)
  • SSL: peer did not return a certificate, guest 55, 16:45 , 11-Мрт-10, ( 4 )
    • SSL: peer did not return a certificate, croamx, 18:27 , 11-Мрт-10, ( 5 )
      • SSL: peer did not return a certificate, guest 55, 18:56 , 11-Мрт-10, ( 6 )
        • SSL: peer did not return a certificate, cromax, 21:23 , 11-Мрт-10, ( 7 )

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

Самоподписанные сертификаты ничего не стоят и естественно валидными не считаются. Если хотите чтобы бразуеры клиентов считали ваши сертификаты валидными, то заплатите определенную сумму соответствующему CA.

1. «SSL: peer did not return a certificate» + / –
Сообщение от angra (??) on 21-Мрт-08, 05:56
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. «SSL: peer did not return a certificate» + / –
Сообщение от CromaX on 21-Мрт-08, 13:00

>Самоподписанные сертификаты ничего не стоят и естественно валидными не считаются. Если хотите
>чтобы бразуеры клиентов считали ваши сертификаты валидными, то заплатите определенную сумму
>соответствующему CA.

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

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

3. «SSL: peer did not return a certificate» + / –
Сообщение от CromaX 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

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

SSLRequireSSL
SSLVerifyClient require #требовать авторизацию сертификатом
SSLVerifyDepth 1 #проверять CA, 0 не проверять.

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

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

Высказать мнение | Ответить | Правка | ^ | Наверх | 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 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 on 11-Мрт-10, 21:23

Помню что проблему решил. В чем была загвоздка, счас уже точно не скажу, но тут вроде описал решение, как счас помню.

Источник

READ  Kobo glo все прошивки
Smartadm.ru