我有PHP网站(从现在起将称之为awesomedomain.com(,目前在Elastic Beanstalk中负载平衡,SSL已启动并运行。
我可以通过获得与网站的安全连接https://awesomedomain.com/然而每当我输入";awesomedomain.com";它仍然作为不安全端口连接。
我有两个听众80和443。如何将所有传入流量路由到端口443以进行全局SSL连接?
事先感谢任何人。
干杯,
~生物
您可以设置两种方式:
- 安装规则是主机文件:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName abc.example.com
Redirect permanent / https://abc.example.com/
</VirtualHost>
<VirtualHost _default_:443>
ServerName abc.example.com
DocumentRoot /var/www/html/example
SSLEngine On
</VirtualHost>
更改后不要忘记重新启动服务器。
- 在
.htaccess
文件中:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}
- 如果您使用CloudFront和ELB作为ssl证书的端点,那么CloudFront可以选择将http重定向到https所有请求
当您只键入"awesomedomain.com";浏览器自动添加";http://";然后尝试命中该服务器的端口80
。您的应用程序必须在请求时从端口80向端口443发送重定向,以强制浏览器使用SSL。如果您使用的是应用程序负载均衡器(ALB(或CloudFront,则可以在那里配置重定向。否则,服务器需要从负载均衡器检测X-Forwarded-Proto
标头的值,如果不是443
,则发出重定向。
这里介绍了在Elastic Beanstalk中执行此操作的方法。