---
title: "Изменение mod_ssl или примеры всяких странностей"
description: "Недавно по работе пришлось копаться в исходном коде modssl, модуле поддержки SSL для популярного веб..."
author: "yerden"
published: "2011-03-14T05:03:43+00:00"
modified: "2011-06-09T21:13:20+00:00"
locale: "ru"
canonical_url: "https://yvision.kz/post/izmenenie-mod-ssl-ili-primery-vsyakih-strannostey-127252"
markdown_url: "https://yvision.kz/post/izmenenie-mod-ssl-ili-primery-vsyakih-strannostey-127252/markdown"
site_name: "Yvision.kz"
---

# Изменение mod_ssl или примеры всяких странностей

> Недавно по работе пришлось копаться в исходном коде modssl, модуле поддержки SSL для популярного веб...

Недавно по работе пришлось копаться в исходном коде modssl, модуле поддержки SSL для популярного веб-сервера Apache. Выяснились интересные вещи.

Для работы одной информационной системы было необходимо обеспечить пользовательскую аутентификацию в Apache по сертификатам, которые выдаются нашим Национальным удостоверяющим центром (НУЦ). Кроме того, для авторизации пользователей должна проводиться проверка наличия в сертификате определённого расширения, которое было специально назначено для работы в этой информационной системе.

Как выяснилось, механизма для проверки наличия расширения в modssl нет. Однако есть следующая конструкция для использования в качестве ограничения доступа:
- SSLRequire "строка" in OID("наш_oid")

 

То есть, нам предлагается проверить сертификат на наличие расширения, извлечь его содержимое и сравнить с указанной нами же строкой. Весьма странно.

Ну ладно, допустим наше расширение в сертификате мы нашли. Но чтобы извлечь его содержимое, OID и NID этого сертификата должны быть заранее известны библиотеке openssl (кто не верит, можете посмотреть код openssl и modssl). В противном случае, modssl проигнорирует это расширение. Всё это, кстати, вполне согласуется с RFC 3280, но что мешало встроить в modssl элементарную проверку наличия самого расширения, мне непонятно.

Более того, даже если содержимое расширения modssl всё-таки вытащит, то кто сказал, что это будет какая-то строка? Всё это делает используемый синтаксис применимым в настолько частных случаях, что непонятно, зачем было разработчикам огород городить.

Я нашёл выход в написании [патча для modssl](http://www.nabble.com/Restricting-access-by-arbitrary-certificate-extension-td23400000.html). Может, кому-то поможет.

UPD: писал сей перл 29 мая 2009, делаю repost для себя, чтобы не забыть. Если кто-то наблюдает за разработкой Апача и mod_ssl, может скажет что-то новое, я за ситуацией не слежу.

---

Source: [https://yvision.kz/post/izmenenie-mod-ssl-ili-primery-vsyakih-strannostey-127252](https://yvision.kz/post/izmenenie-mod-ssl-ili-primery-vsyakih-strannostey-127252)