除了上面介绍的简单的7层负载均衡以外,标准应用程序网关还可以实现对外SSL的安全访问,对内卸载SSL连接的桥梁作用,标准应用程序网关实现加密和解密的处理能力过程,架构如下:
要实现这样的功能,需要具备PFX证书,我的演示环境没有公网证书,因此我采用创建私有证书的方式来给大家演示。同样的参照之前做点到站点***文章的方法创建根证书和客户端证书(生产环境这里肯定是使用公网证书或企业内部证书来做)。
创建根证书
$cert = New-SelfSignedCertificate -Type Custom -KeySpec Signature `
-Subject "CN=SelfRootCert" -KeyExportPolicy Exportable `
-HashAlgorithm sha256 -KeyLength 2048 `
-CertStoreLocation "Cert:\CurrentUser\My" -KeyUsageProperty Sign -KeyUsage CertSign
不关闭当前Powershell对话框的前提下基于刚申请的根证书来创建Web证书
New-SelfSignedCertificate -Type Custom -KeySpec Signature `
-Subject "CN=AppGatewayWebhttps" -KeyExportPolicy Exportable `
-Dnsname "*.cloudapp.net","3a9d5bd7-791a-4928-89d5-acedf221532e.cloudapp.net" `
-HashAlgorithm sha256 -KeyLength 2048 `
-CertStoreLocation "Cert:\CurrentUser\My" `
-Signer $cert -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.2")
导出根证书:不导出私钥-Base64编码
导出客户端证书:导出私钥-个人信息交换(如果可能,则包含证书路径中的所有证书;启用证书隐私)-设置密码
我首先添加一个侦听器
输入名称,侦听端口,以及协议还有PFX证书及证书密码
等上面的侦听器创建完毕后(大约需要等待16分钟),才能接下来创建规则关联到刚才创建好的侦听器
在“添加基本规则”下的“名称”字段中,输入规则的友好名称,然后选择在上一步创建的“侦听器”。选择适当的“后端池”和“HTTP 设置”,然后选择“确定”。
保存这些设置可能需要一段时间(大约需要等待5分钟),保存完以后,应用程序网关将负责处理流量的加解密。应用程序网关和后端 Web 服务器之间的所有流量都将通过 HTTP 来处理。任何通过 HTTPS 启动的需要返回到客户端的通信都会返回到加密的客户端。
最后我试下访问,没问题了,用户是通过https访问的,通过标准应用程序网关把SSL卸载再传输到后端的WEB服务器: