是否有必要在EC2链接上强制SSL到生产服务器?

时间:2018-09-08 23:53:48

标签: ssl amazon-ec2 cloudflare

我通过GoDaddy拥有域,并且我将CloudFlare用作DNS,尽管我具有SSL证书。我的托管在AWS上。

当我通过域名访问网站时,将强制执行SSL,如果我通过http访问,则会将其重定向到https-这就是我想要的。

但是,当我通过EC2域访问它时,未实施SSL,大概是因为它不在云弹证书上。

我的问题是,不将EC2域保留到为SSL强制执行的生产站点是否有危险?我尝试跟踪我的域的起源,但是它只能追溯到强制使用SSL的CloudFlare,因此我认为无法将站点追溯到EC2域?

1 个答案:

答案 0 :(得分:1)

为防止客户绕过Cloudflare并直接进入您的网站,您需要通过在Cloudflare中注册的域名将他们重定向回去。这样会产生强制实施HTTPS的副作用。

我假设:

  • Cloudflare正在终止SSL,并且您的网络服务器仅运行HTTP。

假设您的Web服务器是Apache,则有几种方法。

使用服务器别名重定向。像这样修改您的VirtualHost条目:

<VirtualHost *:80> 
    ServerAlias ec2-public-ipv4-address.compute-1.amazonaws.com
    redirect permanent / https://www.yoursite.com
</VirtualHost>

或在Web服务器的根目录中修改.htaccess

RewriteEngine On
RewriteCond %{HTTP_HOST} ^ec2-public-ipv4-address.compute-1.amazonaws.com$
RewriteRule ^(.*)$ https://www.yoursite.com/$1 [R=301,L]

将上面的DNS名称更改为实际的EC2公共DNS名称。

如果他们使用公共IP地址访问您的网站,您将希望做同样的事情。

将此规则添加到.htaccess

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^12\.34\.56\.789$
RewriteRule ^(.*)$ https://www.yoursite.com/$1 [L,R=301]

将上面的数字替换为您的公共IP地址。使IP地址中的点.用反斜杠(例如\.

)转义