在当今的网络环境中,数据安全变得越来越重要。如果正在使用Azure服务,并且希望将RESTful服务从开放的HTTP协议切换到安全的HTTPS连接,那么这篇文章将为提供详细的步骤。虽然听起来可能很简单,只需要将webHTTPBinding更改为webHTTPSBinding,但实际上这个过程需要一些额外的步骤。以下是根据阅读了大量文章并结合自己的实践,总结出的切换过程。
为了实现HTTPS连接,首先需要一个证书。可以选择第三方证书提供商,也可以使用Windows工具自己创建。选择了后者。为此,需要以管理员身份运行Visual Studio的开发控制台。
在控制台中,运行以下命令来创建证书:
makecert -r -pe -n CN=ispeakSSLCert -sky signature ispeakSSLCert.cer -sv ispeakSSLCert.pvk
在这个命令中:
运行命令后,它会创建证书并要求为密钥设置密码,并进行验证。如果一切顺利,会在控制台看到"succeeded"。
.pfx文件实际上存储了证书。为此,使用上一步中设置的密码运行以下命令:
pvk2pfx -pvk ispeakSSLCert.pvk -spc ispeakSSLCert.cer -pfx ispeakSSLCert.pfx -pi the-password-you-used
如果这一步没有错误,那么就成功了。
接下来,需要将证书安装到本地系统。在64位Windows 8系统中,打开C:\Windows\SysWOW64目录;在32位Windows 8系统中,打开C:\Windows\System32目录。会看到之前创建的文件。
现在,通过双击.cer文件来安装证书。也可以运行certmgr.msc命令来打开证书管理应用程序,在那里可以看到证书。
在Visual Studio中,导航到web角色属性。在属性窗口中打开证书并点击"添加证书"。
为证书命名,选择“本地计算机”作为存储位置,选择“My”作为存储名称,并点击“…”来从列表中选择创建的证书。
添加证书后,还需要添加HTTPS端点,如下图所示:
配置完成后,请确保ServiceConfiguration.Local和ServiceConfiguration.Cloud文件包含证书部分,如下所示:
<Certificates>
<Certificate name="iSpeakCerfificate" thumbprint="7631B8220A6A7C4BE63A752F0FE59F00A5E61030" thumbprintAlgorithm="sha1" />
</Certificates>
同样,应该检查服务定义文件中的证书部分:
<Certificates>
<Certificate name="iSpeakCerfificate" storeLocation="LocalMachine" storeName="My" />
</Certificates>
最重要的部分:确保绑定包含以下内容:
<security mode="Transport" />
完成所有这些步骤后,就可以通过HTTPS和HTTP同时运行服务了。