Вчера я столкнулся с той же проблемой, и, поскольку решения не было предложено, я напишу, как я это исправил.
Судя по всему, эта проблема связана не напрямую с экземпляром Lightsail или работающим сервером Apache, а со стеком Bitnami поверх него. Ниже приведены шаги по установке сертификата letsencrypt, взятые отсюда.
Необходимое условие Первое, что вам нужно сделать, это убедиться, что все пакеты обновлены на вашем сервере. Вы можете сделать это с помощью команды ниже.
sudo apt update
sudo apt upgrade
<сильный>1. УСТАНОВИТЕ CERTBOT
Сначала создайте каталог, в который вы хотите установить клиент Certbot, и перейдите в этот каталог.
sudo mkdir /opt/bitnami/letsencrypt
cd /opt/bitnami/letsencrypt
Теперь установите клиент Certbot из официального дистрибутива certbot. Вы также должны убедиться, что скрипт имеет привилегию выполнения.
sudo wget https://dl.eff.org/certbot-auto
sudo chmod a+x ./certbot-auto
Теперь запустите скрипт certbot-auto, чтобы завершить установку. Скрипт может отображать некоторые ошибки, но вы можете их игнорировать. Он запустится и загрузит все необходимые для него зависимости.
sudo ./certbot-auto
<сильный>2. СОЗДАТЬ СЕРТИФИКАТ
После установки клиента Certbot вы можете приступить к созданию сертификата для своего домена.
sudo ./certbot-auto certonly --webroot -w /opt/bitnami/apache2/htdocs/{example} -d www.example.com -d example.com
^{пример} выше является необязательным, только если вы не храните файл в самой папке htdocs. www.example.com и example.com должны быть вашим доменным именем.
Я столкнулся с проблемой после запуска этой команды, так как у меня не было записи CNAME, установленной для www. версия моего сайта. Произошла следующая ошибка: Проблема DNS: NXDOMAIN ищет A для www.example.com Чтобы исправить это, перейдите на страницу Lightsail, откройте вкладку Netowkring и выберите зону DNS для своего сайта. Нажмите на Add record
под DNS-записями, выберите CNAME, в поддомене введите просто www, а в поле maps введите свой домен без www. префикс. После этого запуск вышеуказанной команды должен пройти без проблем.
Если вам нужно получить сертификаты для нескольких доменов, следуйте этому руководству. По сути, это добавление нового пути к домашнему каталогу каждого домена, что приводит к следующей команде:
certbot certonly --webroot -w /opt/bitnami/apache2/htdocs/example -d www.example.com -d example.com -w /opt/bitnami/apache2/htdocs/other -d www.other.net -d example.net
<сильный>3. Связать SSL-сертификат Let's Encrypt с Apache
Вы можете просто скопировать свой SSL-сертификат в эти места и перезапустить Apache, чтобы активировать новый файл. Но при таком подходе вам придется снова копировать файлы при обновлении сертификата.
Поэтому лучший подход — создать символическую ссылку на ваши файлы сертификатов. Всякий раз, когда вы продлеваете свою лицензию, она может вступить в силу без этого дополнительного шага.
Вы можете использовать приведенные ниже команды для создания символической ссылки.
sudo ln -s /etc/letsencrypt/live/[DOMAIN]/fullchain.pem /opt/bitnami/apache2/conf/server.crt
sudo ln -s /etc/letsencrypt/live/[DOMAIN]/privkey.pem /opt/bitnami/apache2/conf/server.key
Убедитесь, что имя файла сертификата и путь указаны правильно. Если вы получили сообщение об ошибке, что файл уже существует, используйте приведенную ниже команду, чтобы переименовать файлы. Затем повторно запустите две приведенные выше команды.
mv /opt/bitnami/apache2/conf/server.key /opt/bitnami/apache2/conf/serverkey.old
mv /opt/bitnami/apache2/conf/server.crt /opt/bitnami/apache2/conf/servercrt.old
Как только ваши символические ссылки будут установлены, вы можете перезапустить сервер Apache, чтобы они вступили в силу. Используйте приведенную ниже команду, чтобы перезапустить сервер Apache. Вы также можете перезапустить его со страницы Lightsail.
sudo /opt/bitnami/ctlscript.sh restart apache
Вот и все. После этого переход на https://example.com должен работать, и вы должны увидеть ваш сертификат.
Уведомление. Сертификат действителен только в течение 3 месяцев, поэтому вам необходимо обновлять его каждые 3 месяца вручную или запускать для этого задание cron. Чтобы обновить его, когда придет время, выполните следующие команды:
sudo apt update
sudo apt upgrade
cd /opt/bitnami/letsencrypt
sudo ./certbot-auto renew
sudo /opt/bitnami/ctlscript.sh restart apache
person
Ivica Pesovski
schedule
06.01.2019
could not bind to address [::]:80
- уже запущен (другой) сервер? - person Stefan M   schedule 23.02.2018Address already in use: AH00072: make_sock: could not bind to address [::]:80
, а затемno listening sockets available, shutting down
. Вы можете использоватьnetstat
, чтобы узнать, что блокирует запуск apache. - person Stefan M   schedule 23.02.2018