Как установить mod_ssl для Apache httpd? - PullRequest
63 голосов
/ 10 марта 2011

Ok

Итак, я установил Apache httpd некоторое время назад и недавно вернулся к нему, чтобы попытаться настроить SSL и получить его для обслуживания нескольких различных серверов Tomcat.

На данный момент у меня есть два совершенно отдельных экземпляра Tomcat, обслуживающих до нескольких разных версий (одна для dev и одна для демо) моего веб-приложения на два разных порта:

  • example.com:8081
  • example.com:8082

Я успешно (еще в январе) использовал mod_jk, чтобы получить httpd для обслуживания тех же экземпляров Tomcat http://www.example.com:8090/dev и http://www.example.com:8090/demo (8090, потому что у меня есть другое приложение, работающее на 8080 через Jetty в этот этап), используя следующий код в httpd.conf:

LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel debug

<VirtualHost *:8090>
    JkMount /devd* tomcatDev
    JkMount /demo* tomcatDemo
</VirtualHost>

Чего я не пытаюсь сделать, так это включить SSL.

Я добавил следующее к httpd.conf:

Listen 443
<VirtualHost _default_:443>
    JkMount /dev* tomcatDev
    JkMount /demo* tomcatDemo
    SSLEngine on
    SSLCertificateFile "/opt/httpd/conf/localhost.crt"
    SSLCertificateKeyFile "/opt/httpd/conf/keystore.key"
</VirtualHost>

Но когда я пытаюсь перезапустить Apache с apachectl restart (да, после закрытия того другого приложения, о котором я упоминал, чтобы оно не работало с https-соединениями), я постоянно получаю сообщение об ошибке:

Неверная команда 'SSLEngine', возможно, с ошибкой или определена модулем, не включенным в конфигурацию сервера. httpd не работает, пытается запустить

Я посмотрел в httpd/modules dir и действительно нет mod_ssl, только mod_jk.so и httpd.exp.

Я пытался использовать yum для установки mod_ssl, он говорит, что он уже установлен. Действительно, я могу найти mod_ssl.so в /usr/lib/httpd/modules, но это НЕ путь к тому месту, где я установил httpd, который /opt/httpd, и на самом деле /usr/lib/httpd не содержит ничего, кроме modules dir.

Может кто-нибудь сказать мне, как правильно установить mod_ssl для моего установленного местоположения httpd, чтобы я мог обойти эту ошибку?

Ответы [ 4 ]

88 голосов
/ 26 июня 2013

Я обнаружил, что мне нужно включить модуль SSL в Apache (очевидно, префиксные команды с sudo, если вы не работаете от имени root):

a2enmod ssl

, затем перезапустите Apache:

/etc/init.d/apache2 restart

Подробнее о SSL в Apache для Ubuntu / Debian здесь .

33 голосов
/ 10 марта 2011

Какие-либо другие команды LoadModule ссылаются на модули в папке /usr/lib/httpd/modules?Если это так, вам следует просто добавить LoadModule ssl_module /usr/lib/httpd/modules/mod_ssl.so в файл conf.

В противном случае вы захотите скопировать файл mod_ssl.so в любой каталог, из которого загружаются другие модули, и ссылаться на него там..

16 голосов
/ 05 октября 2016

Попробуйте установить mod_ssl, используя следующую команду:

yum install mod_ssl

, а затем перезагрузите и перезапустите сервер Apache, используя следующие команды:

systemctl reload httpd.service
systemctl restart httpd.service

Это должно работать в большинстве случаев.

1 голос
/ 27 ноября 2018

Я использовал:

sudo yum install mod24_ssl

, и он работал в моем Amazon Linux AMI.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...