Настройте сервер Apache для использования определенного OpenSSL Engine

У меня есть работающий OpenSSL RSA движок (т.е. .so файл) и сервер Apache, настроенный в режиме SSL.
Как я могу заставить Apache использовать реализацию RSA из моего движка RSA? Другими словами: куда мне поставить двигатель (.so файл), как мне изменить openssl.cnf файл и как мне собрать Apache?

2 ответа

Решение

Шаги, которые работали для меня:

1.Установите OpenSSL из источников, указав -DOPENSSL_LOAD_CONF при беге ./config
1.1.Создайте / создайте свой движок OpenSSL и добавьте его в свой openssl.cnf файл
2.Установите httpd из источников, используя эти команды:

CFLAGS='-DSSL_EXPERIMENTAL_ENGINE -DSSL_ENGINE -DOPENSSL_LOAD_CONF' ./configure --enable-ssl --with-ssl=/usr/local/ssl --with-pcre=/usr/local/pcre --enable-so      
make       
make install

2.1.Edit httpd-ssl.conf добавляя SSLCryptoDevice engine_id и убедитесь, что при выполнении $ openssl engine, engine_id спецификатор появится в списке. Кроме того, вы должны создать самозаверяющий сертификат и закрытый ключ, изменить httpd.conf файл, но это не предмет этого вопроса. Поиск: как настроить HTTPS на Apache.
3.$ httpd -k restart и это все.

РЕДАКТИРОВАТЬ
Место .so файл (Openssl ENGINE) должен быть указан в openssl.cnf,

Для начала я не до конца понимаю ваш вопрос. Я предполагаю, что вы имеете в виду версию OpenSSL, установленную в вашей системе, которую использует Apache, и вы хотите использовать другую (предположительно более позднюю версию), которую вы также скачали и установили?

Это действительно зависит от того, какая платформа (Windows или Linux), как вы установили Apache (предварительно установленный в системе, через менеджер пакетов, такой как yum или apt-get, или установленный вручную из исходного кода).

Предварительно собранные пакеты, подобные тем, которые используются в установках Windows, и менеджеры пакетов, как правило, используют системную библиотеку SSL по умолчанию, и их нелегко изменить (хотя я, честно говоря, недостаточно знаком с ними).

Поэтому самый простой способ сделать это - установить Apache из исходного кода, а не из готового пакета.

Обычно вам нужно установить это во время компиляции, после загрузки исходного кода, используя опцию --with-ssl для настройки перед использованием make для сборки вашего кода:

./configure --with-ssl=/usr/local/ssl --enable-ssl --enable-so

Если вы не устанавливали его из исходного кода, это может быть немного пугающим. Я дал подробные инструкции в сообщении блога здесь на HTTP2 о том, как загрузить и установить последние версии OpenSSL и Apache из исходного кода на linux: https://www.tunetheweb.com/performance/http2/ но могут быть и лучшие варианты на ваша конкретная платформа.

Другие вопросы по тегам