Windows Azure上搭建SSTP VPN
一、服务器设置
首先,从0开始,你需要创建一个新的VM。我选择Windows Server 2012 R2,所有步骤和创建普通VM都一样,但最后在防火墙设置里一定要打开TCP 443端口:

创建完成后,远程桌面进去,在自动弹出的“Server Management”里面点击“Add roles and features”,一路Next到“Server Roles”,然后勾选Remote Access。

再一路Next到“Role Services”,选择"DirectAccess and VPN(RAS)"、"Routing"。

然后一路Next并慢慢等待安装。安装完成后你会发现还需要配置才可以使用:

点击"Server Manager"右上角的旗帜图标,选择“Open the Getting Started Wizard”

在弹出的向导中选择最后一项:Deploy VPN Only

然后在本机名称(就是你的VM名称,我这里是EDIVPN)上点击右键,选择“Configure and Enable Routing and Remote Access”

在弹出的向导中选择“Custom configuration”

然后把“VPN access”和“NAT”选上,一路next到底。

最后向导会提示你需要启动服务,点击“Start service”

接下来我们需要配置一个VPN使用的安全证书。新建的VM虽然有个默认证书但不符合我们的要求,最后导出的时候无法选择private key,所以我们要用大微软的工具自己生成一个证书。
工具叫做Internet Information Services (IIS) 6.0 Resource Kit Tools,到这里下载:http://www.microsoft.com/en-us/download/details.aspx?id=17275
安装完成后在你的开始屏幕,App里能找到selfssl这个工具,以管理员身份运行

然后运行这条命令生成SSL证书:
记住,此处你的VM名字一定要用大小写区别于你在azure里创建的VM名字。比如我在azure里用的是edivpn,那么这里我就要用EdiVPN。总之一定要有区别!
selfssl.exe /N:cn=你的VM名字.cloudapp.net /V:3650
3650的意思是有效期为10年。选择Y确认,不要在意那个“Error opening metabase”的错误。
然后运行“mmc”,点击File, Add/Remove Snap-in

选择Certificates,点击Add,然后选择Computer account

选择Local computer,点击Finish,一路到底。
在Certificates, Personal, Certificates下面找到刚才用selfssl创建的证书,这里要注意区分大小写。这就是为什么刚才在selfssl的时候用大小写区别机器名。
在证书上点击右键,All Tasks,选择Export。

一路Next,在private key的一部里选择“Yes,export the private key”

然后建议大家设置个密码保护证书,以免被别人拿去用你的VPN。

最后给文件取个有意义的名字然后保存下来。然后也拷贝一份到你本地机器上。

现在回到Routing and Remote Access的窗口。右击你的机器名,打开Properties对话框。

在Security标签页下方,选择刚才用selfssl创建的证书(现在知道为什么要区别大小写了吧)

然后再IPv4标签页里,选择“Static address pool”,并根据自己需分配一个地址段给你的VPN客户端使用。

点击OK退出对话框。这时候会要你重启服务,点击Yes重启。

然后展开IPv4节点,在NAT下面右键,选择New Interface...

这里选择你VM的外部连接,也就是互联网连接。这个连接每次VM重启都会变,所以每次重启VPN服务器后都要重新设置一下。不然你的VPN虽然能连上但不能上网!!!

选择"Public interface connected to the Internet",勾选"Enable NAT on this interface"

完成设置后,我们还需要创建VPN账户。运行lusrmgr.msc(账户管理)打开用户账户管理。

在Users下面建立你的VPN账号。千万不要选择“User must change password at next logon”

账户创建完成后无需加入管理员组。但需要在账户属性的Dial-in标签页里面选择“Allow access”

至此,服务器上的设置全部完成。
L2TP VPN Deployment
部署 L2TP VPN时,我们首先应当在Windows Azure中开启一些 UDP 端口。
L2TP port: UDP 1701
IPsec port: UDP 500
IKEv2 port: UDP 4500
此外,在Windows Server防火墙添加例外。
然后打开 RRAS management tools,右键单击服务器,选择 Properties 和 Security 选项卡。
选中 “Allow custom IPsec policy for L2TP/IKEv2 connection” 并输入Preshared Key(预共享密钥)。

二、客户端设置
双击安装刚才拷贝到你本机的安全证书,在导入向导里选择“本地计算机”

证书储存里面选择“受信任的根证书颁发机构”

导入完成后,在网络与共享中心里新建一个VPN连接。

VPN服务器的地址一定要用azure自带的那个.cloudapp.net的域名,不要绑定自己的域名不然肯定会爆。

然后别急,先不要连接,不然还是要爆!
在适配器设置里找到你的vpn连接,在安全选项卡里选择SSTP,需要加密,允许使用这些协议,Microsoft CHAP

现在你就可以使用VPN了。输入你刚才在服务器上创建的账号密码连接到你的VPN虚拟机。

显示已连接就说明SSTP的连接成功了。

最后总结一下要注意的地方:
1. Extra Small的VM是免费的,但不要直接建立这种VM,先建个small,再改成extra small(注意重启后重新配置NAT)
2. 如果你是用现有的VM搞VPN,注意在Azure的防火墙设置里打开TCP 443端口
3. Azure VM的位置随意,即使在East Asia也是可以**的。但你的Azure一定要是Global版的,国内世纪互联的那个是不可以**的。
客户端使用vpn类型 为 L2TP 时 使用如下设置
选择 高级设置 输入预共享秘钥

