Все о Linux. LinuxRSP.Ru


Cвежие новости Linux и BSD, анонсы статей и книг прямо в почтовый ящик!
Подписаться письмом


 Сегодняшние новости:

25 лет исполнилось ядру Linux

Релиз KDevelop 5.0

Oracle открывает код JDK9 для ARM

Выпущен Timewarrior 1.0.0

Релиз Android 7.0

Percona Memory Engine для MongoDB на базе WiredTiger

PowerShell открыт и доступен для Linux

Форк TrueCrypt: VeraCrypt 1.18

Релиз Snapcraft 2.14

Релиз Go 1.7

Стабильный выпуск рабочего стола Lumina

Вышла первая версия аналога OpenCV - DCV 0.1

Выпуск минималистичной программы для мониторинга jsonmon 3

В MIT разработали новый язык программирования

Первый релиз Qt5Gtk2

Godot 2.1 - новая версия открытого игрового движка

Свободная цифровая станция звукозаписи: Ardour 5.0

Обновление SkypeWeb Plugin for Pidgin

Вышла версия 3.0 Android File Transfer для Linux (и для OS X)

Программный аналог MIDI-контроллера для создания музыки: Launchpadd v1.3

Mozilla спонсирует поддержку Python 3.5 в PyPy

Ef 0.08 - программа для моделирования динамики заряженных частиц

Обновление текстового редактора TEA до версии 42.0.0

Релиз OpenOrienteering Mapper 0.6.4

Вышли Guix и GuixSD 0.11

Релиз Opera 39

Выпуск LibreOffice 5.2

В OpenSSH обнаружены и устранены некоторые уязвимости

Эмулятор FCEUX 2.2.3

Компания Билайн переходит на российскую СУБД с открытым исходным кодом Tarantool

Google

 Новые статьи :

Утилиты для восстановления потерянных данных в Linux

Лучшие файловые менеджеры для Android

20 лучших бесплатных книг о Linux

Как сгенерировать открытый/закрытый SSH-ключ в Linux

Grive - клиент Google Drive для Linux с открытым исходным кодом

Протокол IPv6: варианты подключения

Сервер из образа: DHCP + TFTP + Initrd + OpenVZ

Обзор веб-панелей управления хостингом

Приёмы работы с Vim

Nginx как Reverse Proxy для сайта, использующего SSL

Разработка модулей ядра Linux

Мониторинг нагрузки http-сервера Apache 2

Перевод комментариев к файлу конфигурации Squid

Решение проблем при использовании "1c предприятие" 8.2 в Linux

Advanced Bash-Scripting Guide Искусство программирования на языке сценариев командной оболочки







Rambler's Top100





 
 

Сертификаты

В Stunnel есть встроенная возможность проверки подлинности сертификатов тех хостов, к которым или с которых идет подключение. Для этого предназначена опция -v. После -v при вызове Stunnel указывается уровень проверки сертификата. Он может иметь следующие значения:

0
Никакой проверки наличия и подлинности сертификата не производится (значение по умолчанию).
1
Сертификат проверяется на подлинность, если присутствует. Если сертификат не является подлинным - соединение не устанавливается.
2
Проверяется присутствие сертификата и его подлинность. Если сертификат отсутствует или не является подлинным - соединение не устанавливается.
3
Проверяется присутствие сертификата и его наличие в списке проверенных сертификатов. Если сертификат отсутствует или его нет в списке проверенных сертификатов - соединение не устанавливается.

Сертификат создается при сборке пакета и помещается вместе с секретным ключом, используемым при расшифровке входящего трафика, в файл stunnel.pem. Подлинность сертификата означает его подтверждения какой-нибудь официальной службой проверки сертификатов. Для того, чтоб твой сертификат был подтвержден (подписан), необходимо отправить заявку, заплатить и получить официальный подлинный сертификат.

В этом нет необходимости, если ты собираешься пользоваться Stunnel для своих целей. Для этого достаточно использовать неподтвержденный сертификат, не проверяя его на подлинность. Т.е. исключить использование -v 1 и -v 2. Однако остается возможность использовать -v 3.

Файл stunnel.pem после установки помещается в указанный тобой при сборке в опции --with-pem-dir каталог. В моем примере это /etc/ssl/certs. Содержимое его примерно такое:


-----BEGIN RSA PRIVATE KEY-----
#данные
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
#данные
-----END CERTIFICATE-----

Строки, начиная с "-----BEGIN CERTIFICATE-----" и заканчивая "-----END CERTIFICATE-----", и являются сертификатом. Его необходимо скопировать в отдельный файл и добавить в список проверенных сертификатов на хосте, с которым будет производится соединение. Список проверенных сертификатов может хранится в двух видах - каталог с файлами сертификатов или файл, содержащие данные сертификатов, примерно такого формата:


-----BEGIN CERTIFICATE-----
#данные 1-го сертификата
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
#данные 2-го сертификата
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
#данные  3-го сертификата
-----END CERTIFICATE-----
.....
-----BEGIN CERTIFICATE-----
#данные  N-го сертификата
-----END CERTIFICATE-----

В первом случае, файл с сертификатом удаленного хоста копируется в каталог, указанный в опции --with-cert-dir при сборке (в моем примере /etc/ssl/certs/trusted). Затем выполняется команда c_rehash, входящая в поставку OpenSSL.


c_rehash /etc/ssl/certs/trusted

Она создает ссылку на скопированный файл, имеющую имя, состоящее из набора букв и цифр, и расширение .0 ("ноль", а не заглавное "о"). Этот так называемый hash-файл используется OpenSSL для создание индекса сертификатов. Поподробнее можно почитать, набрав man x509. Если в твоей системе нет команды c_rehash, то можно выполнить команду:


mv файл_сертификата.pem `openssl x509 -hash -noout -in файл_сертификата.pem`.0

Естественно, вместо файл_сертификата.pem должно быть указано имя твоего файла.:)

Можно использовать каталог, отличный от указанного по умолчанию. Это удобно в случае, когда к каждому порту доступ должен быть с разного списка хостов. Указывается каталог при помощи опции -a. Например, для проверки сертификатов, содержащихся в каталоге /etc/ssl/certs/trusted2 необходимо запустить следующую команду:


stunnel [различные_опции] -a /etc/ssl/certs/trusted2 -v 3

Использование файла с проверенными сертификатами проще, чем использование каталога. Достаточно создать файл, записать в него содержимое нескольких сертификатов и указать его при запуске при помощи опции -A. Например, для указания файла /etc/certs/trusted_certs.pem в качестве файла проверенных сертификатов необходимо запустить stunnel таким образом:


stunnel [различные_параметры] -A /etc/certs/trusted_certs.pem -v 3

Проверка сертификатов может производится как на стороне сервера (проверять подключенных клиентов), так и на стороне клиента (чтоб быть уверенным, что подключаешься к нужному хосту). Если Stunnel на стороне сервера настроен на проверку сертификата, то Stunnel на стороне клиента должен запускаться с опцией -p, после которой указан путь к файлу stunnel.pem. При запуске на стороне сервера использование -p не обязательно. Например:


stunnel -c -p /etc/ssl/certs/stunnel.pem -d 1123 -r some_host:992

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

Предыдущая

Содержание

Следующая


(c)Ерижоков А.А., 2001.
Использование данного документа разрешено только с согласия автора и с указанием первоисточника: DH's Linux Site



      

Связь | О проекте LinuxRSP | Реклама | О Linux
© 1999-2017 LinuxRSP