我有一个带有 SSL 证书的 nginx Web 服务器,由 Let's Encrypt 提供,使用 Certbot。例如,此站点可在https://example.com 上公开访问
新服务器
我正在创建一个新服务器,一旦一切设置和部署正确,它将替换现有服务器。
我希望它在设置时可以在https://beta.example.com上使用,然后在获得批准后在https://example.com 上使用。
https://beta.example.com现在可以使用了,因为没有其他服务器为该子域的站点提供服务,但是 example.com 仅在我最终更新 DNS 记录时才有效。
我显然需要现有的 Web 服务器在新服务器准备就绪之前继续运行而不会受到影响。
如何为新服务器创建 SSL 证书以准备最终接管?
验证域的问题
当我运行 certbot 时,它尝试访问https://example.com作为验证的一部分,但是它失败了,因为该域指向现有服务器的 IP 地址。
授权程序失败。example.com (tls-sni-01): urn:acme:error:tls :: 服务器在域验证过程中遇到 TLS 错误 :: 远程错误:tls: 握手失败
重要说明:
- 服务器报告了以下错误:域:example.com
类型:tls
详细信息:远程错误:tls:握手失败要修复这些错误,请确保您的域名输入正确,并且该域的 DNS A/AAAA 记录包含正确的 IP 地址。此外,请检查您是否拥有允许服务器与 Certbot 客户端通信的最新 TLS 配置。
鉴于我正在尝试做的事情,是否有适当的流程来解决这个问题?
我安装了Puma,并作为生产 Rails 站点的 Web 服务器运行,使用 Nginx 作为反向代理。
\n\n我想使用init.d来管理 Nginx 和 Puma 的服务。在我看来,我已经设置了执行此操作的设置,但是在应用程序更改后重新启动 Puma 时,旧的更改仍然有效。
\n\n热启动和冷启动 Puma 来服务新的应用程序更改的正确做法是什么?
\n\n我能弄清楚真正应用新更改的唯一方法是重新启动服务器。
\n\n显然,这是不对的,有一个命令 where ,但是当我运行 时sudo /etc/init.d/puma restart,它看起来像是重新启动(使用新的 PID 和所有内容),但仍然没有可见的应用程序更改。
操作系统:Ubuntu 16.04
\nNginx:1.12.1
\nPuma:3.11.0
\nRuby:2.5.0
/path/to/app/Gemfile(摘录)
\n\ngem \'puma\', "~> 3.10"\nRun Code Online (Sandbox Code Playgroud)\n\n/path/to/app/config/puma.rb
\n\n# Change to match your CPU core count\nworkers Integer(ENV[\'WEB_CONCURRENCY\'] || 2)\n\n# Min and Max threads per worker\nthreads_count = Integer(ENV[\'RAILS_MAX_THREADS\'] || 5)\nthreads threads_count, threads_count\n\napp_dir = …Run Code Online (Sandbox Code Playgroud)