Назад | Перейти на главную страницу

Ошибка HTTP-01, отказано в подключении

Я только что купил новый сервер и хочу подписаться этот для www.pretty-formula.com.

Вот запись, которую я добавил pretty-formula.com:

На сервере ufw status вернулся Status: inactive.

После помещения pretty-formula.com в связанных файлах я получил эту ошибку:

root@iZj6ce932fiflob4gudnajZ:~/nginx-certbot# ./init-letsencrypt.sh 
Existing data found for pretty-formula.com. Continue and replace existing certificate? (y/N) y
### Creating dummy certificate for pretty-formula.com ...
Generating a RSA private key
......+++++
.........+++++
writing new private key to '/etc/letsencrypt/live/pretty-formula.com/privkey.pem'
-----
failed to resize tty, using default size

### Starting nginx ...
Recreating nginx-certbot_nginx_1 ... done

### Deleting dummy certificate for pretty-formula.com ...
failed to resize tty, using default size

### Requesting Let's Encrypt certificate for pretty-formula.com ...
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator webroot, Installer None
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for pretty-formula.com
http-01 challenge for www.pretty-formula.com
Using the webroot path /var/www/certbot for all unmatched domains.
Waiting for verification...
Challenge failed for domain pretty-formula.com
Challenge failed for domain www.pretty-formula.com
http-01 challenge for pretty-formula.com
http-01 challenge for www.pretty-formula.com
Cleaning up challenges
Some challenges have failed.

IMPORTANT NOTES:
 - The following errors were reported by the server:

   Domain: pretty-formula.com
   Type:   connection
   Detail: Fetching
   http://pretty-formula.com/.well-known/acme-challenge/-yXehDZroR0bFBusF3tEM9Ja9tD1XEXDmAiDnWgP6u8:
   Connection refused

   Domain: www.pretty-formula.com
   Type:   connection
   Detail: Fetching
   http://www.pretty-formula.com/.well-known/acme-challenge/KbU_eUlIBexvG1zqN-UKB7lhdiIc7MEOYar1w-vlPNs:
   Connection refused

   To fix these errors, please make sure that your domain name was
   entered correctly and the DNS A/AAAA record(s) for that domain
   contain(s) the right IP address. Additionally, please check that
   your computer has a publicly routable IP address and that no
   firewalls are preventing the server from communicating with the
   client. If you're using the webroot plugin, you should also verify
   that you are serving files from the webroot path you provided.

### Reloading nginx ...
cannot exec in a stopped state: unknown

Это новый сервер и новый домен, я не понимаю, что блокирует. Кто-нибудь знает, как дальше расследовать?

Вы должны улучшить свои навыки в разграничении такого рода проблем. Вы должны проверять вещи по порядку и исключать возможные причины по очереди. Теперь вы спешите к задаче http-01, прежде чем вы проверили все предварительные условия.

Начнем с предложений, связанных с ошибкой, найденной из собственных заметок, так как она уже предлагает подходящий подход.

Чтобы исправить эти ошибки, убедитесь, что ваше доменное имя было введено правильно и что записи DNS A / AAAA для этого домена содержат правильный IP-адрес.

Это уровень DNS, и его легко проверить с помощью dig или nslookup, например

$ dig pretty-formula.com

;; ANSWER SECTION:
pretty-formula.com.     379     IN      A       47.56.96.10

Это было ожидаемо, так как это IP-адрес с вашего снимка экрана. Это не проблема DNS.

Кроме того, убедитесь, что ваш компьютер имеет общедоступный маршрутизируемый IP-адрес.

Да, 47.56.96.10 - это общедоступный IP-адрес. Он также отвечает на ping, который является всего лишь методом определения доступности с точки зрения маршрутизации. Это не проблема маршрутизации.

и что никакие брандмауэры не препятствуют взаимодействию сервера с клиентом.

Сервер не прослушивает HTTP-порт 80:

$ nc 47.56.96.10 80 -vvv 
nc: connect to 47.56.96.10 port 80 (tcp) failed: Connection refused

Теперь сложнее сказать, в чем причина.

  • Брандмауэр. Вы сказали, что брандмауэр не включен. Вы можете попробовать получить доступ к веб-серверу от самого себя. Если вы можете подключить сервер таким образом, вероятно, проблема в брандмауэре. Например.

    curl http://47.56.96.10/
    curl http://127.0.0.1/
    
  • Если вы также не можете подключить свой сервер от самого себя, убедитесь, что Nginx запущен и настроен на прослушивание порта. 80. Возможно, ваш веб-сервер не работает.

Если вы используете плагин webroot, вам также следует убедиться, что вы обслуживаете файлы из указанного вами пути webroot.

После устранения предыдущей проблемы вы можете столкнуться с новыми проблемами, связанными с конфигурацией веб-сервера. Если веб-рут /var/www/certbot, вы должны убедиться, что http://pretty-formula.com/.well-known/acme-challenge/ переходит к пути к файловой системе /var/www/certbot/.well-known/acme-challenge/.

Немного странно, что есть Existing data found for pretty-formula.com. если это должен быть новый домен. Возможно, вы это не впервые пробуете. У вас есть несколько альтернатив, чтобы справиться с этим:

  • удалить предыдущую конфигурацию из /etc/letsencrypt/renewal/pretty-formula.com и начать заново ИЛИ
  • изменить конфигурацию на /etc/letsencrypt/renewal/pretty-formula.com для соответствия вашей конфигурации Nginx ИЛИ
  • настроить Nginx в соответствии с конфигурацией Let's Encrypt.