Проблемы с запуском Apache Certbot из-за порта, уже используемого для httpd.bin

Моя цель - заставить SSL работать на моем сервере для работы через HTTPS. Я пытаюсь запустить команду sudo certbot --apache, чтобы сгенерировать сертификат для моего сервера как часть этих шагов. Https://certbot.eff.org/lets-encrypt/ubuntutrusty-apache.

m имеет проблемы с этим, так как когда я запускаю команду, я получаю ошибку

Error while running apache2ctl graceful. httpd not running, trying to start Action 'graceful' failed. Address already in use: AH00072: make_sock: could not bind to address [::]:80

Когда я проверяю, что работает на порту 80, я вижу httpd.bin.

tcp6 0 0 :::80 :::* LISTEN 1372/httpd.bin

Но, как говорят, httpd.bin не работает в сообщении об ошибке выше. Я попытался убить процесс, выполняющийся на порту 80, но не смог. Я также попытался найти PID родительского процесса Apache ( https://certbot.eff.org/lets-encrypt/ubuntutrusty-apache ), однако у меня нет каталога / acpache в usr / local.

Как я должен продолжить убийство процесса? - Должен ли я сосредоточиться на том, чтобы убить этот процесс, или есть ли другой способ обойти эту проблему?

Другая запутанная вещь заключается в том, что, когда я запускаю sudo-сервис apache2-статус, результат apache2 не работает, но я не могу запустить этот процесс либо используется как порт 80 (не уверен, что Apache2 требуется в моем сценарии.)

Любая помощь будет принята с благодарностью!

2
задан 10 May 2018 в 04:47

2 ответа

В настоящее время letsencrypt / certbot с опцией --apache не работает, как и ожидалось. Существуют некоторые изменения, которые должны применяться к механизму CertBot, который взаимодействует с Apache, но они пока не применяются. Я не смог найти точную статью, которую я прочитал в январе 2018 года, когда нашел эту проблему.

Вы можете использовать letsencrypt / certbot с опцией certonly. С помощью этой опции инструмент запустит собственный временный веб-сервер для создания файлов сертификатов. Порты 80 и 443 должны быть открыты в вашем брандмауэре. И вы должны остановить Apache некоторое время. К сожалению, вы должны сделать это, когда вы renew сертификаты.

sudo service apache2 stop # In 16.04+ use: sudo systemctl stop apache2.service sudo letsencrypt certonly --rsa-key-size 4096 --email user@example.com -d example.com -d www.example.com -d another.example.com # Select the option: Automatically use temporary web server (standalone) sudo service apache2 start # In 16.04+ use: sudo systemctl start apache2.service

Затем вам нужно вручную отредактировать конфигурационный файл вашего виртуального хоста. Вот пример с постоянным перенаправлением с HTTP на HTTPS (замените example.com на ваше FQDN):

<VirtualHost *:80> ServerName example.com # Redirect Requests to SSL Redirect permanent / https://example.com/ ErrorLog ${APACHE_LOG_DIR}/example.com.error.log CustomLog ${APACHE_LOG_DIR}/example.com.access.log combined </VirtualHost> <IfModule mod_ssl.c> <VirtualHost _default_:443> ServerName example.com ServerAdmin admin@example.com SSLEngine on SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem DocumentRoot /var/www/html <Directory /var/www/html> # Conf directives... </Directory> ErrorLog ${APACHE_LOG_DIR}/example.com.ssl.error.log CustomLog ${APACHE_LOG_DIR}/example.com.ssl.access.log combined </VirtualHost> </IfModule>

Включите модуль SSL для Apache и перезапустите его еще раз.

Ссылки:

Автоматическое включение HTTPS на вашем веб-сайте с помощью Certbot EFF, развертывание сертификатов Let's Encrypt: Apache на Ubuntu.

Надеюсь, эта помощь!

0
ответ дан 17 July 2018 в 14:43

В настоящее время letsencrypt / certbot с опцией --apache не работает, как и ожидалось. Существуют некоторые изменения, которые должны применяться к механизму CertBot, который взаимодействует с Apache, но они пока не применяются. Я не смог найти точную статью, которую я прочитал в январе 2018 года, когда нашел эту проблему.

Вы можете использовать letsencrypt / certbot с опцией certonly. С помощью этой опции инструмент запустит собственный временный веб-сервер для создания файлов сертификатов. Порты 80 и 443 должны быть открыты в вашем брандмауэре. И вы должны остановить Apache некоторое время. К сожалению, вы должны сделать это, когда вы renew сертификаты.

sudo service apache2 stop # In 16.04+ use: sudo systemctl stop apache2.service sudo letsencrypt certonly --rsa-key-size 4096 --email user@example.com -d example.com -d www.example.com -d another.example.com # Select the option: Automatically use temporary web server (standalone) sudo service apache2 start # In 16.04+ use: sudo systemctl start apache2.service

Затем вам нужно вручную отредактировать конфигурационный файл вашего виртуального хоста. Вот пример с постоянным перенаправлением с HTTP на HTTPS (замените example.com на ваше FQDN):

<VirtualHost *:80> ServerName example.com # Redirect Requests to SSL Redirect permanent / https://example.com/ ErrorLog ${APACHE_LOG_DIR}/example.com.error.log CustomLog ${APACHE_LOG_DIR}/example.com.access.log combined </VirtualHost> <IfModule mod_ssl.c> <VirtualHost _default_:443> ServerName example.com ServerAdmin admin@example.com SSLEngine on SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem DocumentRoot /var/www/html <Directory /var/www/html> # Conf directives... </Directory> ErrorLog ${APACHE_LOG_DIR}/example.com.ssl.error.log CustomLog ${APACHE_LOG_DIR}/example.com.ssl.access.log combined </VirtualHost> </IfModule>

Включите модуль SSL для Apache и перезапустите его еще раз.

Ссылки:

Автоматическое включение HTTPS на вашем веб-сайте с помощью Certbot EFF, развертывание сертификатов Let's Encrypt: Apache на Ubuntu.

Надеюсь, эта помощь!

0
ответ дан 20 July 2018 в 14:46

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

Похожие вопросы: