关于LYNC证书的一些拓展思考

经过4年的学习,我们终于毕业了。表明我们毕业的东西除了很多很多之外,其中一个就是我们有了一个红色的小本本-毕业证。在我们面试工作的时候,我们就会把毕业证展示给对方,并加上一句,你不相信我的能力,但是你应该相信这个学校吧。于是,他点点头说,你毕业于这所名牌学校,应该能力可以,那就接受你吧,于是我们就开始工作了。另外一个例子就是:还有许多个人和企业都信任合法的驾驶证或护照。这是因为他们都信任颁发这些证件的同一机构--政府,因而他们也就信任这些证件。

现实生活中的证书就是这样用的。

 在计算机的世界里,也存在这个类似的机制,服务器为了告诉对方自己的合法身份,也会把自己的证书给对方看,对方因为信任给你证书的这个机构,从而也信任了服务器的身份。当然了计算机世界的证书的作用远不止这些,我们用得很多的还有什么加密之类的东西,如果我在这里提什么一大堆的公钥私钥,估计大伙都要睡觉去了。我们就通俗简单一点来描述一下,因为搞清楚这些还是比较重要的。

我们先从给服务器证书的这个机构也成为认证中心-CA,CA一般都是商业机构,他们只要给大家的服务器发发证书就可以赚大钱,因为这样的证书价格还不是很便宜的。为什么他们可以这样来赚钱,主要原因还是他们有一项核心技术,那就是加密算法。很多人都知道证书是可以拿来加解密的,但是怎么进行加解密还得从这个公钥和私钥说起来,顾名思义公钥就是可以公开的,私钥就是不能公开的。我们花了钱从CA那里买来了里面包含有公钥和私钥的证书,别人来访问的时候,就会收到服务器发给它的数字证书,通过这个数字证书用户就会收到公钥,以后用户发过来的数据就用刚才获得的公钥进行加密,当加密后的数据传到服务器上的时候,服务器就会用对应的私钥进行解密,从而才能看到真正的内容。通过这里我们就知道了,如果用公钥加密,那么就要用私钥加密,反过来如果用私钥加密,那么就要用公钥加密。

 有的企业为了省钱,采用Windows server上的CA功能来给服务器颁发证书,这个CA我们叫做企业内部根CA,它所颁发的证书成为为内部证书,这些证书都有一个特点,就是它们都和这个根CA公钥连接在一起来辨识企业在管理证书的层级。为了达到认识到这个证书的目的,我们同时也需要把根CA的公钥也到发送到相关的客户机计算机上,这个过程也成为导根证书。如果这个计算机在域里面的话,就可以不用进行根证书的导入工作了。

在加密协议上大家以前熟知的由Netscape公司发明的SSL,现在有了一个更新成为TLS。TLS是由RFC 5246所定义的。SSL和TLS俩都是工作在传输层之上,使用了异步加密算法。TLS的特点主要是:

  1. 通过数字证书的形式来发送自己的证书,里面就会有服务器的名字、CA的名字和它的公钥。这个服务器的名字成为:Subject Name。除了这个SN之外,还有一个SAN(Subject Alternate  Name:代替名称)。如果服务器要表示多个名称,就要利用SAN可以包含多个名字。关于二者的区别,大家就看看维基百科吧。
  2. 客户端可能会联系CA来确定这个证书是否是有效的。

 上面说的这一整套系统有一个专门的术语:称为PKI-公钥基础设施。

 关于证书,我们就聊这么多,下面我们聊聊LYNC相关的证书问题。

 微软倡导一个可信赖的计算平台,所以以前OCS的TCP登录就没有延续到LYNC,现在LYNC客户端到LYNC服务器之间的通讯全部采用了TLS的传输层加密的方式进行传输。按照上面所描述的,当一个客户端开始登录服务器的时候,LYNC服务器在把数字证书发个客户端的时候,客户端会检查证书上的这个这个名字是否正确,如果正确,那么才会继续,如果不正确,那就会弹出一个窗口上,提示用户验证证书错误。所以我们需要为LYNC服务器配置对正确的服务器证书。

 需要说明的是在LYNC环境下,标准版和企业版是不一样的,如果是标准版,那么证书上的subject name就要是改服务器的FQDN,也就是计算机名+域名。如果是企业版,那么就是池名+域名。

