我在设置服务器方面几乎是个新手,但遇到了一个问题。我有一个 Ubuntu 16.04 VPS 并安装了 Apache2 和 Tomcat7。我正在为 SSL 使用 LetsEncrypt 和 Certbot。我有一个部署为 ROOT.war 的 Web 应用程序。这个 webapp 服务于 2 个不同的用户组,我已经实现了一个“多站点”解决方案来检查传入的 DNS 并相应地过滤数据(以及 UI 更改)。所以我有 www.sitea.com 和 www.siteb.com 都指向本地主机。这是我的 000-default.comf
Listen 80
ServerName www.sitea.com
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.sitea.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
ServerName www.siteb.com
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.siteb.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
还有我的 000-default-le-ssl.conf
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
SSLCertificateFile /etc/letsencrypt/live/www.sitea.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.sitea.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
ServerName www.sitea.com
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
SSLCertificateFile /etc/letsencrypt/live/www.siteb.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.siteb.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
ServerName www.siteb.com
因此,对于初始配置,我使用 Certbot 的 Apache 插件为 sitea 配置 SSL(siteb 在不同的服务器上生产)。这似乎工作正常。现在,当我更改 A 记录以将 siteb 的 DNS 指向新服务器时,我从 Apache 获得了 503。我确实回去并使用 Certbot 获得了 2 个证书,每个 DNS 一个。任何帮助将不胜感激。
只是偶然发现了答案,需要添加 ServerAlias 并且一切正常。
Vì thế
ServerName sitea.com
ServerAlias www.sitea.com
Tôi là một lập trình viên xuất sắc, rất giỏi!