Статьи / HTTPS и SMTPS с помощью OpenSSL

HTTPS и SMTPS с помощью OpenSSL


Отправить ссылку:

Создание HTTPS клиента

Предположим у вас есть простой HTTP клиент. Ну, если нет, то вкратце объясним его принцип работы. При связи HTTP клиент и сервер использует сокеты для взаимодействия. Обмен данных происходит по средствам запроса. Клиент посылает запрос, а сервер ему отвечает.
Пример кода небольшого HTTP клиент, который посылает GET запрос серверу:

Чем же отличается HTTPS от HTTP клиента. Во-первых, HTTPS клиент должен обычно присоединяться к другому порту сервера. Во-вторых, передача данных происходит по каналу в зашифрованном режиме. Сервер и клиент обмениваются ключами шифрования, сертификатами, с помощью которых шифруются данные. Процесс всего обмена сертификатами, шифрования и дешифрования берёт на себя OpenSSL. Программисту необходим только создать OpenSSL сокет и ассоциировать его с реальным сокетом.
Изменения для HTTPS клиента с комментариями приведены ниже:

Для использования клиента в своих целях вам необходимо изменить дефайны: WEB_HOST_NAME, WEB_HOST_PAGE_NAME, FILE_FOR_SAVE_PAGE.

HTTPS клиент работа через Proxy сервер

Работа через proxy сервер имеет свою специфику. Например, сам сервер не может же расшифровать и зашифровать ваши сообщения, так как нарушался бы сам смысл передачи данных по HTTPS: только клиент и сервер могут расшифровать данные и данные передаются в зашифрованном виде. Но тут возникает вопрос передать proxy сервер адрес, к которому мы хотим присоединиться как-то надо. Разрешает нашу проблему команда CONNECT. Сначала мы посылаем proxy серверу команду CONNECT и указываем наш адрес и порт хоста, к которому мы хотим присоединиться. После проверяем, что сервер ответил нам 200. После уже используем функции openSSL и создаём https сокет и передаём по нему данные уже в защищённом виде. Как мы это делали в примере выше.
Изменения для поддержки proxy сервера представлены ниже:



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



Олег (Дата )

Все вопросы и предложения высылайте на адрес soft_support@list.ru. Необходимо в заголовке указать название статьи.

Оставь свой отзыв


Ответьте на вопрос (ответ маленькими буквами)* :
12/2?(ответ цифрами)

Yosi
e-mail: ptiqwa@gmail.com
Дата: 03.05.10
Unfortunately SMTPS dooesn\'t work with -for example -
gmail.After entering password (of course encoded) I\'ve got 535-5.7.1 User and Password not accepted.