用TCP和TLS为即时通讯搭建通信通道

简介:
在上一篇文章中我们搭建了即时通讯服务器LCS,今天我们为用户启用即时通讯服务,并为即时通讯用户搭建基于TCP和基于TLS的通信通道。
试验拓扑图如下:
试验拓扑介绍:Florence为域控制器、DNS服务器、CA服务器。
Firenze为LCS服务器。
Istanbul为测试客户机。
所有计算机都处于LCSTEST.COM域中
clip_image002
首先我们为客户启用即时通讯服务。
在域控制器Florence上打开Active Directory 用户和计算机。选择要开启即时通讯服务的用户。右击用户名,选择属性。在用户属性中选择Live communications选项。
如下图所示,勾选为此用户启用Live communications(E)
为用户指定登录名格式如下所示:(在此我们为administrator配置LCS)sip:administrator@lcstest.com
服务器或池我们选择FIRENZE.lcstest.com
clip_image003
同样的格式,为用户张三开启即时通讯服务。
clip_image004
安装LCS客户端
LCS客户端是必不可少的。接下来我们在客户机上安装LCS客户端MSN。
双击执行安装MSN5.1
clip_image006
安装向导,点击下一步。
clip_image007
同意用户许可协议。
clip_image008
如下图所示,MSN正在安装…
clip_image009
MSN 5.1 安装完成。
clip_image010
此时MSN是无法登陆的,因为LCS服务器没有配置SRV记录。
配置SRV记录
SRV记录可以说明某台服务器在某个端口提供某种服务,我们可以通过SRV记录说明firenze在5060端口提供TCP基础上的SIP服务,这样客户端软件就可以直接通过SRV记录找到LCS服务器,我们也就无需在每台客户机上一一进行设置了。
如下图所示,打开DNS,在当前域中选择其他新纪录
clip_image012
选择新建SRV记录。
clip_image013
LCS服务器使用SIP(会话初始化协议)作为即时通讯的信令协议,SIP协议既可以在5060端口提供TCP连接,也可以在5061端口提供TLS加密连接, TLS需要有证书的支持,我们现在先来测试5060端口的TCP连接。
设置方式如下:
服务:_sip
协议:_tcp
优先级和权数使用默认值
端口号为5060
提供此服务的主机,我们要使用完全合格域名,我们的LCS服务器为firenze.lcstest.com
clip_image014
验证
配置完SRV记录后我们在客户机上登录MSN测试。
clip_image015
连接到消息的服务:勾选SIP通讯服务
clip_image016
登陆名输入我们在前边设置的名称。我们在florence上以管理员登陆
clip_image017
OK 成功登陆
clip_image018
Istanbul上我们以张三登陆,顺利登陆并且两个用户能相互通讯啦.
clip_image019
至此我们完成了即时通讯最基本的服务。
接下来我们配置基于TLS的即时通讯服务。
创建证书服务器
基于TLS的即时通讯服务要有证书的支持。我们在Florence上创建证书服务器。在添加删除windows组建中勾选证书服务。提示在安装证书服务前确认计算机名和域成员身份。选择是。继续后续操作。
clip_image020
创建企业根
clip_image021
CA的功用名称为ITETCA
clip_image022
证书数据库和证书数据库日志都放在默认目录中。
clip_image023
OK 完成证书服务器的创建。
clip_image024
证书服务器安装完成后,域内其他的计算机需要信任这个证书服务器。如果想让组策略尽快生效,可以如下图所示运行gpupdate/force,这样可以可以强制组策略立即生效。
clip_image026
LCS服务器申请证书。
我们使用浏览器为LCS服务器申请证书。(注意:使用浏览器申请证书一定要确保证书服务器上的IIS默认网站保持开启状态)在浏览器中输入 http://flornce/certsrv 。如下图所示,选择申请一个证书。
clip_image028
申请高级证书
clip_image030
在高级证书申请页面中,选择创建并想此CA提交一个申请。
clip_image032
特别注意:
证书模版为:web服务器
姓名:firenze.lcstest.com
其他选项根据实际情况自行填写。
clip_image034
在密钥选项中勾选:将证书报春在本地计算机存储中
clip_image036
证书已颁发。点击安装此证书。
clip_image038
证书申请完成。
LCS服务器使用证书
LCS服务器申请证书后,就要使用申请到的证书配置TLS了。在Firenze的管理工具中打开“Live Communications Server 2005”,如下图所示,我们发现目前Firenze只在5060端口提供TCP连接,右键点击firenze.lcstest.com,选择属性。
clip_image040
点击如下图中的添加。
clip_image041
传输类型选择TLS,
端口为5061
clip_image042
基于TLS的即时通讯服务须有证书的支持。选择刚申请到得证书。
clip_image043
如下图所示,是我们新建的添加连接。点击确定。
clip_image044
如下图所示,LCS服务器可以在5061端口提供加密的TLS连接啦。
clip_image046
同基于TCP的连接一样。TLS连接也得创建SRV记录。打开DNS管理器选择新建其他记录
clip_image048
选择创建SRV
clip_image049
格式为:
服务:_sip
协议:-_tls
优先级和权数还是用默认值
端口号为5061
提供此服务的主机为:firenze.lcstest.com
clip_image050
如下图所示,使用ipconfig/flushdns来清除DNS缓存, 以免查询不到DNS新增加的SRV记录。
clip_image052
如下图所示,administrator成功登陆。那怎样判断,客户端连接服务器使用的是TCP还是TLS呢?
clip_image053
如下图所示,我们使用netstat –ano |find “506”来查询对5061端口的连接,从查询结果可以看出,客户端正在连接LCS服务器的5061端口,实验成功。 clip_image055
注意:如果LCS服务器既提供TCP连接,又提供TLS连接,客户端会优先使用安全性更高的TLS连接。








