我几乎是设置服务器的新手,遇到了问题。我有一个Ubuntu 16.04 VPS并安装了Apache2和Tomcat7。我正在使用LetsEncrypt和Certbot进行SSL。我有一个部署为ROOT.war的webapp。这个webapp服务于2个不同的用户组,我已经实现了一个多站点"检查传入DNS并相应地过滤数据的解决方案(以及UI更改)。所以我有www.sitea.com和www.siteb.com都指向localhost。这是我的000-default.comf
Listen 80
<VirtualHost *: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]
</VirtualHost>
<VirtualHost *:80>
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]
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
我的000-default-le-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
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
</VirtualHost>
<VirtualHost *:443>
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
</VirtualHost>
</IfModule>
因此,对于初始配置,我使用了Certbot的Apache插件为sitea配置SSL(siteb在另一台服务器上生产)。这似乎工作正常。现在,当我更改A记录以将siteb的DNS指向新服务器时,我从Apache获得503。我确实回去使用Certbot获得2个证书,每个DNS一个。任何帮助将不胜感激。
答案 0 :(得分:0)
只是偶然发现答案,需要添加ServerAlias并且一切运行良好。
所以
ServerName sitea.com
ServerAlias www.sitea.com