azure-service-fabric - Microsoft Service Fabric 群集证书创建和配置
问题描述
经过几天阅读大量文档而没有任何成功,我想我会在这里问这个问题以获得一些指导。我正在尝试设置一个 Azure Service Fabric 集群并通过 Powershell 访问它,以允许我远程管理应用程序,并且文档中似乎有一个巨大的漏洞,也许对于像我这样的完全新手来说!
我有一个需要通过在移动设备上运行的 Angular SPA 访问的 Web API,所以我假设端点需要是公共的并且可以访问,因为安全性是通过 JWT 令牌管理的。
在我看来,生产环境的部署应该涉及几个阶段:-
- 主/服务器证书创建
- 管理员客户端证书创建
- Azure 门户部署
- 开发机器配置以允许通过 Powershell 访问集群
现在我可能误解了文档,所以请随时纠正我。
到目前为止我做了什么: -
- 我使用 Microsoft 自签名证书工具作为我的主/服务器证书创建了我的集群。
- 我有一个由我作为管理员证书安装在服务器上的 CA 颁发的通配符证书。
- 我已经配置了一个 CNAME 条目,它将我的 *.cloudapp.azure.com 映射到一个子域。
我无法以任何形状或形式连接到我的群集,我无法使用 Connect-ServiceFabricCluster 通过 Powershell 进行连接,也无法浏览到它指出访问被拒绝的 Service Fabric Explorer:/
任何人都可以为我提供一些有关启用连接所需遵循的过程的指导,或者提供指向一些更详细文档的链接,这些文档实际上提供了有关该过程的有意义的说明。
解决方案
在过去的几天里,这一直让我发疯,所以我发布了这个分步指南,以帮助任何遭受同样痛苦的人。
请注意:这些说明使用门户为您创建的内置 Microsoft 自签名证书,生产系统应具有有效的 CA 颁发的证书,我还没有尝试过!
通过门户创建新的 Service Fabric 群集
创建一个新的资源组
- 单击左侧菜单中的资源组,然后单击“添加”按钮
- 选择订阅
- 输入资源组名称
- 选择地区“北欧”
- 单击“查看 + 创建”,然后单击“创建”
创建新的 Service Fabric 群集
- 转到您的新资源组
- 点击“添加”按钮
- 在搜索中输入“Service Fabric”并选择“Service Fabric Cluster”
- 点击页面底部的“创建”按钮
配置 Service Fabric 群集
基本
- 输入新集群的名称
- 选择所需的 O/Select
- 输入您的用户名和密码(确保 Google 驱动器文档已更新详细信息)
- 选择相关订阅
- 从下拉列表中选择您的新资源组。
- 从位置下拉列表中选择“北欧”。
- 点击“确定”按钮
集群配置
- 选择 Node type count of 1(除非您正在配置不同类型的集群)
- 单击“节点类型”部分
- 输入“节点类型名称”,例如主要
- 选择相关的“Durability Tier”无状态 web api 可以在 Bronze
- 选择所需的“虚拟机大小”
- 除非生产要求 5 个或更多节点,否则选择“单节点集群”。
- 将“自定义端点”更改为 80,8081
- 勾选“启用反向代理”
- 点击“确定”按钮
- 再次单击“确定”按钮
安全
- 选择基本“配置类型”
- 选择“CodeClinic”密钥保管库
- 输入您的证书名称
- 单击“确定”按钮
概括
- 假设验证通过,请单击信息框中包含的“此链接”链接。
- 将打开一个新的浏览器选项卡,底部有一个“下载为证书”按钮,单击此按钮。
- 关闭新选项卡,然后单击“创建”按钮
现在需要一些时间来创建和部署您的集群,只需 20 到 30 分钟!
通过单击 Key Vault 刀片中的“访问策略”菜单选项,然后单击标有“单击以显示高级访问策略”的链接,检查以确保您的 Key Vault 具有相关的“高级访问属性”设置。
确保选中以下选项:-
- 启用对 Azure 虚拟机的访问以进行部署
- 启用对 Azure 资源管理器的访问以进行模板部署
将证书安装到任何开发机器上
- 找到下载到您机器上的 pfx 文件
- 从 Windows 资源管理器中双击文件
- 选择“当前用户”点击“下一步”按钮
- 单击“下一步”按钮
- 点击“下一步”按钮,不分配密码
- 单击“将所有证书放入以下存储”
- 单击“浏览”并选择“个人”商店
- 单击“下一步”按钮
- 单击“完成”按钮
测试连接
返回 Azure 门户并单击新创建的集群概览并等待更新消息消失并且节点变为可用,然后再继续操作!
转到您的 Azure Key Vault 并找到您的证书指纹,然后将其复制并粘贴到记事本中,以便稍后使用。
服务结构资源管理器
在 Azure 门户中找到 Service Fabric 服务,然后在概览页面中单击“Service Fabric Explorer”链接。
- 在 Chrome 中,您将收到消息“您的连接不是私有的”/“NET::ERR_CERT_AUTHORITY_INVALID”
- 单击页面底部的“继续..”链接
- 您将看到一个弹出窗口,要求您选择要使用的证书
注意:我在这里有一些奇怪的行为,我强烈建议此时关闭浏览器并清除缓存。
用于连接的 Powershell ISE 命令
CONNECTION_ENDPOINT 可以从群集概述刀片上的 Azure 门户中检索,THUMBPRINT 应该在此过程的早期复制和粘贴,但无法从 Key Vault 中获取它。
Connect-ServiceFabricCluster -ConnectionEndpoint <CONNECTION_ENDPOINT> `
-KeepAliveIntervalInSec 10 `
-X509Credential -ServerCertThumbprint <THUMBPRINT> `
-FindType FindByThumbprint -FindValue <THUMBPRINT> `
-StoreLocation CurrentUser -StoreName My
将上述内容复制并粘贴到 Powershell ISE 命令窗口中的脚本窗口中,该窗口可通过工具栏按钮访问,每行末尾的字符确定回车符。
推荐阅读
- java - 尝试使用服务帐户进行身份验证时收到“401 Unauthorized”
- javascript - d3按顺序在函数内部运行动画
- javascript - 对象数组上的 JavaScript 递归搜索
- swift - 在 authManger.Login wapper 函数中实现关闭以进行 Alamofire 身份验证?
- python-3.x - 是否可以使用 pandas DataFrame 创建多行单元格?
- swift - 过渡到嵌入在 UINavigationController 中的新 ViewController 会导致动画问题
- php - apache2 无法访问目录 - 权限被拒绝
- node.js - Hexo.io 错误 YAMLException:重复的映射键
- python - 您如何将 globals() 中的(属性,值)设置为方法(名称,值)?
- javascript - 如何填充嵌套的虚拟对象?