如何通过 DDNS 转发 www 子域名并使用该域名的证书? - Ubuntu Nginx Let's Encrypt DDNS

如何通过 DDNS 转发 www 子域名并使用该域名的证书? - Ubuntu Nginx Let's Encrypt DDNS

我想我错过了一些简单的东西,但我就是看不到它。

我在运行 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.[my_name].net 网站的 nginx 配置为:

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?

非常感谢。

答案1

您需要使用以下方式创建 Let's Encrypt 证书全部名字。

相关内容