【Azure 环境】基于Azure搭建企业级内部站点, 配置私有域名访问的详细教程 (含演示动画)

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 【Azure 环境】基于Azure搭建企业级内部站点, 配置私有域名访问的详细教程 (含演示动画)

前言

在Azure中,可以通过App Service快速部署,构建自定义站点(PaaS服务)。默认情况下,这些站点被访问URL都是面向公网,通过公网进行解析。为了最好的安全保障,是否可以有一种功能实现只能内网访问呢?并且为了在企业内部使用,还需要配置私有的自定义域名(如myapp.aaa)?

说明:虽然App Service提供了可以集成虚拟网络(内网),但是这样的集成是指作为App Service服务器实例可以访问到虚拟网络VNET 中的资源(如SQL Service,内网API等),而App Service自身的访问还是通过公网URL访问。所以它并不能实现内网访问App Service目的

 

架构

分析需求,为了实现本文目标,在Azure中所需要创建的资源有:

1) 应用服务 App Service,部署应用并启用私有终结点(Private Endpoint),提供最终端的访问服务

2) 虚拟网络 VNET,企业的内网,只能在该网络中才能访问应用服务

3) 虚拟机VM,部署在虚拟网络中,一方面作为自定义DNS服务器,同时也作为内网客户端,测试内网访问应用服务是否成功

4) (可选)可解析的公网域名,主要用于App Service的自定义域名所有权验证,使用后可删除

5) (可选) 应用程序网关Application Gateway,实现关联内网自定义域名和应用服务App Service的网关

 

准备Azure资源

如资源已经创建,可跳过此部分

一:新建应用服务

  1. 登录Azure门户(中国区): https://portal.azure.cn/
  2. 选择App Service,点击“Add”创建新的Web App
  3. Subscription为默认订阅或选择合适的订阅
  4. Resource Group 点击“Create new”,输入“myCorpRG
  5. Web App Name 输入“myinternalapp01
  6. Publish为默认Code模式
  7. Runtime Stack选择.NET 5, Operating Ssystem为Windows,也可根据自己需求选择
  8. Region选择China North 2 或者China East 2 (因Private Endpoint功能在中国区只有2区支持)
  9. App Service Plan 点击“Create new”,输入“myinternalplan
  10. Sku and size 需要至少选择Premium V2 P2v2,  也可选择PremiumV3 和 Isolated,其他定价层不支持Private Endpoint
  11. Monitoring Tab页中,本文不开启Application Insights,如实际项目需要,可以开启。
  12. 点击“Review + Create”,创建Web App资源

动画演示:

 

参考官方创建文档:

在 Azure 中创建 ASP.NET Core Web 应用:https://docs.azure.cn/zh-cn/app-service/quickstart-dotnetcore?tabs=netcore31&pivots=platform-windows

Using Private Endpoints for Azure Web App:https://docs.microsoft.com/en-us/azure/app-service/networking/private-endpoint

 

