StoreFront是思杰桌面云的网页组件。在安装思杰桌面云的时候通常由于生产环境的需要而多台服务器,并且创建VIP来起到负载均衡的作用。StoreFront需要使用http协议来传递数据,为了保证数据安全又要改成https协议。那么这样又要牵扯到证书问题。我打算在本文中记录这些操作的配置。

目前假设已经有一个比较完整的vdi环境了。 并且在这个环境中包含了两台StoreFront,这两台StoreFront加入了一个服务组,并且能够互相同步自己的配置。并且环境中还有NetScaler和CA服务器,能够有能力建立自签的根证书和证书。
在规划中,这两台StoreFront的域名为sf1和sf2,而如果它们之间创建了vip,则域名为sf。



在我的测试环境中,我在一台Windows的服务器上建立了ac服务。

为了说明方便,我先做一个单台的storefront使用https协议。
当然根证书可以有很多种途径的生成方法,这里只是举例而已。

为了完成单台StoreFront的HTTPS访问,可能需要做以下操作。
1.申请证书
2.StoreFront绑定证书
3.StoreFront设置默认Https访问
4.在客户访问端信任证书的根证书

申请证书

证书申请的地方在iis管理器中去创建申请,这里没有规定需要在指定的IIS服务器中去申请,任意的IID都可以去创建证书申请。(并不是一定要图片中的服务器。)
在申请证书的“通用名称”中,应该填写需要申请证书的网站的域名。那么当前我们需要填入的是sf的域名。




生成了一个字符串文件,是用来给sf申请证书用的。
证书的字符串文件可以在任意IIS上生产,不过现在要在CA上去申请证书。



下图中,“保存的申请”部分填写上面生成的txt的内容。而证书模板改成web服务器。


证书是一个cer文件。双击后可以看到

完成证书申请




将网站的443端口与该证书绑定

如果你用过https去访问该主机(默认443端口),那么显示的就是这张证书。

访问这个网页

信任根证书

这张证书是由我的AC服务器来签发的,所以这样证书的根证书是AC的证书。当然目前而言根证书是不受信任的,那么它办法的证书也是不受信任的。
我们可以下载AC服务器的根证书。

选择下载CA证书,

目前根证书是不受信任的,需要把根证书安装到受信任的证书中去。




只有信任根证书的电脑才回去信任由这张根证书开出的证书。
例如下图。

(Chrome浏览器只信任公认的根证书,私人的根证书即使安装了也是不受信任的。不过可以在IE上看到证书已经受信任了。)

在StoreFront上配置默认https访问


接下来要做的是多台的sf HTTPS访问。
通过负载均衡器生成VIP,为VIP绑定域名,通过访问该域名来随机指定指定集群中的一台SF响应访问。
可以有很多方法去实现sf网页服务的负载均衡,本文中负载均衡是由netscacler实现的。
同时证书也要改成vip的域名的证书。
为了实现这个功能,可能以下操作:
1.使用Netscaler建立负载均衡,生成vip
2.为vip绑定域名,并且为此域名设置证书,绑定该证书。
3.StoreFront设置默认Https访问

在Netscaler创建负载均衡

参考文档:https://www.carlstalhood.com/storefront-load-balancing-netscaler-12/

操作基本属于重复上面提供的文档,故此可以直接看文档。
Netscaler做负载均衡可能需要完成以下步骤。
1.在Netscaler上创建ServiceGroup,Monitor,VirtualServer。
其中:
ServiceGroup决定了这个负载均衡之中所包含的主机,将它们的IP信息写入一个组中。

Monitors用于加载到Service Group中,让这个负载均衡不仅仅是一个443端口的负载均衡,而是一个StoreFront的负载均衡,这样Netscaler可以更加具体的检查服务的状态,而不是单单的检查端口是否能够访问。

VirtualServer创建了一个VIP,VIP是虚拟IP的意思,通过创建这个VIP,让客户端访问这个VIP,负载均衡器会根据主机的运行情况,分配到服务器中的其中一台。
Monitors绑定在ServiceGroup上,ServiceGroup绑定在VirtualServer上。

2.VIP的证书创建,并绑定于StoreFront。
在建立负载均衡之后,我们通过VIP来访问StoreFront,我会在DNS中为VIP创建一个域名,并且根据这个域名,为StoreFront创建证书,根据这张证书导出pfx,并且导入到其他StoreFront中去。

首先在Netscaler中创建Monitors

要注意,填写Monitor Store部分的时候,Store名要和StoreFront中对应,

接下来添加Server

Servers中添加的是需要负载均衡的服务器ip地址和其他信息。

添加Service Group

添加完成后,进入这个Service Group并且添加成员。

进入添加框,选择服务器,我创建的是是Server,所以我这里选择的是Server Based,并且通过添加按钮把前面输入的服务器输入到中间去。

端口是443,我们是https访问。


接下来选择为Service Group选择Monitor选项卡,一旦点选,网页下方出现Monitors的选项。

我们选择StoreFront

创建vip


创建完成之后,显示的页面如此。

在最下方,选择我们前面创建的ServiceGroup


接下来会要求选择证书,我们还没有做。所以我们现在要做一下。

VIP的域名不会由任何的服务和程序去生成,这个是由我们自己定义的,所以要在DNS中手工添加解析。

证书创建的过程和单台的一样。不过填写域名的时候,需要填写VIP的域名。


这是第一台证书就这么完成了。之后的服务器的操作不能重复之前的过程,因为就算证书的制作过程是一样的,证书中的密钥也有区别,因此要从第一台服务器中导出证书。导出的证书为pfx文件,并且包含密码。

在第二台中导入张pfx证书。


同理第二台上依旧添加此证书。并且如果有更多台,重复这个操作。

在完成所有的证书操作之后,可以进入netscaler查看,如果配置正确,所有的443端口应该都是起来的。(下图中选择的是TCP,实际上应该选择SSL)

(排错)
在配置完成所有的配置之后,ServiceGroup,Services统统都是UP,但是VitrualServer为Down。
临时解决方法:
可以将ServiceGroup,Services,VIP的协议统统改成TCP协议,端口配成443,这样可以完成负载均衡的转发。但是由于没有配置证书,只是单纯的tcp协议转发,Netscaler没有办法解析经过它的加密报文,没有办法对数据进行更加细节的操作。

是否ssl服务被打开?

有一个黄颜色感叹号代表该服务没有启动,右键点击SSL,启动该服务。