【问题标题】:Single laravel install, multiple domains, SSL Encryption单个 laravel 安装,多个域,SSL 加密
【发布时间】:2020-07-03 21:32:17
【问题描述】:

我正在 Laravel 中构建一个应用程序,该应用程序具有一个代码库,可以提供多个域名,可以在 CMS 中添加一个新域,并且要使该新域正常工作所要做的就是拥有它记录指向服务器。然后,CMS 本身将根据 request()->getHost() 显示该域的相应页面;功能。

应用程序正在使用 Laravel Forge 进行管理。

我的问题是关于 nginx 和 LetsEncrypt:我希望以这种方式添加的所有新域都通过 SSL 进行保护,是否需要手动添加每个新域以进行伪造,或者有什么方法可以允许通配符 TLD在证书? (如果是这样,这是否存在安全风险?)。

nginx 是否需要一些特定的配置才能使用通配符 TLD?

我的目标是避免额外的配置并使其自动化,只需将域名添加到后端。

谢谢!

【问题讨论】:

  • 您使用哪个操作系统来托管此应用程序?
  • 托管在 Ubuntu 上,使用 Digital Ocean
  • 好。因此,您需要安装通配符证书,并且您还需要访问您的域的 dns 记录,以便您可以在其中添加一些内容。

标签: laravel nginx lets-encrypt laravel-forge


【解决方案1】:

请按照步骤操作。希望它对你有用。

1 - 首先从 Github 克隆 Letsencrypt/Certbot 存储库

cd /opt
git clone https://github.com/certbot/certbot.git

2 - 现在进入新创建的目录并运行证书机器人

cd certbot
./letsencrypt-auto certonly --manual --preferred-challenges=dns --email mymail@gmail.com --server https://acme-v02.api.letsencrypt.org/directory --agree-tos -d *.mywebsite.com

3 - 现在 Certbot 将要求提供 DNS 记录,以检查您是否真的拥有该域的权限。

------------------------------------------------------------------
Please deploy a DNS TXT record under the name
_acme-challenge.mywebsite.com with the following value:

5GFgEqWd7AQrvHteRtfT5V-XXXXXXXXXXXXXX

Before continuing, verify the record is deployed.
------------------------------------------------------------------
Press Enter to Continue

4 - 将此 DNS TXT 记录添加到您的域并等待几秒钟后按 Enter 并继续。

5 - 您的证书已准备就绪!

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/mywebsite.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/mywebsite.com/privkey.pem
   Your cert will expire on 2018-08-22. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot-auto
   again. To non-interactively renew *all* of your certificates, run
   "certbot-auto renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

6 - 现在我们将 fullchain.pem 和 privkey.pem 复制到 Nginx 文件夹,并将其添加到 Nginx 服务器配置中。例如;

server {
   listen 443 ssl;
   server_name test.mywebsite.com;
   ssl_certificate /etc/nginx/ssl/fullchain.pem;
   ssl_certificate_key /etc/nginx/ssl/privkey.pem;
   ssl_trusted_certificate /etc/nginx/ssl/fullchain.pem;
...

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-16
    • 1970-01-01
    • 2011-09-14
    • 2018-02-02
    • 1970-01-01
    • 2020-03-03
    • 2019-03-13
    • 2011-07-13
    相关资源
    最近更新 更多