本文转自 范琳琳 51CTO博客,原文链接:http://blog.51cto.com/fanlinlin/158893,如需转载请自行联系原作者
目录
相关文章
|
网络协议 物联网 开发者
NB-IoT 通信之 TCP 收发数据 | 学习笔记
快速学习 NB-IoT 通信之 TCP 收发数据
794 0
NB-IoT 通信之 TCP 收发数据 | 学习笔记
|
4月前
|
网络协议 安全 Java
Java网络编程入门指南:TCP/IP协议与Socket通信
Java网络编程入门指南:TCP/IP协议与Socket通信
55 1
|
6月前
|
SQL 网络协议 前端开发
🚀超级简单的图解TCP/IP,看不懂来打我:OSI模型与通信示例🚀
🚀超级简单的图解TCP/IP,看不懂来打我:OSI模型与通信示例🚀
|
监控 网络协议 安全
一文了解HTTP、HTTPS、TCP、UDP、Websocket(论点:概念、通信流程、异同点、应用领域)
一文了解HTTP、HTTPS、TCP、UDP、Websocket(论点:概念、通信流程、异同点、应用领域)
|
网络协议
Netty实现TCP通信
Netty实现TCP通信
|
网络协议
TCP编程中的客户端与服务端的通信实现
TCP编程中的客户端与服务端的通信实现
107 0
|
网络协议 Unix Linux
linux网络编程(三) TCP通信时序与多进程/线程并发服务器的编写
linux网络编程(三) TCP通信时序与多进程/线程并发服务器的编写
279 0
linux网络编程(三) TCP通信时序与多进程/线程并发服务器的编写
|
机器学习/深度学习 网络协议 机器人
socket库:Python实现TCP/IP客户和服务器通信
socket库:Python实现TCP/IP客户和服务器通信
420 0
socket库:Python实现TCP/IP客户和服务器通信
|
网络协议
套接字编程:TCP通信程序
套接字编程:TCP通信程序
140 0
|
网络协议
网络通信学习笔记(三)---TCP通信及文件上传
网络通信学习笔记(三)---TCP通信及文件上传
网络通信学习笔记(三)---TCP通信及文件上传