Ubuntu

無法使用 nginx (certbot) 向域添加讓我們加密 ssl 證書

  • May 17, 2020

我在使用 nginx 和 certbot 將 Let’s Encrypt SSL 證書應用到我的域時遇到問題。我的(Nuxtjs)網站在 Ubuntu 18.04 的 VPS 上執行。我想將證書添加到 mydomain.nl 和 staging.mydomain.nl 但無法。我對此很陌生,但我之前確實設法做到了這一點,沒有任何問題。

如果我是正確的,certbot 會在執行時嘗試放置一個文件來驗證域sudo certbot --nginx。但後來我收到以下錯誤:

Failed authorization procedure. mydomain.nl (http-01): urn:ietf:params:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://mydomain.nl/.well-known/acme-challenge/PBjT0nQy7m5_bE42I1jr5mMaYxLMma4ONP9FAUgCD3c [2a02:2268:ffff:ffff::4]: "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>404 Not Found</title>\n</head><body>\n<h1>Not Found</h1>\n<p"
IMPORTANT NOTES:
- The following errors were reported by the server:

  Domain: mydomain.nl
  Type:   unauthorized
  Detail: Invalid response from
  http://mydomain.nl/.well-known/acme-challenge/PBjT0nQy7m5_bE42I1jr5mMaYxLMma4ONP9FAUgCD3c
  [2a02:2268:ffff:ffff::4]: "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD
  HTML 2.0//EN\">\n<html><head>\n<title>404 Not
  Found</title>\n</head><body>\n<h1>Not Found</h1>\n<p"

  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.

我也嘗試在配置中添加這個塊:

location ~ /.well-know/acme-challenge {
   allow all;
   root /var/www/mydomain.nl/html;
}

但是沒有成功。。

我可以在我的域上訪問我的網站,因此 DNS 應該是正確的。

根據要求,當我執行時,ls -ld /var/www/mydomain.nl/html我得到以下輸出:

drwxrwxr-x 10 kim kim 4096 May 13 20:38 /var/www/mydomain.nl/html

Nginx 使用者是www-data

有人可以在這裡指出我正確的方向嗎?任何幫助將非常感激!

提前致謝!

原來我的域名註冊商為我的域名預先配置了 AAAA 記錄。我必須刪除這條記錄才能正常工作。感謝您的思考!

發生這種情況是因為 Certbot 驗證網站域是否線上。如果這收到帶有 404 程式碼的 http 響應,您將無法驗證它是否存在並且不會生成證書。

你可以試試單機模式。

certbot certonly –standalone –preferred-challenges http -d example.com –webroot-path /path/to/root

引用自:https://unix.stackexchange.com/questions/586471