如何在Azure云服务中为我的API和Web客户端设置SSL?

问题描述:

我在云服务中有2个Web角色;我的API和我的Web客户端。我试图为两者都设置SSL。我的问题是,我需要两个SSL证书吗?我需要2个域名吗?如何在Azure云服务中为我的API和Web客户端设置SSL?

我的API的端点是my.ip.add.ress。我的webclient的端点是my.ip.add.ress:8080。

我不知道如何为此添加DNS主菜,因为我无法输入端口号(我学到的是因为它超出了dns系统的范围)。

我不理解什么?这似乎是Azure云服务的一个非常标准的场景(它在本教程的示例项目中以此方式设置,例如http://msdn.microsoft.com/en-us/library/dn735914.aspx),但我找不到任何明确解释如何处理此场景的地方。

首先,你是对的DNS不处理端口号。对于您的情况,您可以简单地为两个端点使用一个SSL证书,并使两个端点具有相同的域名。根据用户请求使用哪个端口,请求将被路由到正确的端点(API与Web客户端)。就像你说的那样,这是一个相对常见的情况。没有必要使事情复杂化。

假设您有一个指向ip地址的域www.dm.com。要访问您的Web API,您的用户需要点击https://www.dm.com,而不需要默认为443的端口号。要访问您的Web客户端,用户需要点击https://www.dm.com:8080。如果您希望用户为web api和web客户端使用默认端口443,则需要创建两个云服务而不是一个,然后创建一个云服务的web api和另一个云服务的Web客户端。计费明智,你将被收取一样的云服务。

是否有任何理由让您创建2个不同的域,然后创建2个SSL证书?如果是这样,它仍然是可能的。根据您的要求,您可能需要添加额外的逻辑来阻止来自其他域的请求。

+0

我想我的问题是,如果我不能使用A DNS记录,如何使域指向两个不同的端点?如果我将域名指向最终没有:8080的IP地址,它会不会仅仅访问web api而不是web客户端? – 2014-10-11 22:41:24

+0

我用一个例子更新了我的答案。希望能帮助到你。 – 2014-10-12 18:46:08