演练:将 Team Foundation Server 设置为要求 HTTPS 和安全套接字层 (SSL)

更新:2007 年 11 月

下面的演练描述一个要求 Team Foundation 客户端使用 HTTPS 和安全套接字层 (SSL) 连接来连接 Visual Studio Team System 2008 Team Foundation Server 的过程。为了支持与 Team Foundation Server 部署的外部连接,您必须对 Internet 信息服务 (IIS) 进行配置以启用基本和/或摘要式身份验证。此外,还必须配置 Internet 服务器应用程序编程接口 (ISAPI) 筛选器。

在本演练中,您将完成以下任务:

  1. 为 Team Foundation Server 网站创建证书请求。

  2. 发出证书请求并创建二进制证书文件。

  3. 安装并分配证书。

  4. 配置 Team Foundation Server 以要求使用 HTTPS 和 SSL。

  5. 在客户端计算机上安装证书。

  6. 测试证书。

先决条件

若要完成本演练:

  • 必须安装并运行构成 Team Foundation 数据层和 Team Foundation Server 应用层的逻辑组件。本演练将运行构成 Team Foundation 应用层的逻辑组件的一台或多台服务器称为 Team Foundation 应用层服务器。还将运行构成 Team Foundation 数据层的逻辑组件的一台或多台服务器称为 Team Foundation 数据层服务器。根据您的部署配置,Team Foundation 应用层服务器和 Team Foundation 数据层服务器可能是同一台物理服务器,也可能是一台或多台不同的物理服务器。有关更多信息,请参见《Team Foundation 安装指南》。可以从 Microsoft 下载中心 (https://go.microsoft.com/fwlink/?linkid=79226) 下载最新版《Team Foundation 安装指南》。

  • 必须具备可颁发证书的证书颁发机构 (CA)。本演练假设您使用 Microsoft 证书服务作为 CA。如果没有证书颁发机构,您可以安装 Microsoft 证书服务并配置一个证书颁发机构。有关更多信息,请参见 Microsoft 网站 (https://go.microsoft.com/fwlink/?LinkId=70929)。

  • 如果为 SSL 连接配置生成代理:

    • Team Foundation Build 和团队资源管理器必须都已安装并且运行正常。

    • 必须已为生成代理颁发了证书。

    • 生成计算机上必须已安装 Windows 支持工具。这些工具是将证书与 IP 地址和端口进行关联所必需的。有关更多信息,请参见“Windows Support Tools”(Windows 支持工具)(https://go.microsoft.com/fwlink/?LinkId=93827)。

必需的权限

若要完成此过程,您必须是 Team Foundation 应用层服务器和数据层服务器上“Administrators”组的成员以及 Team Foundation“Administrators”组的成员。若要为 SSL 连接配置生成代理,您必须是生成计算机上“Administrators”组的成员。有关权限的更多信息,请参见 Team Foundation Server 权限

假设

本演练的假设如下:

  • 已经在安全的环境中安装和部署了 Team Foundation 数据层服务器和 Team Foundation 应用层服务器,并根据安全最佳做法对这些服务器进行了配置。

  • 配置带有 SSL 的 Team Foundation Server 的管理员熟悉公钥基础结构 (PKI) 和证书,也熟悉如何请求、颁发和分配证书。有关 PKI 和证书的更多信息,请参见 Microsoft 网站 (https://go.microsoft.com/fwlink/?LinkId=70930)。

  • 该管理员熟悉 Internet 信息服务 (IIS)、Microsoft SQL Server 和网络设置的配置,并具备开发环境网络拓扑的操作知识。

安装 Microsoft 证书服务

本演练使用 Microsoft 证书服务作为证书颁发机构 (CA) 以颁发证书。为了方便起见,在本演练中证书服务安装在 Team Foundation 应用层服务器上,但是您可以选择自己的证书颁发机构软件和部署配置,以便最好地满足您的业务需求。出于安全考虑,您在生产部署环境中部署证书服务时应考虑将根证书颁发机构隔离出来。从物理上将 CA 服务器隔离在只能由安全管理员访问的位置可以显著降低被篡改的风险。有关证书服务功能和最佳做法的更多信息,请参见 Microsoft 网站 (https://go.microsoft.com/fwlink/?LinkId=70929)。

警告:

一旦安装了证书服务,就不可更改该计算机的名称或更改登记该计算机的域。如果更改了计算机名称或域,则从该证书颁发机构 (CA) 颁发的证书将无效。

安装证书服务

  1. 单击“开始”,单击“控制面板”,然后选择“添加/删除程序”。

  2. 单击“添加/删除 Windows 组件”。

  3. 在“Windows 组件向导”中,在“组件”列表中单击“证书服务”。

  4. 查看消息框中的文本,然后单击“是”。

  5. 单击“下一步”开始安装。

  6. 在“CA 类型”页上,选择“独立根 CA”,然后单击“下一步”。

  7. 在“CA 识别信息”页上的“此 CA 的公用名称”中,键入计算机名称。

  8. 在“有效期”中,将证书的持续时间更改为六 (6) 个月,然后单击“下一步”。

  9. 在“证书数据库设置”页上,不做任何更改单击“下一步”。

    此时出现消息框,指示必须停止 IIS。

  10. 在消息框中单击“是”。

    出现“配置组件”页。

  11. 如果出现消息框,并且其中含有关于 Active Server Page (ASP) 的信息,则单击“是”。

  12. 单击“完成”。

为 Team Foundation Server 网站创建证书请求

在应用层计算机上,您必须使用 Internet 信息服务 (IIS) 管理器为 Team Foundation Server 创建证书请求。

为 Team Foundation Server 网站创建证书请求

  1. 依次单击“开始”、“管理工具”和“Internet 信息服务(IIS)管理器”。

  2. 展开“计算机名称 (本地计算机)”,然后展开“网站”。

  3. 右击“Team Foundation Server”,然后单击“属性”。

  4. 在“Team Foundation Server 属性”中,单击“目录安全性”选项卡。

  5. 在“安全通信”下,单击“服务器证书”。

    “Web 服务器证书向导”即出现。单击“下一步”。

  6. 在“服务器证书”页上,单击“新建证书”,然后单击“下一步”。

  7. 在“延迟或立即请求”页上,单击“下一步”。

  8. 在“名称和安全性设置”页上,不做任何更改单击“下一步”。

  9. 在“单位信息”页上,指定“单位”和“部门”值。例如,输入公司名称作为“单位”,输入团队或组的名称作为“部门”。单击“下一步”。

  10. 在“站点公用名称”页上,不做任何更改单击“下一步”。

  11. 在“地理信息”页上,在“国家(地区)”、“省/自治区”和“市县”框中指定相应的信息,然后单击“下一步”。

  12. 在“证书请求文件名”页上的“文件名”下,指定您想保存证书请求文件的位置以及文件的名称,然后单击“下一步”。

    说明:

    确保将证书请求文件保存在可从 CA 计算机访问到的网络共享或其他位置上。

  13. 检查“请求文件摘要”页上所列出的信息,然后单击“下一步”。

  14. 单击“完成”。

  15. 单击“确定”退出“Team Foundation Server 属性”对话框。

发出证书请求并创建二进制证书文件

创建证书请求之后,必须使 CA(本例中为 Microsoft 证书服务)颁发基于该请求的证书。创建证书之后,就可以将该证书分配到使用 IIS 的相应网站。

使用 Microsoft 证书服务发出证书请求

  1. 单击“开始”,单击“管理工具”,然后单击“证书颁发机构”。

  2. 在资源管理器窗格中右击计算机名称,选择“所有任务”,然后单击“提交一个新的申请”。

  3. 在“打开申请文件”对话框中,找到您在前面的过程中创建的证书请求文本文件,然后单击“打开”。

  4. 在资源管理器窗格中,展开计算机名称,然后单击“挂起的申请”。

  5. 记下挂起的申请的“申请 ID”值。

  6. 右击该申请,选择“所有任务”,然后单击“颁发”。

  7. 在资源管理器窗口中的计算机名称之下,选择“颁发的证书”以查看列出的证书,并确认是否颁发了一个与您的申请的“申请 ID”值匹配的证书。

  8. 在“颁发的证书”中,右击颁发的证书,选择“所有任务”,然后单击“导出二进制数据”。

  9. 在“包含二进制数据的列”中,选择“二进制证书”。在“导出选项”下,选择“保存二进制数据到一个文件”,然后单击“确定”。

  10. 在“保存二进制数据”中,将该文件保存到一个便携媒体设备上,或保存到一个可以由 Team Foundation 应用层计算机访问的网络共享位置。

  11. 退出“证书颁发机构”。

安装并分配证书

在可将 SSL 用于 Team Foundation Server 之前,必须在 Team Foundation Server 网站上安装服务器证书,然后在 Team Foundation Server 相关的网站上配置 HTTPS。这些相关网站包括下列网站:

  • 默认网站

  • SharePoint 中心管理

  • 报表服务器

安装服务器证书

按照下面的步骤在 Team Foundation Server 上安装服务器证书。

在 Team Foundation Server 网站上安装服务器证书

  1. 在 Team Foundation 应用层服务器上依次单击“开始”、“管理工具”和“Internet 信息服务(IIS)管理器”。

  2. 展开“<计算机名称> (本地计算机)”,然后展开“网站”。

  3. 右击“Team Foundation Server”,然后单击“属性”。

  4. 在“Team Foundation Server 属性”中,单击“目录安全性”选项卡。

  5. 在“安全通信”下,单击“服务器证书”。

    “Web 服务器证书向导”即出现。单击“下一步”。

  6. 在“挂起的证书请求”页上,选择“处理挂起的请求并安装证书”,然后单击“下一步”。

  7. 在“处理挂起的请求”页上,单击“浏览”。

  8. 在“打开”对话框中的“文件类型”下,从下拉列表中选择“所有文件 (*.*)”,然后定位到您在前面的过程中保存二进制证书的目录。选择二进制证书文件,然后单击“打开”。

  9. 在“处理挂起的请求”页上,单击“下一步”。

  10. 在“SSL 端口”页上,接受默认值或输入新值,然后单击“下一步”。SSL 连接的默认端口是 443,但是您必须为下面三个站点各分配一个唯一的端口值:Team Foundation Server 网站、默认网站和 SharePoint 中心管理网站。

    重要说明:

    请考虑使用默认值以外的端口号,原因是使用默认端口号会降低部署的安全性。记录下您分配的 SSL 端口值。在接受默认值之前,请确保该端口当前没有被其他服务器证书使用。安装的每个服务器证书必须具有不同的 SSL 端口值。例如,如果默认端口 443 未在使用中,您为 Team Foundation Server 网站接受默认端口值 443,则必须为默认网站以及 SharePoint 管理中心网站分配不同的端口值。

  11. 检查“证书摘要”页上的信息,然后单击“下一步”。

  12. 单击“完成”。

  13. 在“目录安全性”选项卡上的“身份验证和访问控制”之下,单击“编辑”。

  14. 在“身份验证方法”中,确保清除“启用匿名访问”框。在“用户访问需要身份验证”中,选择“集成 Windows 身份验证”,以及“基本身份验证”或“Windows 域服务器的摘要式身份验证”或者同时选择二者(具体取决于您的部署)。清除任何其他选项,然后单击“确定”。

    说明:

    单击“Windows 域服务器的摘要式身份验证”之后,系统可能提示您确认所做的选择。阅读提示文本,然后单击“是”。

  15. 单击“确定”关闭“Team Foundation Server 属性”对话框。

    说明:

    如果在单击“确定”之后出现“继承覆盖”对话框,请单击“全选”,然后单击“确定”。

将证书分配到默认网站

按照以下步骤在 IIS 中设置默认网站上的 HTTPS。

说明:

根据您的证书层次结构和公钥基础结构,您可能还需要针对客户端证书身份验证配置 IIS。有关更多信息,请参见 Microsoft 网站上的 Certificates (IIS 6.0)(证书 (IIS 6.0))、Certificate Services(证书服务)和 Certificates(证书)。

设置默认网站上的 HTTPS 并要求使用 SSL

  1. 在 Team Foundation 应用层服务器上依次单击“开始”、“管理工具”和“Internet 信息服务(IIS)管理器”。

  2. 展开“<计算机名称> (本地计算机)”,然后展开“网站”。

  3. 右击“默认网站”,然后单击“属性”。

  4. 在“默认网站属性”中,单击“目录安全性”选项卡。

  5. 在“安全通信”下,单击“服务器证书”。

    “Web 服务器证书向导”即出现。单击“下一步”。

  6. 在“服务器证书”页上,选择“分配现有证书”,然后单击“下一步”。

  7. 在“可用证书”页上,选择“友好名称”值为“Team Foundation Server”的证书。您可能需要滚动才能看到列表中的“友好名称”列。单击“下一步”。

  8. 在“SSL 端口”页上,接受默认值或输入新值,然后单击“下一步”。SSL 连接的默认端口是 443,但是您必须为下面三个站点各分配一个唯一的端口值:Team Foundation Server 网站、默认网站和 SharePoint 中心管理网站。

    重要说明:

    请考虑使用默认值以外的端口号,原因是使用默认端口号会降低部署的安全性。记录下 SSL 端口值。安装的每个服务器证书必须具有不同的 SSL 端口值。例如,如果您为 Team Foundation Server 网站接受默认端口值 443,则必须为默认网站以及 SharePoint 管理中心网站分配不同的端口值。

  9. 检查“证书摘要”页上的信息,然后单击“下一步”。

  10. 单击“完成”。该向导将关闭。

  11. 在“目录安全性”选项卡上的“安全通信”之下,单击“编辑”。

  12. 在“安全通信”中,选择“要求安全通道(SSL)”。确保选中“忽略客户端证书”,然后单击“确定”。

  13. 在“目录安全性”选项卡上的“身份验证和访问控制”之下,单击“编辑”。

  14. 在“身份验证方法”中,确保清除“启用匿名访问”框。在“用户访问需要身份验证”中,选择“集成 Windows 身份验证”,以及“Windows 域服务器的摘要式身份验证”或“基本身份验证”,或者同时选择二者(具体取决于您的部署)。清除任何其他选项,然后单击“确定”。有关身份验证方法和 Team Foundation Server 的更多信息,请参见 Team Foundation Server、基本身份验证和摘要式身份验证

    说明:

    单击“Windows 域服务器的摘要式身份验证”之后,系统可能提示您确认所做的选择。阅读提示文本,然后单击“是”。

    重要说明:

    必须正确配置摘要式身份验证。否则,尝试访问 Team Foundation Server 将失败。除非您的部署满足摘要式身份验证的所有要求,否则请不要选择摘要式身份验证。有关摘要式身份验证的更多信息,请参见 Microsoft 网站 (https://go.microsoft.com/fwlink/?LinkId=89709)。

  15. 单击“确定”关闭“默认网站属性”对话框。

    说明:

    如果在单击“确定”之后出现“继承覆盖”对话框,请单击“全选”,然后单击“确定”。

配置 Team Foundation Server 网站以要求使用 SSL

  1. 在 Team Foundation 应用层服务器上依次单击“开始”、“管理工具”和“Internet 信息服务(IIS)管理器”。

  2. 展开“<计算机名称> (本地计算机)”,然后展开“网站”。

  3. 右击“Team Foundation Server”,然后单击“属性”。

  4. 在“Team Foundation Server 属性”中,单击“目录安全性”选项卡。

  5. 在“目录安全性”选项卡上的“安全通信”之下,单击“编辑”。

  6. 在“安全通信”中,选择“要求安全通道(SSL)”。确保选中“忽略客户端证书”,然后单击“确定”。

  7. 单击“确定”关闭“Team Foundation Server 属性”对话框。

    说明:

    如果在单击“确定”之后出现“继承覆盖”对话框,请单击“全选”,然后单击“确定”。

将证书分配到 SharePoint 中心管理

按照以下步骤为 SharePoint 管理中心设置 HTTPS。

为 SharePoint 管理中心设置 HTTPS 并要求使用 SSL

  1. 在 Team Foundation 应用层服务器上依次单击“开始”、“管理工具”和“Internet 信息服务(IIS)管理器”。

  2. 展开“<计算机名称> (本地计算机)”,然后展开“网站”。

  3. 右击“SharePoint 管理中心”,然后单击“属性”。

  4. 在“SharePoint 管理中心属性”中,单击“目录安全性”选项卡。

  5. 在“安全通信”下,单击“服务器证书”。

    “Web 服务器证书向导”即出现。单击“下一步”。

  6. 在“服务器证书”页上,选择“分配现有证书”,然后单击“下一步”。

  7. 在“可用证书”页上,选择“友好名称”值为“Team Foundation Server”的证书。您可能需要滚动才能看到列表中的“友好名称”列。

  8. 单击“下一步”。

  9. 在“SSL 端口”页上,接受默认值或输入新值,然后单击“下一步”。SSL 连接的默认端口是 443,但是您必须为下面三个站点各分配一个唯一的端口值:Team Foundation Server 网站、默认网站和 SharePoint 中心管理网站。

    重要说明:

    请考虑使用默认值以外的端口号,原因是使用默认端口号会降低部署的安全性。记录下 SSL 端口值。安装的每个服务器证书必须具有不同的 SSL 端口值。例如,如果您为 Team Foundation Server 网站接受默认端口值 443,则必须为默认网站以及 SharePoint 管理中心网站分配不同的端口值。

    说明:

    记录下这个端口值,因为您需要使用该端口值为 SQL Report Server 分配证书。

  10. 检查“证书摘要”页上的信息,然后单击“下一步”。

  11. 单击“完成”。

  12. 在“目录安全性”选项卡上的“安全通信”之下,单击“编辑”。

  13. 在“安全通信”中,选择“要求安全通道(SSL)”。确保选中“忽略客户端证书”,然后单击“确定”。

  14. 单击“确定”关闭“SharePoint 管理中心属性”对话框。

配置 ISAPI 筛选器

您必须在 AuthenticationFilter.dll 文件(此文件是 Team Foundation Server SP1 的组成部分)所在的文件夹中创建一个 ISAPI 初始化文件。还必须将 ISAPI 筛选器添加到注册表。

配置 ISAPI 筛选器

  1. 在 Team Foundation 应用层服务器上,依次单击“开始”、“程序”、“附件”和“记事本”。

  2. 在记事本中创建以下文件,其中 ProxyAddress 是一个 IP 地址,传输到 Team Foundation Server 的外部网络通信将显示为由此发出(通常是路由器),您需要它来使用 HTTPS/SSL 和基本和/或摘要式身份验证,而 SubnetMask 是 IP 地址/子网掩码对,您不需要它来强制使用摘要式或基本身份验证。

    重要说明:

    如果向文件添加 ProxyIPList 项,则将忽略 SubnetList 项及其值。有关更多信息,请参见 Team Foundation Server、基本身份验证和摘要式身份验证

    说明:

    ProxyAddress 或 SubnetMask 可以有多个值。应用分号分隔 ProxyAddress 或 SubnetMask 值。

    [config]

    RequireSecurePort=true

    ProxyIPList=ProxyAddress;

    SubnetList=SubnetMask;

  3. 将此文件命名为 AuthenticationFilter.ini 保存在 AuthenticationFilter.dll 所在的目录中。该目录为 drive**:\Program Files\Microsoft Visual Studio 2008 Team Foundation Server\TF Setup**。

  4. 打开命令提示窗口。若要打开“命令提示符”,请单击“开始”,单击“运行”,键入 cmd,再单击“确定”。

    说明:

    即使您是以管理凭据登录的,也必须使用提升的权限打开命令提示窗口,才能在正在运行 Windows Server 2008 的服务器上执行此功能。若要使用提升的权限打开命令提示窗口,请单击“开始”,右击“命令提示符”,再单击“以管理员身份运行”。有关更多信息,请参见 Microsoft 网站

  5. 在命令提示符处,键入下列命令:

    reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\TFS ISAPI Filter" /v EventMessageFile /t REG_SZ /d %windir%\Microsoft.NET\Framework\v2.0.50727\EventLogMessages.dll /f

  6. 在命令提示符处,键入下列命令:

    reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\TFS ISAPI Filter" /v TypesSupported /t REG_DWORD /d 7 /f

  7. 在 Team Foundation 应用层服务器上依次单击“开始”、“管理工具”和“Internet 信息服务(IIS)管理器”。

  8. 展开“<计算机名称> (本地计算机)”,展开“网站”,右击“Team Foundation Server”,再单击“属性”。

  9. 在“默认网站属性”中,单击“ISAPI 筛选器”选项卡。

  10. 在“ISAPI 筛选器”之下单击“添加”。

  11. 在“添加/编辑筛选器属性”的“筛选器名称”中,键入 TFAuthenticationFilter,在“可执行文件”中键入 drive**:\Program Files\Microsoft Visual Studio 2008 Team Foundation Server\TF Setup\AuthenticationFilter.dll**,然后单击“确定”。

配置防火墙以允许 SSL 通信

您必须对防火墙进行配置,以允许通过您在 IIS 中为默认网站、Team Foundation Server 网站和 SharePoint 管理中心网站指定的 SSL 端口进行通信。

说明:

配置防火墙允许 SSL 通信的过程因您的部署环境中使用的防火墙软件和硬件而异。

配置防火墙以允许 Team Foundation Server 所用 SSL 端口上的网络通信

  • 请参见您的防火墙产品的文档,以确定允许通过您为默认网站、Team Foundation Server 网站和 SharePoint 管理中心网站指定的 SSL 端口进行通信所需的步骤。

使用 TFSConfigWss 命令行工具更新 SQL Report Server 的团队项目

按照以下步骤更新 SQL Report Server 的团队项目网站,以使报表正确显示在团队项目门户站点上。

更新 SQL Report Server 的团队项目站点

  1. 在 Team Foundation 的应用层服务器上,打开命令提示窗口,将目录切换到驱动器:\%ProgramFiles%\Microsoft Visual Studio 2008 Team Foundation Server\Tools。

  2. 在命令提示符处键入以下命令,并替换这些字符串:

    • SharePointSite 是 SharePoint 产品和技术站点集的新统一资源标识符 (URI)。

    • 报表 是 SQL Server Reporting Services 的新 URI。

    • 报表服务器 是 ReportsService.asmx Web 服务的新 URI。

      **TfsConfigWss ConfigureReporting /SharepointSitesUri:SharePoint 站点/ReportsUri:报表/ReportServerUri:**报表服务器

更新 Team Foundation Server 配置信息

按照以下步骤进行操作,用 Windows SharePoint Services 和 Reporting Services 网站的 https URL 值更新配置信息。

更新 Team Foundation Server 的配置信息

  1. 在 Team Foundation 应用层服务器上,打开一个“命令提示符”窗口,将目录更改到“驱动器:\%ProgramFiles%\Microsoft Visual Studio 2008 Team Foundation Server\Tools”。

  2. 键入下面的命令并替换以下字符串:

    • 基本服务器 URL 是 Team Foundation 应用层服务器的 Web 服务器的新 URI。

    • 基本站点 URL 是应用层服务器默认网站的新 URI。

    • SharePoint 站点 是 SharePoint 产品和技术站点集合的新 URI。

    • SharePoint 管理 是 SharePoint 管理中心网站的新 URI。

    • 报表 是 SQL Server Reporting Services 的新 URI。

    • 报表服务器 是 ReportsService.asmx Web 服务的新 URI。

    **TfsAdminUtil ConfigureConnections /ATUri:BaseServerURL/SharepointUri:BaseSiteURL/SharepointSitesUri:SharePointSite/SharepointAdminUri:SharePointAdministration/ReportsUri:Reports/ReportServerUri:**ReportServer

    说明:

    如果在使用命名实例,则将需要将该命名实例指定为“报表”和“报表服务器”的值的一部分。不要删去或更改命名实例的名称。

    例如,如果您为 Team Foundation Web SSL 站点端口值指定了端口 443,为 IIS 中的默认网站 SSL 端口值指定了 1443,为 SharePoint 管理中心端口值指定了端口 2443,并且您的应用层服务器的名称是 Contoso1,则应按照如下所示修改这些值:

    **TfsAdminUtil ConfigureConnections /ATUri:**https://Contoso1:443 **/SharepointUri:**https://Contoso1:1443 **/SharepointSitesUri:https://Contoso1:1443/Sites/SharepointAdminUri:**https://Contoso1:2443 /ReportsUri:https://Contoso1:1443/Reports/ReportServerUri:https://Contoso1:1443/ReportServer

    说明:

    ConfigureConnections 命令还有几个附加选项,如更新电子邮件通知中使用的公共 Web 地址。有关更多信息,请参见 ConfigureConnections 命令

为 SSL 连接配置 Reporting Services

按照以下步骤配置 Reporting Services 以要求使用 SSL。

为 SSL 连接配置 Report Server

  1. 在 Team Foundation 应用层服务器上依次单击“开始”、“程序”、“Microsoft SQL Server 2005”、“配置工具”和“Reporting Services 配置”。

  2. 在“选择报表服务器安装实例”对话框中,确保计算机和示例名称正确无误,然后单击“连接”。

  3. 在资源管理器窗格中,单击“报表服务器虚拟目录”。

  4. 在“报表服务器虚拟目录设置”中,选择“要求安全套接字层(SSL)连接”。在“要求”中,选择“1 - 连接”。在“证书名称”中键入 Team Foundation 应用层的名称,然后单击“应用”。

  5. 关闭 Reporting Services 配置管理器。

在生成计算机上安装证书

如果在一个或多个服务器上安装了 Build Services,则这些服务器都必须安装证书。

说明:

为了通过 SSL 执行生成,必须在生成计算机上运行生成服务的帐户的受信任根存储区内,以及启动生成的计算机上的受信任根存储区内都安装该证书。

在生成计算机上安装证书

  1. 使用生成计算机上 Administrators 组的成员帐户登录到该计算机。

  2. 打开一个浏览器,并打开以下网站,其中“证书服务器”是证书服务器的名称,“端口”是分配给证书颁发机构的 SSL 端口号:

    https://证书服务器:端口/services/v1.0/serverstatus.asmx

  3. 将出现一个显示安全消息的对话框。在“安全警报”上单击“查看证书”。

  4. 在“证书”对话框中单击“证书路径”选项卡。

  5. 在“证书路径”中单击证书颁发机构。证书颁发机构应当是证书层次机构的顶部节点,其名称旁边应有一个红色的 X。这表示该证书颁发机构不受信任,原因是它不在受信任根证书颁发机构存储区中。单击“查看证书”。

  6. 在“证书”对话框中单击“安装证书”。

    “证书导入向导”打开。单击“下一步”。

  7. 在“证书存储区”页上,选择“将所有的证书放入下列存储区”,然后单击“浏览”。

  8. 在“选择证书存储区”中选择“显示物理存储区”。在“选择要使用的证书存储区”中,展开“受信任的根证书颁发机构”,选择“本地计算机”,然后单击“确定”。

  9. 在“证书存储区”页上单击“下一步”。

  10. 在“正在完成证书导入向导”页上,单击“完成”。

  11. 可能显示一个“证书导入向导”对话框,确认导入成功。如果显示该对话框,请单击“确定”。

  12. 在“证书”对话框中单击“确定”。顶层节点证书层次结构的“证书”对话框将关闭。

  13. 在“证书”对话框中单击“确定”。从属证书的“证书”对话框将关闭。

  14. 在“安全警报”上单击“否”。

  15. 打开一个浏览器,并打开以下网站,其中“证书服务器”是证书服务器的名称,“端口”是分配给证书颁发机构的 SSL 端口号:

    https://证书服务器:端口/services/v1.0/serverstatus.asmx

  16. “ServerStatus Web 服务”页会打开。该页确认您已经正确安装证书和证书颁发机构。关闭浏览器。

为 SSL 连接配置生成代理

若要为 SSL 连接配置生成代理,必须为每个 IP 地址和端口组合分别配置一个 HTTPS 证书。如果所有生成代理在生成计算机上共享同一个端口,则必须仅配置一个证书。如果在多个端口上运行多个生成代理,则必须为每一个端口分别配置一个证书。

通过按顺序执行以下任务可将生成代理配置为要求 SSL:

  1. 创建生成代理并将其配置为要求 HTTPS。

  2. 停止 Visual Studio Team Foundation Build 服务。

  3. 将生成服务配置修改为要求 HTTPS。

  4. 将证书与 IP 地址和端口进行关联。

  5. 为生成代理配置端口和协议。

  6. 重新启动 Visual Studio Team Foundation Build 服务。

  7. 验证 SSL 配置。

将生成代理配置为要求 HTTPS

  1. 打开“管理生成代理”对话框并选中“要求安全通道(HTTPS)”复选框。

    有关更多信息,请参见如何:创建和管理生成代理

  2. 单击“编辑”。

    随即出现“生成代理属性”对话框。

  3. 在“代理状态”列表中单击“已禁用”。

停止 Visual Studio Team Foundation Build 服务

  1. 使用生成计算机上 Administrators 组的成员帐户登录到该计算机。

  2. 在生成计算机上,依次单击“开始”、“控制面板”、“管理工具”和“服务”。

  3. 在“服务(本地)”窗格上,右击“Visual Studio Team Foundation Build”,然后单击“属性”。

    “Visual Studio Team Foundation Build 属性(本地计算机)”对话框打开。

  4. 在“服务状态”之下单击“停止”。

将生成服务配置修改为要求 HTTPS

  1. 使用生成计算机上 Administrators 组的成员帐户登录到该计算机。

  2. 打开“驱动器:\Program Files\Microsoft Visual Studio 2008\Common7\IDE\PrivateAssemblies”,右击 TfsBuildservice.config.exe,再单击“打开”。

    该文件在 Visual Studio 的 XML 编辑器中打开。

  3. 在 <appSettings> 节中,将 RequireSecureChannel 项的值更改为“true”。例如,将该项定义更改为以下字符串:

    <add key="RequireSecureChannel" value="true" />
    
  4. 保存更改并关闭文件。

将 SSL 证书与 IP 地址和端口号进行关联

  1. 使用生成计算机上 Administrators 组的成员帐户登录到该计算机。

  2. 使用“证书”管理单元查找打算用于客户端身份验证的 X.509 证书。

    有关更多信息,请参见“How To: Retrieve the Thumbprint of a Certificate”(如何:检索证书的指纹)(https://go.microsoft.com/fwlink/?LinkId=93828)。

  3. 将该证书的指纹复制到文本编辑器(如“记事本”)中。

  4. 移除十六进制字符之间的所有空格。

    可使用文本编辑器的“查找和替换”功能将每一个空格替换为空字符,从而执行此任务。

  5. 在生成计算机上依次单击“开始”、“所有程序”、“Windows 支持工具”和“命令提示符”。

  6. 以“set”模式对 SSL 存储区运行 HttpCfg.exe 工具,以便将该证书绑定到某个端口号。该工具使用指纹来标识证书,如下面的示例所示:

    httpcfg set ssl /i 0.0.0.0:9191 /h ThumbprintWithNoSpaces
    

    /i 参数的语法为“IP 地址:端口”,并指示该工具将证书设置到生成计算机的端口 9191。为了简单起见,可使用 IP 地址 0.0.0.0 来保留所有计算机地址。如果需要更加精确,请指定用来发布代理服务的确切 IP 地址。/h 参数指定该证书的指纹。

    如果必须协商客户端证书,请添加 /f 2 参数,如下面的示例所示:

    httpcfg set ssl /i 0.0.0.0:9191 /h ThumbprintWithNoSpaces /f 2
    

    有关 HttpCfg.exe 命令的语法的更多信息,请参见“How To: Configure a Port with An SSL Certificate”(如何:配置带有 SSL 证书的端口)(https://go.microsoft.com/fwlink/?LinkId=93829)。

配置生成代理端口和协议

  1. 在命令提示符处,运行 wcfhttpconfigfree端口号。该命令语句应类似于下面的字符串:

    wcfhttpconfig free OldPortForHttp
    

    有关更多信息,请参见 wcfhttpconfig (Team Foundation Build)

  2. 在命令提示符处,运行 wcfhttpconfigreserve用户帐户URL。该命令语句应类似于下面的内容:

    wcfhttpconfig reserve Domain\Account https://+Computer:NewPortForHttps/Build/v2.0/AgentService.asmx
    
  3. 将该端口添加到 Windows 防火墙的例外列表中。

重新启动 Visual Studio Team Foundation Build 服务

  1. 使用生成计算机上 Administrators 组的成员帐户登录到该计算机。

  2. 在生成计算机上,依次单击“开始”、“控制面板”、“管理工具”和“服务”。

  3. 在“服务(本地)”窗格上,右击“Visual Studio Team Foundation Build”,然后单击“属性”。

    “Visual Studio Team Foundation Build 属性(本地计算机)”对话框打开。

  4. 在“服务状态”之下单击“启动”。

验证 SSL 配置

  1. 打开“管理生成代理”对话框。

    有关更多信息,请参见如何:创建和管理生成代理

  2. 单击“编辑”。

    随即出现“生成代理属性”对话框。

  3. 在“代理状态”列表中单击“已启用”。

  4. 通过使用生成代理运行生成来验证是否可以进行通信。

    有关更多信息,请参见如何:启动生成定义或对其进行排队

在 Team Foundation Server Proxy 计算机上安装证书

如果已经在一台或多台计算机上安装 Team Foundation Server Proxy,则这些计算机上都必须安装证书。

说明:

除了下面的过程外,还必须对代理计算机的所有防火墙进行配置,以允许通过您为 Team Foundation Server 指定的 SSL 端口进行通信。以此方式配置防火墙的过程将因您的部署环境中使用的防火墙软件和硬件而异。

在 Team Foundation Server Proxy 计算机上安装证书

  1. 使用 Team Foundation Server Proxy 服务器上 Administrators 组的成员帐户登录到该计算机。

  2. 打开一个浏览器,并打开以下网站,其中“证书服务器”是证书服务器的名称,“端口”是分配给证书颁发机构的 SSL 端口号:

    https://证书服务器:端口/services/v1.0/serverstatus.asmx

  3. 将出现一个显示安全消息的对话框。在“安全警报”上单击“查看证书”。

  4. 在“证书”对话框中单击“证书路径”选项卡。

  5. 在“证书路径”中单击证书颁发机构。证书颁发机构应当是证书层次机构的顶部节点,其名称旁边应有一个红色的 X。这表示该证书颁发机构不受信任,原因是它不在受信任根证书颁发机构存储区中。单击“查看证书”。

  6. 在“证书”对话框中单击“安装证书”。

    “证书导入向导”打开。单击“下一步”。

  7. 在“证书存储区”页上,选择“将所有的证书放入下列存储区”,然后单击“浏览”。

  8. 在“选择证书存储区”中选择“显示物理存储区”。在“选择要使用的证书存储区”中,展开“受信任的根证书颁发机构”,选择“本地计算机”,然后单击“确定”。

  9. 在“证书存储区”页上单击“下一步”。

  10. 在“正在完成证书导入向导”页上,单击“完成”。

  11. 可能显示一个“证书导入向导”对话框,确认导入成功。如果显示该对话框,请单击“确定”。

  12. 在“证书”对话框中单击“确定”。顶层节点证书层次结构的“证书”对话框将关闭。

  13. 在“证书”对话框中单击“确定”。从属证书的“证书”对话框将关闭。

  14. 在“安全警报”上单击“否”。

  15. 打开一个浏览器,并打开以下网站,其中“证书服务器”是证书服务器的名称,“端口”是分配给证书颁发机构的 SSL 端口号:

    https://证书服务器:端口/services/v1.0/serverstatus.asmx

  16. “ServerStatus Web 服务”页会打开。该页确认您已经正确安装证书和证书颁发机构。关闭浏览器。

在客户端计算机上安装证书

每台访问 Team Foundation Server 的客户端计算机都必须在本地安装有证书。此外,如果客户端计算机以前访问过 Team Foundation Server 团队项目,则必须为每个使用该计算机连接 Team Foundation Server 的用户清除客户端缓存,然后该用户才能连接 Team Foundation Server。

重要说明:

对于安装在运行 Team Foundation Server 的服务器上的 Team Foundation 客户端,请勿执行此过程。

在 Team Foundation 客户端计算机上安装证书

  1. 使用 Team Foundation 客户端计算机上“Administrators”组的成员帐户登录到该计算机。

  2. 打开一个浏览器,并打开以下网站,其中“证书服务器”是证书服务器的名称,“端口”是分配给证书颁发机构的 SSL 端口号:

    https://证书服务器:端口/services/v1.0/serverstatus.asmx

  3. 将出现一个显示安全消息的对话框。在“安全警报”上单击“查看证书”。

  4. 在“证书”对话框中单击“证书路径”选项卡。

  5. 在“证书路径”中单击证书颁发机构。证书颁发机构应当是证书层次机构的顶部节点,其名称旁边应有一个红色的 X。这表示该证书颁发机构不受信任,原因是它不在受信任根证书颁发机构存储区中。单击“查看证书”。

  6. 在“证书”对话框中单击“安装证书”。

    “证书导入向导”打开。单击“下一步”。

  7. 在“证书存储区”页上,选择“将所有的证书放入下列存储区”,然后单击“浏览”。

  8. 在“选择证书存储区”中选择“显示物理存储区”。在“选择要使用的证书存储区”中,展开“受信任的根证书颁发机构”,选择“本地计算机”,然后单击“确定”。

  9. 在“证书存储区”页上单击“下一步”。

  10. 在“正在完成证书导入向导”页上,单击“完成”。

  11. 可能显示一个“证书导入向导”对话框,确认导入成功。如果显示该对话框,请单击“确定”。

  12. 在“证书”对话框中单击“确定”。顶层节点证书层次结构的“证书”对话框将关闭。

  13. 在“证书”对话框中单击“确定”。从属证书的“证书”对话框将关闭。

  14. 在“安全警报”上单击“否”。

  15. 打开一个浏览器,并打开以下网站,其中“证书服务器”是证书服务器的名称,“端口”是分配给证书颁发机构的 SSL 端口号:

    https://证书服务器:端口/services/v1.0/serverstatus.asmx

  16. “ServerStatus Web 服务”页会打开。该页确认您已经正确安装证书和证书颁发机构。关闭浏览器。

清除 Team Foundation 客户端计算机的缓存

  1. 使用要更新的用户的用户凭据登录 Team Foundation 客户端计算机。

  2. 在 Team Foundation 客户端计算机上,关闭所有打开的 Visual Studio 实例。

  3. 打开浏览器,并打开下面的文件夹:

    驱动器**:\Documents and Settings\用户名\Local Settings\Application Data\Microsoft\Team Foundation\2.0\Cache**

  4. 删除 Cache 目录的内容。确保删除所有子文件夹。

  5. 单击“开始”,单击“运行”,键入 devenv /resetuserdata,然后单击“确定”。

  6. 对计算机上每个访问 Team Foundation Server 的用户帐户重复以上步骤。

    说明:

    您可能想要考虑向所有的 Team Foundation Server 用户分发有关如何清除缓存的说明,以使他们能够自行清除缓存。

请参见

任务

演练:设置带有安全套接字层 (SSL) 和 ISAPI 筛选器的 Team Foundation Server

概念

Team Foundation Server、HTTPS 和安全套接字层 (SSL)

Team Foundation Server、基本身份验证和摘要式身份验证

其他资源

Team Foundation 管理演练

使用 HTTPS 和安全套接字层 (SSL) 保护 Team Foundation Server