使用AWS,我可以使用API Gateway和CloudFront将http转换为https端点,并获得如下所示的URL,
https://4z9giyi2c1.execute-api.us-west-2.amazonaws.com/test/petstore/pets?type=fish
我怎么能和Azure一样?
Azure Front Door是您需要的选项。
此服务在一个服务中提供组合的Web应用程序防火墙,流量管理器(用于路由)和CDN。更重要的是,与Azure提供的其他普通CDN不同,它允许SSL终止:
您可以将路由规则配置为仅接受http或https之一,或者两者都接受,然后路由详细信息允许您指定请求是仅作为HTTPS传递,仅传递HTTP(您想要什么)还是“匹配请求” :
然后,您可以为重定向到HTTPS的非HTTPS流量设置后续规则,从而强制所有流量都是安全的。
这有一个开源扩展:
Development Tools
栏,您可以在那里找到Extensions
选项卡,然后单击添加。Redirect HTTP to HTTPS
然而我找不到它,但我找到了一个新的扩展Security Settings: HTTPS Redirect w/KeepAlive Support, Headers incl HSTS, CSP, and More. "Medium strength".
。有关此扩展的更多详细信息,check the source code on github。主要的重要文件是applicationhost.xdt。它编写规则“将HTTP重定向到HTTPS”。
<rewrite xdt:Transform="InsertIfMissing">
<rules xdt:Transform="InsertIfMissing" lockElements="clear">
<rule name="redirect HTTP to HTTPS" enabled="true" stopProcessing="true" lockItem="true" xdt:Transform="InsertIfMissing" xdt:Locator="Match(name)">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
<add input="{WARMUP_REQUEST}" pattern="1" negate="true" />
<add input="{HTTP_USER_AGENT}" pattern="Initialization" negate="true" ignoreCase="false" />
<add input="{HTTP_USER_AGENT}" pattern="SiteWarmup" negate="true" ignoreCase="false" />
<add input="{HTTP_USER_AGENT}" pattern="AlwaysOn" negate="true" ignoreCase="false" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
更新
CloudFront是AWS CND,它是一个分布式服务器网络,可以有效地向用户提供Web内容。 CDN将缓存内容存储在靠近最终用户的存在点(POP)位置的边缘服务器上,以最大程度地减少延迟。 Azure的CDN是Azure Content Delivery Network (CDN)。
如果您的目标是为您的应用程序强制执行HTTPS,那么CDN可能不是最佳选择,因为CDN用于向全球分散的客户提供低可用性和高可用性的静态内容。虽然,您可以将HTTPS与CDN一起使用,但这将导致使用CDN服务的成本。
因此,如果您的主要目标是使用HTTP,则下面的过程是将SSL绑定到您的自定义domian名称,以强制与您的网站进行HTTPS通信。
使用Microsoft Azure,您可以使用SSL证书绑定Webapp,以便通过https访问它。为了做到这一点,你需要;
在Azure Azure门户中,访问要为其添加SSL证书的webapp。然后点击应用左侧导航栏中的SSL设置。然后单击上载证书以将其添加到您的Web应用程序中。
然后,在“SSL绑定”部分中,单击“添加绑定”。在“添加SSL绑定”页面中,使用下拉列表选择要保护的域名以及要使用的证书。
执行HTTPS: -
您可以将所有HTTP请求重定向到HTTPS端口。在您的应用页面的左侧导航栏中,选择SSL设置。然后,在“仅HTTPS”中,选择“开”。
有关更多信息和完整教程,请访问Tutorial: Bind an existing custom SSL certificate to Azure App Service
但是,如果您打算使用CDN服务以及安全HTTP连接,则下面是使用Azure CDN启用具有SSL的自定义域的过程。
有关更多信息,请参阅Configure HTTPS on an Azure CDN custom domain
如果您只想将HTTP流量重定向到Azure CDN中的HTTP,则只需使用Azure CDN规则引擎创建URL重定向规则。有关更多信息,请参阅HTTP-to-HTTPS redirection