Amazon web services 使用Azure的http到https端点

Amazon web services 使用Azure的http到https端点,amazon-web-services,azure,api-gateway,Amazon Web Services,Azure,Api Gateway,使用AWS,我可以使用API网关和CloudFront将http转换为https端点,并获得如下URL 如何使用Azure实现同样的功能?有一个开源扩展: 转到你的Azure应用程序服务开发工具栏,你可以在那里找到扩展选项卡并单击添加 之前有一个扩展名将HTTP重定向到HTTPS,但是我找不到它,但我找到了一个新的扩展名安全设置:HTTPS重定向,支持保留生命,标题包括HST、CSP等等。“中等强度”。 添加扩展并重新启动web 有关此扩展的详细信息。最重要的文件是。它编写规则“将HTTP重

使用AWS,我可以使用API网关和CloudFront将http转换为https端点,并获得如下URL


如何使用Azure实现同样的功能?

有一个开源扩展:

  • 转到你的Azure应用程序服务
    开发工具
    栏,你可以在那里找到
    扩展
    选项卡并单击添加

  • 之前有一个扩展名
    将HTTP重定向到HTTPS
    ,但是我找不到它,但我找到了一个新的扩展名
    安全设置:HTTPS重定向,支持保留生命,标题包括HST、CSP等等。“中等强度”。

  • 添加扩展并重新启动web
  • 有关此扩展的详细信息。最重要的文件是。它编写规则“将HTTP重定向到HTTPS”

    
    
    更新

    CloudFront是AWS CND,它是一个分布式服务器网络,可以高效地向用户交付web内容。CDN将缓存内容存储在边缘服务器上靠近最终用户的存在点(POP)位置,以最大限度地减少延迟。Azure的CDN是

    如果您的目标是为您的应用程序强制实施HTTPS,那么CDN可能不是最佳的可用选项,因为CDN用于向全球分散的客户提供低删除率和高可用性的静态内容。虽然,您可以将HTTPS与CDN一起使用,但这将导致使用CDN服务的成本

    所以,若您的主要目标是使用HTTPs,那个么下面的过程就是为了 将SSL绑定到自定义域名以强制HTTPS通信 与您的网站

    使用Microsoft Azure,您可以使用SSL证书绑定您的Webapp,以便通过https访问它。为了做到这一点,你需要有

  • 创建了一个应用程序服务应用程序

  • 将自定义DNS名称映射到您的应用服务应用

  • 已从受信任的证书颁发机构获取SSL证书

  • 拥有用于签署SSL证书请求的私钥

  • 在Azure门户中,访问要为其添加SSL证书的webapp。然后单击应用程序左侧导航中的SSL设置。然后单击上载证书,将其添加到您的web应用程序中

    然后,在SSL绑定部分中,单击添加绑定。在添加SSL绑定页面中,使用下拉列表选择要保护的域名和要使用的证书

    强制执行HTTPS:-

    您可以将所有HTTP请求重定向到HTTPS端口。 在应用程序页面的左侧导航中,选择SSL设置。然后,在仅HTTPS中选择On

    有关更多信息和完整教程,请访问

    但是,如果您打算将CDN服务与安全HTTPs一起使用 下面是使用Azure CDN启用连接的过程 使用SSL的自定义域

  • 在Azure门户中,浏览到Microsoft提供的Azure CDN标准、Akamai提供的Azure CDN标准、Verizon提供的Azure CDN标准或Verizon配置文件提供的Azure CDN Premium
  • 在CDN端点列表中,选择包含自定义域的端点
  • 在自定义域列表中,选择要为其启用HTTPS的自定义域
  • 在证书管理类型下,选择CDN管理
  • 选择On以启用HTTPS
  • 有关更多信息,请参阅

    如果您只想在Azure CDN中将HTTP流量重定向到HTTPs,则只需使用Azure CDN规则引擎创建URL重定向规则。有关更多信息,请参阅您需要的选项

    此服务提供一个组合的Web应用程序防火墙、流量管理器(用于路由)和CDN一体式服务。更重要的是,与其他纯CDN Azure产品不同,它允许SSL终止:

    您可以将路由规则配置为仅接受http或https中的一种,或同时接受两者,然后路由详细信息允许您指定是将请求作为仅https、仅http(您想要的)还是“匹配请求”传递:


    然后,您可以为重定向到HTTPS的非HTTPS流量设置后续规则,强制所有流量保持安全。

    CloudFront或API网关自带SSL,不需要任何其他额外配置。我是否需要编写任何代码将请求转发到目标URL?不,不需要编写任何额外的代码将请求转发到目标URL。查看我的更新答案。我不想从http重定向到https。而是使用https地址代理http。我可以提供一个http url并获得一个可以代理http的https url吗?@kannayan,实际上,如果您只使用默认域,您可以为您的web获得(免费)ssl,并且可以访问https站点。但是,如果您正在使用自己的域和SSL证书进行生产,强烈建议您使用自己的域和SSL证书(购买一个)。为什么建议使用自己的域和SSL?@kannayan,这是整个[关于如何将SSL绑定到web的教程]()。如果你想使用Let's Encrypt,它结合了Let's Encrypt扩展,将你的站点更改为https://.@Kannaiyan,如果你只是测试/玩一下,那么你可以安全地使用默认的CDN。你使用的是哪一层CDN,因为答案略有不同。如果您使用的是“Premium Verizon”,请参阅?我们使用Premium Verizon。Azure和Verizon之间存在集成问题。根据下面的答案,前门是ri
              <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>