我们先说说怎么为服务器申请证书,申请证书有两种方式,一种是通过图形界面,这个比较直观和简单;另外一个就是通过powershell了,这个操作起来相对复杂,但是功能比较强大。初次使用的话,建议使用图形界面。

 我下面的例子是企业版本的,其中池的名字是pool.lyncpbx.net image

申请证书算是最后的步骤了,所以前面的安装步骤需要完成。

image

通过展开Default certificate我们可以可以看到,现在是三个对象需要证书,但是现在都还没有呢。我们点击Request开始 

image

没有什么好说的,点击NEXT

image

由于我们使用内部CA,并且LYNC服务器可以直接访问到,所以选择立即发送,如果不能访问的CA,那么可以使用下面的选项,这个选项会产生一个证书申请文件,我们可以copy到可以访问CA的计算机上进行提交。

image

LYNC服务器已经找到了CA,怎么找到了,因为CA早就把自己的信息发布到活动目录中了。

image

如果当前用户不能访问CA,那么需要提供可以访问CA的账号。

image

缺省情况下,LYNC将使用CA服务器上的webserver模板,如果你想用其它模板,那么也可以指定其它模板。

image

输入一个友好名字,这个名字有什么用,当证书很多的时候,我们可以容易的找到它。注意下面个“标记私钥为可导出”选项。

image

输入相关信息,应该很容易。

image

这个唯一重要的就是国家了,其它就可以随意了。

imageD

这里就会涉及到Subject Name 和Subect Altername Name(SAN),这个也是图形界面方便的地方了,它会自动的帮我们把这个值填好。

image

选择好SIP域,然后下一步,如果AD的域名和SIP域名称不一样的话,这里的选择就会不一样了。

image

上面的SAN名,已经够了,所以这里直接下一部。

image

一切就绪,下一步开始申请。

image

已经成功,下一步

image

点击查看证书看看

image

这里我们看到的那个颁发给后面的值就是Subject Name了,而且有一个小钥匙说明了我们有一个私钥哦。

 image

这里的这个CN值也是我们的Subject Name

 image

这里的所有信息都是SAN名字。

image

提到TLS的时候,我们说到客户端可能回到CA去检查这个证书知否有效,这里就是它去检查的路径。具体的方法就是,从那里下载一个CRL(证书撤销列表),如果里面有这个服务器的信息,那么就说明了这个证书是无效的。 

image

点击完成,会弹出指派证书界面,通过这一步,我们会把刚才申请到证书指派到相应的LYNC角色上。

image

简单浏览一下上面的信息,然后点击下一步

 image 

 点击完成。

 image

展开Default certificate,我们看到三个角色都已经被指派上了证书,证书过程已经完成,是不是很简单的方便。

 下面我们介绍一下命令行操作。

申请证书的命令:

Request-CSCertificate -New -Type Default,WebServicesInternal,WebServicesExternal -CA "DC.lyncpbx.net\LYNCPBX CA" -Country CN -State "Beijing" -City "Beijing" -FriendlyName "LYNC server Certificate" -KeySize 2048 -PrivateKeyExportable $False -Organization "LYNC CORP" -OU "IT Detp" -DomainName "sip.lyncpbx.net" -Verbose image

申请道的证书,我们需要记下Thumbprint值,然后填入到指派证书的命令中,如果忘记了?那就使用下面这个命令查看吧。

Get-ChildItem cert:\localmachine\my

image

 指派证书:

Set-CSCertificate -Type Default,WebServicesInternal,WebServicesExternal -Thumbprint 01641FD63E665541E13727853C0E5DF76A11C988 -Verbose -Confirm:$false 

image

 要检查一下指派好了没有?使用Get-Cscertificate就搞定了

image

 如果要删除这个证书,直接用下面的命令就OK了。

Remove-CSCertificate -Type Default,WebServicesInternal,WebServicesExternal -Force –Verbose

 这里我留一个问题给大家,我们看到刚才的证书上面的有效期是2年,如果我想要一个3年的证书呢?大家可以想想怎么弄。

 TLS不能被破解?答案是NO。如果大家想破解TLS的话,也不是不可能的,只要有了服务器的证书,那么破解TLS也是可以的,利用WireSharK就可以做到,不过这个已经超过本文的范围了,大家可以到Citrix网站上去看看方法,具体的地址是:http://support.citrix.com/article/CTX116557 以后要是有空,我们也来弄一次看看。

 

你可能感兴趣的:(证书,思考,休闲,拓展,Lync)