【聚杰网XML】建立安全 Web 服务
通过指定代理连接
可以指定哪个代理使用 ProxyServer 和 ProxyPort 连接器属性:
请注意,如果使用 ProxyServer 属性,则不必将 UseProxy 设置为 True,它将自动设置。
代理身份验证
代理服务器可以在允许连接之前要求您对自身进行身份验证。例如,可以使用它限制在公司 Intranet 内使用 Internet。代理服务器可使用上述所有身份验证方案。Microsoft SOAP Toolkit 2.0 允许您指定代理身份验证的用户名和密码:
如果代理要求 NTLM 身份验证,可以省略用户名和密码,这是将使用当前登录凭据。如果需要指定代理 NTLM 身份验证的域名,请添加“DOMAIN/username”进行服务器身份验证。
局限性。Microsoft SOAP Toolkit 2.0 不支持通过要求身份验证的代理连接到也要求身份验证的服务器。另外,通过要求身份验证的代理的 SSL 连接在 Windows 2000 和 Windows NT4 上不能正常工作。
SSL 和客户端证书
在本节中,我们将具体讨论如何通过安全套接字层 (SSL) 和客户端证书支持进行连接。我们还将讨论 Microsoft SOAP Toolkit 2.0 在使用客户端证书支持的支持平台上的已知局限性。
通常认为 SSL 只是一种加密机制,其实它还提供身份验证。若要使 IIS 4.0/IIS 5.0 支持 SSL 连接,需要获取 X.509 证书,并将其安装在服务器上。
何谓 X.509 证书?
证书是一种结构,其中包含主题、颁发者名称、有效期和其它特征等信息。(有关证书的详细信息,请参阅由 Michael Howard 编著的《设计 Microsoft Windows 2000 基于 Web 的安全应用程序》。) 每个证书都与用于 SSL 加密的一对私有和公用密钥相关。SSL 始终使用 X.509 证书对 Web 服务器进行身份验证。
若要获得证书,需要向证书颁发机构发出证书请求。证书颁发机构 (CA) 是颁发证书的单位。当 CA 向主题(发出请求的实体)颁发证书时,它验证该主题是否与它所声称的相符,并签发新证书和私有密钥。这样,主题可以信任 CA。如果信任颁发证书的 CA,则表示信任向您提供此证书的主题。根目录证书保证 CA 的可信性。多个 CA 可以形成一条信任链:如果信任根 CA,就信任具有根 CA 颁发的证书的中间 CA,因此将信任具有中间 CA 颁发的证书的所有主题。
“信任”的实际意义是什么?可以将 CA 的证书放入“受信任的根目录证书颁发机构”存储区来表示信任该 CA。所有证书都存储在所谓的证书存储区中。有多个默认存储区,例如:
CURRENT_USER/MY/,个人证书存储区,用于当前登录的用户,对其它登录用户不可见
LOCAL_MACHINE/MY/,个人证书存储区,用于所有用户
CURRENT_USER/Root/,受信任的根目录证书颁发机构,包含当前用户信任的根 CA 的证书,如果证书具有到根 CA 证书的证书路径,则当前用户信任该证书的有效性。
LOCAL_MACHINE/Root/,相同,但被所有用户信任
具有被默认信任的根 CA,例如 Verisign。尽管我们的示例将使用一个试用版的 Verisign 证书,但是它们是由不被默认信任的 Verisign 测试机构颁发的。
在服务器上启用 SSL
本节介绍如何创建证书请求、从 Verisign 站点获得试用版的测试服务器端证书,并将其安装在 Web 服务器上。
使用 IIS 4.0 启用服务器上的 SSL
用鼠标右键单击要启用 SSL 的网站,并选择“属性”。
在“目录安全性”选项卡上,单击“编辑安全通信”。
在对话框中,单击“密钥管理器”。
展开树状视图中的“本地计算机”节点。用鼠标右键单击 WWW 叶,并选择“新建密钥”。这将启动称为“密钥管理器”的密钥请求向导。
选择“将请求放入要发送到颁发机构的文件中”和一个文件名。单击“下一步”。
输入一个易记的密钥名称。输入密码,当获取由颁发机构颁发的证书时需要此密码。对于加密密钥字节长度,请选择 1024(1024 为推荐长度,某些颁发机构不颁发小于此长度的证书)。单击“下一步”。
输入您的组织和部门名称。输入等同于完整站点名称的公用名称,例如 www.yoursite.com。在启动 SSL 连接之前,客户端将检查站点名称是否与证书的公用名称相同。单击“下一步”。
输入国家(地区)、省/自治区、市/县所在地。证书颁发机构可能检查这些信息是否一致,以确保输入的信息有效。输入省时,请输入完整的省名称。
输入管理服务器的人员的姓名、电子邮件地址和电话号码。这些信息不包含在证书中,但证书颁发机构需要这些信息。
包含您的请求的文件已经创建。该文件为 Base64 编码格式。在此过程中,IIS 还将为该证书请求创建一个私有密钥和一个公用密钥。私有密钥将保存在您的计算机上,而公用密钥将随请求一起发往 Verisign,并用以加密证书数据。
转至 www.verisign.com(英文),并单击“Get Trial SSL ID”。注册证书时,会要求您提供 CSR(证书签名请求)。复制并粘贴您的请求文件中自行“BEGIN NEW CERTIFICATE REQUEST;”之后的内容,否则,将会出错。Verisign 以邮件形式将测试服务器端证书发送给您。该过程同样适用于商业证书,不同之处在于它收费并仔细验证提交的信息。
确保从证书颁发机构获得的证书是 Base64 编码的。如果证书颁发机构是 Verisign,则您可以通过电子邮件获得证书。创建一个扩展名为 .cer 的空文件,复制行“BEGIN CERTIFICATE”和“END CERTIFICATE”之间(包含这两行)的所有内容并粘贴到该文件。
转至要启用 SSL 的站点的“属性”/“目录安全性”选项卡。单击“编辑安全通信”,然后单击“密钥管理器”。
在对话框中,展开树状视图中的“本地计算机”节点,再展开 WWW 叶,将显示您的证书请求的密钥。由于该证书尚未安装,它标记为红色。用鼠标右键单击该证书,并选择“安装密钥证书”。选择具有要安装的证书的文件。将提示您提供以前设置的密码。输入密码。现在,您的证书已安装。
使用 IIS 5.0 启用服务器上的 SSL
用鼠标右键单击要启用 SSL 的网站,并选择“属性”。
在“目录安全性”选项卡上,单击“编辑安全通信”。
单击“服务器证书”打开服务器证书向导。该向导将记忆网站的当前状态,例如您是否已拥有服务器证书。(现在假设您没有证书。)
在证书向导中,单击“下一步”,选择“创建一个新证书”,然后单击“下一步”。
选择“现在准备请求,但稍后发送”,并单击“下一步”。
输入证书的友好名称。该名称不会在证书结构中使用,但作为区分请求和证书的一种方法。选择公用密钥长度。推荐密钥长度不小于 1024 字节。单击“下一步”。
输入可以由颁发机构验证的组织名称和部门名称,如果您请求用于商业目的的真实证书,请输入有效名称。输入要被认证的计算机的名称。注意:它必须等同于您的完整站点名称,例如 www.yoursite.com。单击“下一步”。
输入国家(地区)、省/自治区、市/县所在地。请输入有效信息,证书颁发机构将检查这些信息是否一致。输入省时,请输入完整的省名称。单击“下一步”。
输入用于保存请求的请求文件名称。单击“下一步”。
将摘要显示您输入的内容。确认内容正确,并单击“下一步”完成向导。包含请求的文件将以 Base 64 格式保存。
包含您的请求的文件已经创建。该文件为 Base64 编码格式。在此过程中,IIS 还将为该证书请求创建一个私有密钥和一个公用密钥。私有密钥将保存在您的计算机上,而公用密钥将随请求一起发往 Verisign,并用以加密证书数据。
转至 www.verisign.com(英文),并单击“Get Trial SSL ID”。注册证书时,会要求您提供 CSR(证书签名请求)。复制并粘贴您的请求文件中自行“BEGIN NEW CERTIFICATE REQUEST;”之后的内容,否则,将会出错。Verisign 以邮件形式将测试服务器端证书发送给您。该过程同样适用于商业证书,不同之处在于它收费并仔细验证提交的信息。
确保从证书颁发机构获得的证书是 Base64 编码的。如果证书颁发机构是 Verisign,则您可以通过电子邮件获得证书。创建一个扩展名为 .cer 的空文件,复制行“BEGIN CERTIFICATE”和“END CERTIFICATE”之间(包含这两行)的所有内容并粘贴到该文件。
转至要启用 SSL 的站点的“属性”/“目录安全性”选项卡。单击“编辑安全通信”,然后单击“服务器证书”。服务器证书向导知道您刚刚提出证书请求,所以期望您已颁发证书并准备好在 IIS 5.0 中安装。
选择“处理挂起申请并安装证书”,并单击“下一步”。选择从证书颁发机构获得的证书的文件名。单击“下一步”。查看证书概述,并单击“下一步”。单击“完成”。您的 Web 服务器证书已安装在 IIS 5.0 中。
为 SSL 连接配置客户端
仅仅具有配置正确的服务器并不足以启用成功的 SSL 连接。请记住,SSL 连接始终包含身份验证,其中客户端验证服务器的身份。特别是客户端将验证服务器是否具有有效证书,例如证书是否过期、是否被注销、是否由客户端信任的证书颁发机构颁发等。在上述详细步骤中,将收到一个由 Verisign 测试根颁发机构颁发的试用版 Verisign 服务器端证书。默认情况下,该颁发机构并不被信任,例如,其证书不默认存储在您计算机上的根存储区。按照 Verisign 站点中的关于如何获得 Verisign 测试颁发机构根目录证书的指导进行操作。获得包含 Verisign 测试颁发机构根目录证书的文件之后,需要将其安装在客户端(您要用这些客户端执行至服务器的 SSL 连接)上,以在对服务器进行身份验证时信任服务器端证书。请执行以下步骤:
双击包含证书的文件,打开证书浏览器窗口。
单击“安装证书”。在证书导入向导欢迎页上,单击“下一步”。
选择要保存该证书的存储区。
默认情况下,Windows 将该证书放置到 CURRENT_USER/Root/存储区中。这意味着只以您的帐户使用计算机时,才能够信任由该颁发机构颁发的证书。若要确保对其它用户也有效,推荐始终将根 CA 证书放置到 LOCAL_MACHINE/Root 存储区。这需要执行以下操作:
选择“将所有证书放置到以下存储区”,并单击“浏览”。
选择“显示物理存储区”,展开“受信任的根目录证书颁发机构”节点,选择“本地计算机”,然后选择“LOCAL_MACHINE/Root”节点。
完成该向导安装 CA 根目录证书。
1 3




