У Вас ругается на отсутсвие файлаDivan писал(а): ↑Сб апр 25, 2020 7:45 pm
Потом запускаю certbot --apache и получаю эту ошибку
Пробовал сделать получить ключи отдельно, не ставя на ubuntu certbot и положить сюда /etc/apache2/ssl/webhooks, так же не работает.СпойлерПоказатьКод: Выделить всё
Saving debug log to /var/log/letsencrypt/letsencrypt.log Error while running apache2ctl configtest. Action 'configtest' failed. The Apache error log may have more information. AH00526: Syntax error on line 57 of /etc/apache2/sites-enabled/webhooks.conf: SSLCertificateFile: file '/etc/apache2/ssl/webhooks/fullchain.pem' does not exist or is empty The apache plugin is not working; there may be problems with your existing configuration. The error was: MisconfigurationError("Error while running apache2ctl configtest.\nAction 'configtest' failed.\nThe Apache error log may have more information.\n\nAH00526: Syntax error on line 57 of /etc/apache2/sites-enabled/webhooks.conf:\nSSLCertificateFile: file '/etc/apache2/ssl/webhooks/fullchain.pem' does not exist or is empty\n",) root@mjdm-style:/home/gladmin#
Т.к. я не планировал (и не намерен в будущем) выставлять MajorDoMo в Интернет, то для задачи публикации вебхуков решено было поднять отдельный виртуальный сервер Apache, который будет в режиме реверс-прокси перенаправлять запросы от Яндекс на доступный только из локальной сети виртуальный сервер с MajorDoMo. Соответственно SSL-сертификат ставится именно на него. На этом моменте остановлюсь подробнее (см. ниже).СпойлерПоказатьВариант публикации вебхуков через реверс-прокси на базе веб-сервера Apache.
Первым делом активируем модули Apache - ssl, proxy и proxy_http.
sudo a2enmod ssl proxy proxy_http
Рестартуем Apache
sudo systemctl restart apache2
и проверяем, что модули загрузились
sudo apachectl -M | grep 'ssl\|proxy'
В ответе должно быть три строки.
proxy_module (shared)
proxy_http_module (shared)
ssl_module (shared)
Создаем конфигурационный файл нового виртуального сервера. Я назвал его webhooks.
sudo nano /etc/apache2/sites-available/webhooks.conf
Содержимое файла (с комментариями).
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin skysilver.da@gmail.com
# Доменное имя
ServerName majordomo.keenetic.pro
# Рабочая директория
DocumentRoot /var/www/webhooks
# Разграничение доступа
<Directory *>
Options All -Indexes
Order deny,allow
deny from all
</Directory>
# Определяем, что и куда нужно перенаправить.
# URL авторизации (authorize.php)
<Location /modules/yandexhome/authorize.php>
ProxyPass http://127.0.0.1/modules/yandexhome/authorize.php
ProxyPassReverse http://127.0.0.1/modules/yandexhome/authorize.php
</Location>
# URL для получения и обновления токена (token.php)
<Location /modules/yandexhome/token.php>
ProxyPass http://127.0.0.1/modules/yandexhome/token.php
ProxyPassReverse http://127.0.0.1/modules/yandexhome/token.php
</Location>
# URL обработчика навыка (smarthome.php)
<Location /modules/yandexhome/smarthome.php>
ProxyPass http://127.0.0.1/modules/yandexhome/smarthome.php
ProxyPassReverse http://127.0.0.1/modules/yandexhome/smarthome.php
</Location>
# URL на директорию с картинками для формы авторизации
<Location /modules/yandexhome/img>
ProxyPass http://127.0.0.1/modules/yandexhome/img
ProxyPassReverse http://127.0.0.1/modules/yandexhome/img
</Location>
# URL на директорию со стилями для формы авторизации
<Location /modules/yandexhome/css>
ProxyPass http://127.0.0.1/modules/yandexhome/css
ProxyPassReverse http://127.0.0.1/modules/yandexhome/css
</Location>
# Включаем логи
ErrorLog ${APACHE_LOG_DIR}/error.webhooks.log
CustomLog ${APACHE_LOG_DIR}/access.webhooks.log combined
# Указываем пути к файлам SSL-сертификата
SSLCertificateFile /etc/apache2/ssl/webhooks/fullchain.pem
SSLCertificateKeyFile /etc/apache2/ssl/webhooks/privkey.pem
SSLCertificateChainFile /etc/apache2/ssl/webhooks/chain.pem
# АктивируемSSL
SSLEngine on
</VirtualHost>
</IfModule>
Здесь ключевые моменты это активация SSL и секции Location, в которых определются правила перенаправления входящего трафика.
Сохраняем и закрываем конфигурационный файл, затем создаем пустую рабочую директорию.
sudo mkdir /var/www/webhooks
Активируем новый виртуальный сервер
sudo a2ensite webhooks.conf
и обновляем конфигурацию Apache для применения изменений.
sudo systemctl reload apache2
Проверяйте написание файла