【发布时间】:2020-03-31 02:40:49
【问题描述】:
我已部署我的应用程序,使用 Tomcat 和 Apache 2.4 创建 AWS Beanstalk 配置。我还成功安装了 Letsencrypt 证书并启用了 https。 HTTP/2 也已启用并且工作正常。我唯一坚持的是将www重定向到非www。 我试图在战争中添加适当的配置 - .ebextensions\httpd\conf.d\ssl.conf 这是:
LoadModule ssl_module modules/mod_ssl.so
LoadModule http2_module modules/mod_http2.so
Listen 443
<VirtualHost *:443>
Protocols h2 http/1.1
<Proxy *>
Require all granted
</Proxy>
ServerName example.com
SSLEngine on
SSLCertificateFile "/etc/letsencrypt/live/example.com/fullchain.pem"
SSLCertificateKeyFile "/etc/letsencrypt/live/example.com/privkey.pem"
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
ProxyPass / http://localhost:8080/ retry=0
ProxyPassReverse / http://localhost:8080/
ProxyPreserveHost on
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1$1 [R=301,L]
</VirtualHost>
<VirtualHost *:80>
ServerName www.example.com
RewriteEngine On
Redirect 301 / https://example.com
</VirtualHost>
它实际上重定向,但是......它重定向一次!然后客户端收到来自 example.com 的证书,并且下一次调用 www.example.com 失败,因为为没有 www 的资源生成的“错误”证书。因此 SEO 检查器无法通过 301 检查。
我的问题 - 有没有办法用 Apache 配置重定向? 难道只有s3 + Cloudfront的方法吗?
【问题讨论】:
标签: apache amazon-web-services amazon-elastic-beanstalk