【问题标题】:AWS Beanstalk redirect www to non-www with ApacheAWS Beanstalk 使用 Apache 将 www 重定向到非 www
【发布时间】: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


    【解决方案1】:

    好的。所以我终于找到了一种从 www 设置正确 301 重定向的方法。没有 s3 存储桶和 Cloudfront 的站点版本到非 www。

    因此,从问题描述来看,Apache 可以很好地重定向资源,并且在浏览器获得 example.com 的证书后,它实际上拒绝了 子域。我错过的是可以生成和使用另一个证书。

    第一步是生成证书:

    certbot certonly -d *.example.com --manual --preferred-challenges dns
    

    细微差别在于您必须通过挑战。它会要求将 CNAME 记录添加到您的托管区域:

    Please deploy a DNS TXT record under the name
    _acme-challenge.domain.com with the following value:
    
    cxAGAsIvxQggW5FRAqUJfjsnknsYBjb3
    
    Before continuing, verify the record is deployed.
    

    添加记录后按 Enter 按钮,您将安装证书。

    别忘了重启 Apache! 干得好! www.example.com 现在被重定向到 example.com。

    【讨论】:

      猜你喜欢
      • 2017-05-30
      • 1970-01-01
      • 2010-11-09
      • 1970-01-01
      • 2012-04-14
      • 2014-10-28
      • 1970-01-01
      • 2017-02-02
      相关资源
      最近更新 更多