二:新建虚拟网络

  1. 登录Azure门户(中国区): https://portal.azure.cn/
  2. 选择Virtual networks,点击“Add/Create”创建新的Virtual networks
  3. Subscription为默认订阅或选择合适的订阅
  4. Resource Group选择“myCorpRG”, 为上一节创建应用服务时所建,保持实验中所有资源在同一个组中
  5. Virtual Network Name输入 myinternalvnet01
  6. Region选择China North 2,保持本次实验中所有资源在同一个区域
  7. IP Addresses根据默认值而定,如10.3.0.0/16(有效内网地址范围 10.3.0.0 ~ 10.3.255.255。共计65536个IP地址
  8. Subnet 子网,除了默认的default外,还需要创建2个
  • 为App Service Private Endpoint创建一个新子网, name: appprivatesubnet, address 10.3.1.0/24
  • 为Application Gateway创建一个新子网, name: appgatewaysubnet, address 10.3.2.0/24
  1. 点击Next按钮,其他Security,Tags保持默认值
  2. 点击Review +Create, 创建Virtual networks资源

动画演示:

 

参考官方创建文档:

快速入门:使用 Azure 门户创建虚拟网络:https://docs.azure.cn/zh-cn/virtual-network/quick-create-portal

 

三:新建虚拟机

该虚拟机在本次实验中即作为自定义的DNS服务器,同时也作为实验中访问Web App 站点的客户端

  1. 登录Azure门户(中国区): https://portal.azure.cn/
  2. 选择Virtual machine,点击“Add/Create”创建新的Virtual machine
  3. Subscription为默认订阅或选择合适的订阅
  4. Resource Group选择“myCorpRG”, 为第一节创建应用服务时所建,保持实验中所有资源在同一个组中
  5. Virtual machine name输入myinternalvm01
  6. Region选择China North 2,保持本次实验中所有资源在同一个区域
  7. Image 选择 Windows Server 2019 Datacenter – Gen1, 也可以根据自己的情况选择,需要能作为内网的DNS 服务器
  8. Size 选择 Standard_DS2_v2, 实际需求中可以选择更高的定价层
  9. 设置RDP虚拟机的Username 和Password, 如myadmin, 1qaz@WSX3edc
  10. Inbound ports 看起3389,用于RDP连接
  11. 下一步,设置Disks,如无其他需求,保持默认即可
  12. 下一步设置Networking,选择第二步中创建的Virtual network(myinternalvnet01)
  13. 选择subnet为默认的default。
  14. Public IP点击Create New,创建一个新的公网IP,用于RDP连接,Name输入myinternalvm01-ip, SKU选择Basic,Assignment为Dynamic方式,动态分配IP地址
  15. 点击Next按钮,其他Management, Advanced,Tags保持默认值
  16. 点击Review +Create, 创建Virtual machine资源

动画演示:

参考官方创建文档:

快速入门:在 Azure 门户中创建 Windows 虚拟机:https://docs.azure.cn/zh-cn/virtual-machines/windows/quick-create-portal

 

四:配置Private Endpoint

  1. 登录Azure App Service门户(中国区): https://portal.azure.cn/?l=en.en-us#blade/HubsExtension/BrowseResourceBlade/resourceType/Microsoft.Web%2Fsites
  2. 选择myinternalapp01 App Service,点击“Networking”并选择Private Endpoint Connections
  3. 点击“Add”,输入Private Endpoint的名称myappprivate01
  4. 选择Virtual network为myinternalvnet01
  5. 选择Subnet为appprivatesubnet
  6. Integrate with private DNS zone为 No,自己搭建DNS服务器(当然,也可以选择Private DNS Zone)
  7. 点击OK,创建成功

PS: Private Endpoint启动成功后,App Service即无法从公网访问,需要在Virtual Network (myinternalvnet01)所在的VM中访问,但需要配置正确的DNS,CNAME及A记录,在下一节中即将介绍

动画演示:

参考官方创建文档:

Using Private Endpoints for Azure Web App:https://docs.microsoft.com/en-us/azure/app-service/networking/private-endpoint

 

 

五:实现默认App Service域名内网访问

根据Private Endpoint启用后的DNS配置文档,需要在内网的DNS服务器中配置两条DNS记录

myinternalapp01.chinacloudsites.cn

CNAME

myinternalapp01.privatelink.chinacloudsites.cn

myinternalapp01.privatelink.chinacloudsites.cn

A

10.3.1.4

私网IP地址可以在VNET中Connected devices(已连接设备)查看内网IP地址

 

RDP到VM(myinternalvm01) 并启用DNS服务

  1. RDP到VM(myinternalvm01) 并启用DNS服务
  2. 添加CNAME和A记录
  1. 在VM中启动DNS Manager
  2. 右键点击Forward Lookup Zones,选择New Zone
  3. 默认选择使用Primary zone
  4. 输入Zone名称 chinacloudsites.cn
  5. 下一步,下一步,点击Finish按钮
  6. 等待Zone创建完成后,选择chinacloudsites.cn Zone, 右键添加新CNAME 和A记录
  7. 回到Azure门户中,在虚拟网络(VNET)中设置自定义DNS Server,IP地址为10.3.0.4
  8. 重启VM,然后RDP并验证默认域名访问是否成功:myinternalapp01.chinacloudsites.cn

动画演示:

 

参考官方创建文档:

Private Endpoint DNS: https://docs.microsoft.com/en-us/azure/app-service/networking/private-endpoint#dns

 

六:配置自定义域名(内网)

根据以上的步骤,已经可以通过默认的App Service域名访问成功。接下来的步骤就是配置内网的自定义域名。如myapp.aaa。如果在内网DNS中直接配置CNAME指向App Service默认域名,虽然通过nslookup或者nameresolver.exe解析能够指向App Service的内网IP,但是在访问时候会遇见404错误

为了解决自定义域名访问404的问题,必须使此域名(myapp.aaa)与App Service的进行域名绑定,因为域名并没有aaa的顶级域名,所以通过验证域名所有权的方式无法实现绑定到aaa不是公认的域名。

  • 但是如果有一个公有域名(如xxx.com)可以临时借用,用于验证App Service与域名之间的所有权,当验证成功后,就可以在公网DNS上解除CNAME,或A记录的绑定。然后在内网DNS中配置域名与App Service的CNAME记录。实现在内网中自定义域名的访问。详细的配置步骤见方案一
  • 但是如果没有这样的一个公网域名,且必须在内网中使用如aaa的域名,则可以通过网关的方式实现。使用基于虚拟网络搭建的Application Gateway,让myapp.aaa域名与Application Gateway的内网IP地址绑定,让请求转换到App Service。详细的配置步骤见方案二

 

方案一:添加应用程序App Service自定义域名

 

此实验中,使用myapp.mylubu.com作为与App Service进行域名绑定,并验证域名所有权

1)  进入App Service的Custom Domain页面,点击Add custom domain按钮

