Nginx

為什麼我在使用 Certbot 安裝 SSL 證書後無法訪問我的網站?(執行 Ubuntu 和 Nginx)

  • September 12, 2021

我無法在我的 nginx 伺服器上建立與埠 443 的連接。

我需要埠 443 來啟用 https 連接,我使用 certbot 來安裝 ssl 證書,我使用預設安裝和本指南中的預設說明

即使我已將“nginx full”命令設置為同時打開 http 和 https 埠,我還是通過執行以下命令仔細檢查以確保埠 443 確實打開sudo lsof -i -P -n | grep LISTEN,並且在響應中,我得到埠 443 正在使用通過 nginx

我嘗試使用 cURL 之類的工具來測試我的埠,埠 80 工作得很好,但是埠 443 沒有響應

我缺乏伺服器管理經驗,我試圖檢查其他資源,但我不知道還能做什麼。

我的站點可用配置:

server {

       root /var/www/muhammed-aldulaimi.com/html;
       index index.html index.htm index.nginx-debian.html;

       server_name muhammed-aldulaimi.com www.muhammed-aldulaimi.com;

       location / {
               try_files $uri $uri/ =404;
       }

   listen [::]:443 ssl ipv6only=on; # managed by Certbot
   listen 443 ssl; # managed by Certbot
   ssl_certificate /etc/letsencrypt/live/muhammed-aldulaimi.com/fullchain.pem; # managed by Certbot
   ssl_certificate_key /etc/letsencrypt/live/muhammed-aldulaimi.com/privkey.pem; # managed by Certbot
   include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
   ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot


}
server {
   if ($host = www.muhammed-aldulaimi.com) {
       return 301 https://$host$request_uri;
   } # managed by Certbot


   if ($host = muhammed-aldulaimi.com) {
       return 301 https://$host$request_uri;
   } # managed by Certbot


       listen 80;
       listen [::]:80;

       server_name muhammed-aldulaimi.com www.muhammed-aldulaimi.com;
   return 404; # managed by Certbot

}

ufw狀態:

22/tcp                     ALLOW       Anywhere
Nginx Full                 ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)
Nginx Full (v6)            ALLOW       Anywhere (v6)

在確認 ubuntu 的防火牆設置沒有問題後,我認為問題出在 Web 主機本身。我使用的是 AWS Lightsail,結果發現 Lightsail 只接受來自埠 22 和 80 的連接。在“網路”選項卡中添加接受其他埠的規則;解決了我的問題。

引用自:https://serverfault.com/questions/1077309