通过 HTTPS 和 SSL 确保 Windows Azure 网站 (WAWS) 安全

编辑人员注释:本文章由 Windows Azure 网站团队的项目经理 Erez Benari 撰写。

随着身份盗窃和各种形式的网络犯罪迅速增多,使用安全套接字层 (SSL) 对网站进行保护变得越来越重要和普遍。如果将网站托管在 Windows Azure 网站 (WAWS) 上,您可能想将其设置为使用 HTTPS。在本指南中,我们将了解如何完成此过程。

此过程的第一步似乎是获取数字证书...对吧?嗯,好像不是。实际上第一步应该确定您是想拥有自己的自定义域,还是使用 Azure 的默认域 Azurewebsites.net 来运行您的站点。之所以这是第一步,是因为 Windows Azure 网站实际上已预先配置为可在 SSL 上运行。如果您不需要使用自己的域,可以立即使用 SSL。您只需通过SSL地址浏览您的网站即可!在浏览器中,将前缀由 HTTP:// 更改为 HTTPS://。瞧!您的站点将作出响应,并且您将与其建立安全连接。但是,建议不要使用此方法来保护敏感的内容或应用程序,因为它所使用的通配证书对所有 Azure 网站均通用。

如果您要在自己的域中使用 SSL,则需要执行几个额外的设置步骤。在执行任何操作之前,需注意的是,仅标准收费模式中的站点才支持在自定义域中使用 SSL。如果您的站点目前处于免费模式或共享模式,您必须切换到标准模式,这将需要额外收费。请参阅我们的定价指南Azure 计算器以了解预期成本。

在您选择域并设置要使用该域的站点后,下一步是获取与您的域匹配的数字证书。在购买证书时,您具有 3 个选项:

1. 购买一个匹配您的网站 URL 的简单证书。这是最便宜的选项,一年只需支付 8 美元,可以在诸如 https://www.thesslshop.com的商店中购买。

2.购买 SAN(Subject Alternative Name)证书。SAN 证书可与同一个域下的多个 URL 相匹配,是适用于拥有多个网站的公司的经济解决方案。您无需购买多个证书(分别为每个 URL 购买一个证书),而是购买一个可用于多个 URL 的证书,并且需支付的金额将少于需为多个证书支付的金额。

3. 购买通配证书。此证书可与您域中的任何子域相匹配。虽然此证书是最贵的一种证书,但是对于拥有许多网站的公司而言,它是最经济的选项。例如,如果贵公司拥有 30 个网站,那么购买一个通配证书需支付的金额(79 美元)将远低于购买 30 个简单证书需支付的金额(240 美元)。

要购买证书,您将需要选择提供商,并执行特定过程来生成 PFX 文件形式的证书。我们在这篇文章中介绍了此过程。

拥有证书之后,启用 SSL 就相当简单了。具体步骤如下:

第 1 阶段:将您的网站切换为 Standard。

在进行此切换之前,您可能需要考虑取消以前设置的支出限额。虽然这并不是必需的,但是通常不会在具有支出限额的情况下运行商业网站,因为如果达到您设置的限额,您的网站在下一个计费周期之前将处于离线状态。将站点切换为 Standard 的步骤如下:

1. 登录到 Azure 管理门户

2. 单击您的网站

3. 切换到 Scale 选项卡

4. 在 General 下,单击 Standard 按钮将站点切换为 Standard 状态。

5. 单击 Save

第 2 阶段:配置 SSL

要配置 SSL,您需要上传证书并将其绑定到您的站点。具体步骤如下:

1. 登录到 Azure 管理门户

2. 单击您的网站

3. 切换到 Configure 选项卡

4. 在 Certificate 部分中,单击 Upload a certificate

5. 上传证书的 PFX 文件,并为其指定密码(您应该已在将证书导出至 PFX 时创建了密码)