2)  输入myapp.mylubu.com,点击 validate。提示Domain ownership验证失败,需要在DNS上配置一个CNAME记录和一个asuid.{subdomain}记录

3)  实验中使用的时Azure的Public DNS Zone,进入mylubu.com DNS Zone,添加CNAME记录

4)  添加asuid.myapp的TXT记录

5)  回到App Service的Custom Domain页面(#1), 重复验证myapp.mylubu.com域名,直至成功后绑定域名成功

6)  再次回到Public DNS Zone页面。删除为mylubu.com添加的CNAME和TXT记录

7)  RDP到VM中,进入私网DNS服务器,为myapp.mylubu.com配置内网DNS CNAME记录。

8)  在VM中访问myapp.mylubu.com成功

PS:在验证域名所有权时,myapp.mylubu.com必须公网可解析

动画演示:

 

参考官方创建文档:

将现有的自定义 DNS 名称映射到 Azure 应用服务:https://docs.azure.cn/zh-cn/app-service/app-service-web-tutorial-custom-domain

 

方案二:新建应用程序网关Application Gateway实现域名转换

创建内网应用程序网关,在网关中设置后端池为App Service。

  1. 登录Azure门户(中国区): https://portal.azure.cn/
  2. 选择Application gateways,点击“Add/Create”创建新的application gateway
  3. Subscription为默认订阅或选择合适的订阅
  4. Resource Group选择“myCorpRG”, 为第一节创建应用服务时所建,保持实验中所有资源在同一个组中
  5. Application gateway name输入 myinternalappgateway01
  6. Region选择China North 2,保持本次实验中所有资源在同一个区域
  7. Tier 选择 Standard, 因实验中只需要开启Private IP地址即可
  8. 其他Instance Count, SKU size, HTTP2等设定。保持默认
  9. Virtual Network中选择 myinternalvnet01
  10. Subnet选择 appgatewaysubnet, 均在创建虚拟网络时准备好。
  11. Next : Forntends页面中,Forntend IP address type选择 Private,并且Use a specific private IP address 设置为No,然系统自动分配一个内网IP。
  12. Next : Backends 页面中,点击“Add a Backend Pool”, Name输入backendpool01,Target Type设置为App Services , Target选择 myinternalapp01
  13. Next : Configuration 页面中,配置Routing rule,  点击Add a routing rule
  1.      Rule name输入为 rule01
  2.      Listener name输入 listener01
  3.      Frontend IP选择 Private
  4.      Protocol 为HTTP
  5.      Port 为80, Listener的其他选项则选择默认值
  6.      在Backend Targets中,设置Target type为Backend pool
  7.      Backend target选择第12步中创建的backendpool01
  8.      HTTP settings则需要点击”Add new”按钮,新增HTTP的规则
  9.      HTTP settings name 输入 httpsetting01
  10.   Backend Protocol 选择HTTP, Backend Port为80端口
  11.   Additional settings部分全部保持默认值
  12.   Host Name部分中,设定Override with new host name 为Yes, Host name override为 Pick Host name from backend target
  13.   Create custom probes为默认值 Yes
  14.   点击Add按钮,回到Configuration配置页面
  1. 点击Next : Tags
  2. 点击 Next : Review + Create。创建Application Gateway。
  3. 在Application Gateway中查看Backend Pool Healthy状态。等待状态值为正常后,RDP到VM中,使用Application Gateway的内网IP地址访问,验证是否成功访问App Service。
  4. 为内网域名myapp.aaa添加A记录,指定到Application Gateway的Private IP。
  5. 验证myapp.aaa成功访问app service

