Nginx

如何通過 DDNS 轉發 www 子域並使用域的證書?- Ubuntu Nginx 讓我們加密 DDNS

  • March 10, 2021

我想我錯過了一些簡單的東西,但我就是看不到它。

我在執行 Ubuntu 20.04 版本 2 的家用機器上執行最新的 Nginx。我將 pfsense 作為我的路由器/防火牆在另一台機器上執行。我已經設置了一個 DDNS (

$$ my_name $$.ddns.net) 條目指向我不斷變化的 WAN IP 地址。 我有一個域名“

$$ my_name $$.net”。我已經能夠在我的 Ubuntu/Nginx 機器上為兩個域創建一個 Let’s Encrypt 證書:$$ my_name $$.net 和$$ my_name $$.ddns.net. 我創建了一個 CNAME 記錄映射“www”到“

$$ my_name $$.ddns.net”在託管我的域的網站上。 當我訪問 https://

$$ my_name $$.ddns.net,網站完美執行。 當我訪問 https://www.

$$ my_name $$.net,該網站出現證書警告,因為它正在為 https:// 提取證書$$ my_name $$.ddns.net. www 的 nginx 配置。

$$ my_name $$.net 網站是:

server {
   listen 80;

   root /var/www/html;

   index index.html

   server_name www.[my_name].net;

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

   location ~ \.php$ {
           include snippets/fastcgi-php.conf;
           fastcgi_pass unix:/run/php/php7.4-fpm.sock;
   }
}

server {
   root /var/www/html;

   index index.html

   server_name www.[my_name].net;

   location / {
           # First attempt to serve request as file, then
           # as directory, then fall back to displaying a 404.
           try_files $uri $uri/ =404;
   }

   location ~ \.php$ {
           include snippets/fastcgi-php.conf;
           fastcgi_pass unix:/run/php/php7.4-fpm.sock;
   }

   listen 443 ssl;

   ssl_certificate /etc/letsencrypt/live/www.[my_name].net/fullchain.pem;
   ssl_certificate_key /etc/letsencrypt/live/www.[my_name].net/privkey.pem;
   include /etc/letsencrypt/options-ssl-nginx.conf;
   ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}

我必須做些什麼才能讓 Nginx 將重定向的 URL “看到”為 www。$$ my_name $$.net 而不是$$ my_name $$.ddns.net?

謝謝一堆。

您需要使用所有名稱創建您的 Let’s Encrypt 證書。

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