6. 在 SSL Binding 下,从下拉列表中选择您的自定义域。如果您尚未配置自定义域,请单击此处阅读有关如何执行此操作的说明

7. 从下拉列表中选择相关证书(当前您仅拥有一个证书,但以后可能会拥有更多证书)

8. 在第 3 个下拉列表中,您可以选择启用或禁用 SNI。通常情况下,您会希望使用 SNI,但是如果您预期将有版本很低的浏览器(Windows XP 或更低)访问自己的网站,请选择 IP Based SSL。如果查看 SSL 定价,您将发现使用 SNI 也是一种很经济的方式。

9. 单击 Save

运气好的话,现在就大功告成了,您的站点现在将对发送到 HTTPS 的请求做出响应。

有问题?

您可能会遇到的最常见问题是无法将证书上传到 Azure。在以前的博客文章中,我们讨论了如何获取证书,借此机会要提醒您的是,证书必须是已导出的 PFX 证书,而不是您从证书提供商获得的文件(即使它也是 PFX 文件形式)。这是因为,要将证书分配到网站,Azure 必须具有与该证书关联的私钥。证书生成过程从您的计算机开始,首先创建私钥,然后由您的证书提供商进行匹配。需将提供商返回给您的文件导入到最初发出请求的计算机,然后将生成“完整”的证书。如果您尝试上传由提供程序提供的文件,该文件不会为 Azure 提供私钥,这将导致证书无效。

此问题也可能表现为未正确地将证书导出到 PFX。导出中必须包含私钥(这就是为什么您需要在此过程中指定密码的原因),并且如果您在执行导入时忘记选中该框,将无法导出。

使用证书时的另一个常见问题是,当用户尝试浏览到站点时,浏览器会显示某种安全警告。当浏览器不认可证书时就会发生这个情况,针对该情况不同浏览器被设计为提供不同的响应。某些浏览器只是显示一条警告,其他浏览器则可能会完全阻止此站点。导致出错的最常见原因是 URL 不匹配。证书是针对特定 URL 颁发的,如果实际 URL 不匹配,则会形成潜在的安全风险。哪怕是一个拼写错误就可能会毁掉您一整天的工作,因此务必谨慎。

导致浏览器显示安全警告的一个更常见的原因是证书不受信任。证书通常由商业提供商颁发和出售,并且所有现代操作系统都预先配置了所有主要商业提供商的根证书。但是,如果您是从私有证书颁发机构(例如由一些私人组织或您自己的公司拥有的 CA 服务器)颁发的证书,证书将不受信任,并会导致错误。Azure 网站不支持使用私有证书,因此,如果您要在不购买证书的情况下使用 SSL,可以转为使用自签名证书。

如上所述,默认情况下将支持所有主要商业提供商,但是您可能会偶尔遇到在其信任链中使用中间证书的提供商。一些证书提供商已将其证书路径分为 2 个部分,因此您的证书将不由根 CA 颁发,而是由较低级别的“中间”服务器(受提供商根的信任)颁发。在这种情况下,证书可能会导致客户端浏览器发出警告,这意味着需要随您的证书一起上传提供商所颁发的中间证书。当您将证书导出到 PFX 中时,应在其中包括整个链,并且默认情况下此选项已启用:

 

但是,如果您取消选中该选项,或者以其他不包含证书路径的方式导出,可能会导致一些提供商出现问题。如果不能确定,建议您重新执行导出,并确保选中此选项。

 

本文翻译自:

http://blogs.msdn.com/b/windowsazure/archive/2013/12/13/securing-your-windows-azure-web-sites-waws-with-https-and-ssl.aspx



 

转载于:https://www.cnblogs.com/new0801/p/6176317.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/376130.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql之多表查询

今天在项目中遇到一个数据库查询的问题:三张表分别放置不同的东西:分享的音频相关数据、分享的文字图片说说、分享的主题相关数据。所有分享的东西都可看做新鲜事,现在要求从这三张表将相同的几个字段的数据全部查找出来按照发布时间先后排序…