PS:当应用程序网关创建好之后,在Backend Health中查看后端池的健康状态非常重要。只有状态为Healthy的后端才能成功访问

动画演示:

参考官方创建文档:

使用 Azure 应用程序网关定向 Web 流量 - Azure 门户:https://docs.azure.cn/zh-cn/application-gateway/quick-create-portal

 

七:下载Azure资源包

本文实验使用的所有资源模板文件下载: https://files.cnblogs.com/files/lulight/myCorpRG-ARM-Template.zip

相关文章
|
8天前
|
弹性计算 移动开发 安全
阿里云域名注册、续费收费标准价格表及最新优惠口令获取及使用教程参考
阿里云域名注册和续费收费标准在9月份随着全球域名价格的上涨,域名收费标准也做了调整,目前阿里云的.com英文域名的注册价格为83元,续费收费标准为90元,为了让更多用户在注册和续费时价格能更加实惠,阿里云推出了域名优惠口令活动,域名优惠口令适合在域名注册和续费时使用,使用优惠口令通常可以使注册和续费价格减免几元到十几元不等,例如使用优惠口令续费.com域名就可减少5元。本文为大家展示目前阿里云域名注册和续费的最新收费标准以及如何领取和使用域名优惠口令的相关教程,以供参考。
169 11
|
16天前
|
缓存 算法 API
查询域名WHOIS信息免费API接口教程
该API用于查询顶级域名的WHOIS信息,不支持国别域名和中文域名。通过POST或GET请求,需提供用户ID、KEY及待查询域名。返回信息包括域名状态、注册商、时间等详细数据。示例与文档见官网。
|
22天前
|
域名解析 监控 网络协议
slb配置域名注意事项
slb配置域名注意事项
32 11
|
21天前
|
域名解析 监控 安全
slb配置检查域名说明注意事项
slb配置检查域名说明注意事项
24 5
|
21天前
|
负载均衡 安全 网络安全
slb配置健康检查域名
slb配置健康检查域名
24 4
|
21天前
|
负载均衡 应用服务中间件
slb何时需要配置健康检查域名
slb何时需要配置健康检查域名
25 3
|
2月前
|
域名解析 网络协议
非阿里云注册域名如何在云解析DNS设置解析?
非阿里云注册域名如何在云解析DNS设置解析?
|
2月前
|
存储 安全 数据库
阿里云最新域名注册和续费、企业邮箱、云虚拟主机收费标准与价格参考
域名注册和续费以及企业邮箱和云虚拟主机是很多用户上云第一步需要购买的产品,从2024年9月1日开始,全球域名又迎来了一波价格上调,目前阿里云的.com英文域名的注册价格由原来的78元涨价到了83元,续费价格也涨到了90元,不过企业新用户注册有1元购等活动。企业邮箱目前活动价540.00元/1年起,云虚拟主机独享基础增强版月付49元/1个月起,年付588元/1年起。本文为大家整理汇总了截止目前,阿里云域名注册和续费及转入收费标准、企业邮箱收费标准与活动价格、云虚拟主机最新收费标准,以供参考。
|
2月前
|
弹性计算 网络协议 安全
如何使用阿里云虚拟主机和域名设置网站?
如何使用阿里云虚拟主机和域名设置网站?
|
2月前
|
移动开发 安全 API
阿里云最新域名注册及续费和转入收费价格表参考
目前域名注册管理机构(Verisign)已上调.com中英文域名成本,这一变动将直接影响到全球范围内.com域名价格,各大注册商的.com域名注册、续费、转移价格已同步上涨。以阿里云为例,此次涨价之后,.com英文域名的注册价格由原来的78元涨价到了83元,续费价格也涨到了90元,下面是2024年9月1日涨价之后,阿里云最新的域名注册及续费和转入最新收费价格表。