以上转载自 http://diaosbook.com/Post/2014/3/9/setup-sstp-windows-azure
客户端 win764位 连接 提示错误
x800b0109“已处理证书链,但是在不受信任提供程序信任的根证书中终止。(A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider.)
错误处理
导入证书时候 没有出现 存储证书位置 选项 本地计算机 这个选项 ,所以出现 证书错误的提示。
解决办法
开始 ---运行 ----mmc
打开控制台 中 选择 文件---添加/删除管理单元

下一步 选择 本地计算机 选项
点击确定

选择 “受信任的根证书颁发机构”
右键 “证书” 所有任务----导入
导入证书
重新连接vpn 成功。
Windows Azure上搭建SSTP VPN的更多相关文章
- 在Windows Azure上搭建SSTP VPN
在国内,VPN是用来干嘛的大家都懂的.很久之前我尝试用Azure的Virtual Network搞VPN结果惨败了.最近微博上有基友写了篇文章亲测可行,原文在这里.可惜是英文的.所以我的这篇文章仅仅是 ...
- 在Azure上搭建L2TP服务器
L2TP是常用的一种point-site的VPN.而目前在Azure上的VPN Gateway只支持IPsec和SSTP两种.如果客户需要L2TP服务器,需要自己在VM中搭建.本文将介绍如何在Azur ...
- 连接到Windows Azure Point to Site VPN
Windows Azure支持两种模式的VPN接入: Site to Site,接入端需要有固定的公网IP地址,用于连接局域网和Windows Azure的虚拟网络. Point to Site,客户 ...
- 使用Openswan接入Windows Azure Site to Site VPN
Winodows Azure的Site to Site VPN支持主流的防火墙和路由器等接入设备.具体型号和系列请参考下表: VENDOR DEVICE FAMILY MINIMUM OS VERSI ...
- 如何将SQL Server运行到Windows Azure上
从2012年6月6日开始,Windows Azure上一些强大的新功能现在可用于预览,包括新的Windows Azure虚拟机(VM).其中有关Windows Azure虚拟机最强大的一件事是他们利用 ...
- 快速学习使用 Windows Azure 上的 SharePoint Server 2013
为了在当今的企业环境中占据一席之地,您需要能够迅速顺应变化和应对挑战.有时,需要及时调整您的SharePoint 基础结构以保持竞争优势. 基础结构即服务可通过随时使用.即付即用的解决方案应对这 ...
- 微软.NET年芳15:我在Azure上搭建Photon服务器(C#.NET)
网上火热的“微软.NET年芳15”文章,我也得写点什么嘛,毕竟我还是现任的微软MVP. 摘录网上的“.NET 15周年”信息如下: 微软的 .NET 框架本周迎来了 15 岁生日..NET 的第一个版 ...
- JMeter--二、在Windows环境上搭建wordpress
为了学习使用JMeter,在Windows环境上搭建了wordpress. 使用JMeter录制或是编写登录worepress.编辑文章.删除文章的脚本. 首先了解一下wordpress是什么? Wo ...
- 在 Windows Azure 上部署并定制化 FreeBSD 虚拟机镜像
发布于 2014-12-11 作者 陈阳 FreeBSD 基础镜像现已登陆中国的 VM Depot! 对于青睐 BSD 而非 Linux 的开源爱好者来说,这无疑是个好消息.同时,随着该基础镜像 ...
随机推荐
- Python语言及其应用 - 知识点遍历
遍历python语法 2.基本元素:数字.字符串和变量 2.1 python有哪些基本类型? 布尔型(True, False),整型(42,100000),浮点型(3.14159,1.0e8) ...
- java 反射机制的实例
[案例1]通过一个对象获得完整的包名和类名 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 package Reflect; /** * 通过一个对象获得完整的包名和类名 ...
- MySQL中基本的多表连接查询教程
一.多表连接类型1. 笛卡尔积(交叉连接) 在MySQL中可以为CROSS JOIN或者省略CROSS即JOIN,或者使用',' 如: SELECT * FROM table1 CROSS JOIN ...
- @ResponseStatus
返回一个指定的http response状态码. @ResponseStatus(value = HttpStatus.NOT_FOUND, reason = "IOException oc ...
- 【CITE】C#默认以管理员身份运行程序实现代码
//用于一种情况:C#软件打包后,在读写C盘文件时,会出现权限问题.使用管理员身份才可以运行 using System; using System.Collections.Generic; using ...
- 【CITE】 C#中实现拖动无边框Form窗体
首先建一个Windows应用程序 将Form1的 FormBorderStyle属性设置为None 主要是在Form1窗体触发三个事件:Form4_MouseDown,Form4_MouseMove, ...
- 显示段落p中的前半部分内容 剩下的用三个点代替,点击更多时显示所有内容
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- python 练习 23
python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务.其基本形式为: while 判断条件: 执行语句…… 执行语句可以是单个语句或语句 ...
- Java_Ant 详解
1,什么是antant是构建工具2,什么是构建概念到处可查到,形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅与此,但是主要用来干这个3,ant的好处跨平台 --因为 ...
- Android 使用dagger2进行依赖注入(基础篇)
0. 前言 Dagger2是首个使用生成代码实现完整依赖注入的框架,极大减少了使用者的编码负担,本文主要介绍如何使用dagger2进行依赖注入.如果你不还不了解依赖注入,请看这一篇. 1. 简单的依赖 ...