设立SharePoint2010列表的项目级权限

设置SharePoint2010列表的项目级权限 在SharePoint2010中我们经常会用到这样的权限设置,在一个列表中可以存储多个人输入的数据,但每个人只能看到自己的那部分数据。也就是多个人共同维护一个列表,但各自只能查看、编辑、删除自己录入的那部分…

MySQL优化filler值_MySQL 性能优化神器 Explain 使用分析

简介MySQL 提供了一个 EXPLAIN 命令, 它可以对 SELECT 语句进行分析, 并输出 SELECT 执行的详细信息, 以供开发人员针对性优化.EXPLAIN 命令用法十分简单, 在 SELECT 语句前加上 Explain 就可以了, 例如:EXPLAIN SELECT * from user_info WHERE id < 300;准备为了接下来方便…

Codeforces Round #224 (Div. 2)

题目&#xff1a;http://codeforces.com/contest/382 A Ksenia and Pan Scales 一个求天平是否能够平衡的题目。。。水题,注意一下结果的输出就行。 1 #include <iostream>2 #include <cstdio>3 #include <cstring>4 #include <cstdlib>5 #include <…

二叉树第i层中的所有结点_讲透学烂二叉树(二):图中树的定义amp;各类型树的特征分析...

日常中我们见到的二叉树应用有&#xff0c;Java集合中的TreeSet和TreeMap&#xff0c;C STL中的set、map&#xff0c;以及Linux虚拟内存的管理&#xff0c;以及B-Tree&#xff0c;B-Tree在文件系统&#xff0c;都是通过红黑树去实现的。虽然之前写过《再谈堆排序&#xff1a;堆…

node-webkit 开发环境搭建

node-webkit支持的操作系统类型&#xff1a; Linunx:32bit / 64bitWindows: win32Mac:32bit,10.7 开发环境 1&#xff0c;根据自己的操作系统下载响应的nw二进制文件&#xff0c;下载地址&#xff1a;https://github.com/rogerwang/node-webkit 2,建立基本开发目录&#xff0c;…

mysql sqlsugar_.net core +mysqlSugar(最为简单的增删改查)

首先建立.net Core API - empty 这个就不说了然后创建新的Controller记得添加路由[Route("api/Users")]然后在Nuget Packages安装 所需安装包这里是用mysql所以下载如下的mysqlSugarCore(切记不要忘记安装Mysql.Data)创建实例化class文件DbText.cs用于连接数据库&…

关于eclipse的indigo版中文注释时字体太小的问题(转)

eclipse目前最新版代号indigo, 在win7上使用时中文注释时字体太小的问题. 为什么会这样? 首先我们应该知道, 在win7系统中, font是有"显示"和"隐藏" 状态的. 默认情况下, eclipse使用的默认字体courier new是处于 "隐藏"下的. 这样当eclipse打开…

webdriver(python)学习笔记七——多层框架定位与智能等待

多层框架或窗口定位&#xff1a; switch_to_frame()switch_to_window()智能等待&#xff1a; implicitly_wait()现在web应用中经常会遇到框架如&#xff08;frame&#xff09;或窗口&#xff08;windows&#xff09;的应用&#xff0c;这样定位就比较难&#xff0c;有时定位一个…

bbp代码python_如何正确计算加密债券价格的BBP(Bollinger波段百分比)?

我试图用这个代码计算python中的BBP(Bollinger频带百分比)。然而&#xff0c;我的^{cd1>}函数返回^{{cd2>}或^{cd3>}用于^{cd4>}。当我使用一些硬币收盘价时&#xff0c;令人困惑的是&#xff0c;这个函数返回正确的^{cd4>}数字(而不是inf)。这是我的python代码…

ASP.NET学习路线图

转自&#xff1a;http://www.cnblogs.com/huangmeimujin/archive/2011/08/08/2131242.html 如果你已经有较多的面向对象开发经验&#xff0c;跳过以下这两步&#xff1a; 第一步 掌握一门.NET面向对象语言&#xff0c;C#或VB.NET 我强烈反对在没系统学过一门面向对象(OO)语言的…

centos 多个mysql数据库_CentOS6.5 一台服务器同时安装多个Mysql数据库

建用户与组groupadd mysqluseradd -g mysql mysql下载源码&#xff1a;wget https://downloads.mariadb.org/interstitial/mariadb-10.1.10/source/mariadb-10.1.10.tar.gztar -xvf mariadb-10.1.10.tar.gz1、编译&#xff1a;cmake . -DCMAKE_INSTALL_PREFIX/var/lib/mysql33…

MVC3学习 一 ViewBag和Html.Raw

ViewBag类似于JavaScript的语法&#xff0c;在赋值时动态赋值&#xff0c;比如ViewBag.Dog“哈哈” &#xff0c;这样就会创建一个ViewBag.Dog的对象&#xff0c;供前端页面调用。 在调用时&#xff0c;前台页面用razor方式&#xff0c;ViewBag 直接使用。 public class HomeCo…

PHPCMS源码分析(二)

index.php中引入了phpcms框架的入口文件&#xff0c;下面我们看下这个入口文件 /phpcms/base.php define(IN_PHPCMS, true);//防止恶意调用//PHPCMS框架路径 define(PC_PATH, dirname(__FILE__).DIRECTORY_SEPARATOR); //重新定义网站根目录 if(!defined(PHPCMS_PATH)…

mysql 5.6密钥_MySQL的密钥文件不正确

我遇到了InnoDB的问题(表是最初的MyISAM,但是之前将它转换为InndoB)表;我正在尝试运行此查询&#xff1a;SELECTposts.id,posts.post_titleFROMrss_posts AS postsINNER JOIN rss_feeds AS feeds ON posts.blog_idfeeds.idWHEREfeeds.blog_language1ORDER BYposts.post_date_db…

JS-取出字符串中重复次数最多的字符并输出

/**取出字符串中重复字数最多的字符 */ var words sdfghjkfastgbyhnvdstyaujskgfdfhlaa;      //创建字符串 var word,                          //单个字符length;                          //该字符的长度 //…

windows下查看静态库和动态库的导出函数

在window下查看动态库的导出函数可以用vs自带的Depends工具&#xff1b; 查看静态库的信息要用命令行来实现&#xff1a; dumpbin /LINKERMEMBER Test.lib > 1.txt 上面的功能是将静态库的信息导出保存在1.txt文件中&#xff0c;这样就可以在1.txt文件中查看相关的信…

linux ll 文件大小单位_该如何改善 Linux 系统性能?

系统性能一直是一个受关注的话题&#xff0c;如何通过最简单的设置来实现最有效的性能调优&#xff0c;如何在有限资源的条件下保证程序的运作&#xff0c;ulimit 是我们在处理这些问题时&#xff0c;经常使用的一种简单手段。ulimit 是一种 linux 系统的内键功能&#xff0c;它…

深入Javascript中apply、call、bind

最近在看一下node package的源码&#xff0c;发现很多里面都包含了function这个对象的apply、call、bind这三个方法&#xff0c;于是想拿出来再看看。。 apply、call 在 javascript 中&#xff0c;call 和 apply 都是为了改变某个函数运行时的上下文&#xff08;context&#x…

优秀案例!教您如何设计现代简约风格网页

我们看到越来越多的设计师开始拥抱简约的网站设计方法&#xff0c;消除网站不必要的元素&#xff0c;保留真正重要的内容&#xff0c;干净、直观的设计&#xff0c;就像今天的我们将展示的这些网站。 下面是一组不同风格的简约设计的网站例子&#xff0c;美丽的导航、整洁的菜单…