4

Я размещаю веб-страницу с Apache на Raspberry Pi (Debian) и не могу заставить сервер выдать текущий сертификат. Я создал самозаверяющий SSL-сертификат в /home/pi/ssl/ с:

openssl req -new -sha256 -x509 -nodes -days 365 -out example.com.pem -keyout example.com.key

Apache просматривает .pem и .key пару файлов из файла /etc/apache2/sites-enabled/owncloud.conf который содержит:

SSLCertificateFile    /home/pi/ssl/example.com.pem
SSLCertificateKeyFile /home/pi/ssl/example.com.key

Когда я удаляю эти файлы и перезагружаю Apache, я получаю ошибку [FAIL] Reloading web server config: apache2 failed! , Эта ошибка не возникает при перезапуске после создания новой пары файлов сертификатов, поэтому Apache, похоже, вызывает сертификат.

Однако сертификат, который проходит через браузеры (частные окна Chrome Incognito или FF/Safari и даже браузер на компьютере, который наверняка никогда раньше не запрашивал домен), является старым сертификатом, который я создал месяц назад - см. Ниже:

старые данные сертификата

Есть идеи, почему это происходит?

2 ответа2

3

Оказывается, выдаваемый сертификат по какой-то причине был стандартным сертификатом Apache "snakeoil". Я установил это путем:

grep -i -r "SSLCertificateChainFile" /etc/apache2/

.. которая вернула 2 строки из файла /etc/apache2/sites-available/default-ssl который ссылается на сертификат snakeoil. Я закомментировал эти строки, и теперь браузер возвращает настроенный сертификат.

0

Распространенным источником таких проблем является несколько запущенных экземпляров Apache. Изменения конфигурации фиксируются процессом, который вы (пере) запускаете, но запрос обслуживается старым процессом, который выполняется со старой конфигурацией.

Остановить службу:

service apache2 stop

Проверьте, доступен ли сайт. Если да, то вы определили причину.

Теперь беги

ps aux | grep apache

Он выдаст вам список запущенных процессов apache2 и их PID. Убейте их всех (обратите внимание, эта команда также может возвращать несвязанные процессы с Apache по имени / имени пользователя и т.д., Например, Apache Tomcat, возможно, вы не захотите их уничтожать.)

kill <pid>

Запустите ps aux еще раз и убедитесь, что процессы больше не работают.

Проверьте еще раз, если сайт доступен. Так не должно быть.

Теперь запустите сервис Apache

service apache2 start

Убедитесь, что новый сертификат обслуживается.

Если вы не хотите уничтожать процессы, вы можете перезагрузить систему. Это будет иметь тот же эффект.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .