我正在尝试建立一个镜像我的实时服务器的开发环境,但位于防火墙后面。
直到最近,我的共享托管站点还没有提供 TLS/SSL,因此这不是一个问题/选项,但现在加密已成为常态,我需要重新配置我的开发环境。
过去,我有一个 Ubuntu 服务器在我的工作站(配置了 Webmin)上的容器中运行,其域名(例如:example.com)和目录结构与实时服务器相同。我在 /etc/hosts 文件中添加了 example.com 的条目,以便我的 Web 浏览器能够访问本地服务器而不是实时服务器。这使我能够完美地部署我的 WordPress 网站,然后通过简单的复制操作部署到实时服务器,而不必使用“迁移插件”,这不仅要花钱,而且还可能引入错误。
我的问题是,现在我需要正确模拟 TLS 的操作(本地)才能运行/测试我的 WordPress 网站。
“实时”站点 example.com 使用“Let's Encrypt”通配符证书(因此我无法以任何方式使用 Let's Encrypt,除非扰乱实时站点),但对于开发来说,拥有一个自我加密证书是完全可以接受的。某种类型的签名证书,只要它足够好,我可以向浏览器“添加例外”。我不需要允许防火墙之外的任何人访问开发/暂存站点 - 该站点只需要能够“调用”即可获取插件和主题的更新。
我见过的所有示例都描述了设置 Let's Encrypt 或设置为本地主机,但没有描述“欺骗”服务器。
这可能吗?
答案1
最简单的方法是创建自签名证书,并将其添加到 Web 服务器。并且不要忘记将其添加到浏览器(以避免)警告消息。
你可以检查这里这个怎么做
您可以通过一个命令来完成此操作:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365
如果您不想使用密码保护您的私钥,您还可以添加 -nodes(no DES 的缩写)。否则它会提示您输入“至少 4 个字符”的密码。
您可以将 days 参数 (365) 替换为任意数字以影响到期日期。然后它会提示您输入“国家/地区名称”等内容,但您只需按 Enter 并接受默认值即可。
添加 -subj '/CN=localhost' 以抑制有关证书内容的问题(将 localhost 替换为您所需的域)。
自签名证书不会经过任何第三方验证,除非您之前将其导入浏览器。如果您需要更高的安全性,则应使用由证书颁发机构 (CA) 签名的证书。