我通过GoDaddy拥有域,并且我将CloudFlare用作DNS,尽管我具有SSL证书。我的托管在AWS上。
当我通过域名访问网站时,将强制执行SSL,如果我通过http访问,则会将其重定向到https-这就是我想要的。
但是,当我通过EC2域访问它时,未实施SSL,大概是因为它不在云弹证书上。
我的问题是,不将EC2域保留到为SSL强制执行的生产站点是否有危险?我尝试跟踪我的域的起源,但是它只能追溯到强制使用SSL的CloudFlare,因此我认为无法将站点追溯到EC2域?
答案 0 :(得分:1)
为防止客户绕过Cloudflare并直接进入您的网站,您需要通过在Cloudflare中注册的域名将他们重定向回去。这样会产生强制实施HTTPS的副作用。
我假设:
假设您的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地址中的点.
用反斜杠(例如\.