扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
对于系统管理员和企业CIO来说,企业无线局域网的安全问题一直是他们关注的重心。在4月份中,我们会连续关注企业无线局域网安全,今天我们将介绍自签名数字证书,帮助那些不愿意花钱购买CA机构颁发的证书的企业也可以搭建RADIUS服务器。
自签名数字证书是企业避免采用CA机构颁发的数字正数的一种方式。长期以来,自签名数字证书一直被开发人员用来进行安全Web服务器的测试,但是很长一段时间都没有被用作正式的系统。一些人知道自签名数字证书或者采用了这种方法来进行RADIUS PEAP验证,但是目前还没有官方的文档介绍这种用途的具体实施方法。
自签名数字证书的概念与Pretty Good Privacy(PGP)类似,他们同样不使用公众CA机构的数字签名。虽然PKI和PGP都属于PKC,但是数字证书是针对PKI信任模式的集中化受信CA设计的,而PGP则是使用分布式的P2P方式来建立信任关系。
比如,一个PGP用户会生成他们自己的公钥和私钥,然后将公钥发布到用户自己的公众Web服务器上供其他用户校验。由于采用这种建立信任的模式,并不需要公众或私营CA机构的参与,因此不会像SSL或PEAP等安全验证协议会遇到CA的问题。
要创建一个自签名数字证书很简单,用户只需要使用工具创建一个带有数字签名的数字证书即可。与通过公众受信的CA机构获取数字证书的签名不同,这个工具可以自行签发证书。
当数字证书创建后,包含“根证书”公钥的公开版本的数字证书会被导出,并成为一个可以被公众访问的文件。根证书可以通过任何方发布(比如Web网站)而不用担心会被破解,因为与之配对的私钥并没有被发布出去。任何采用PKC技术的验证方式,比如PGP或PKI,都没有特殊的方法可以从公钥中提取出私钥。当拥有了字签名的数字证书,用户就可以通过RADIUS服务器使用PEAP验证协议进行安全的身份验证了。
Microsoft IIS 6.0 资源包
当我开始考虑为PEAP身份验证方式使用字签名证书时,我第一个想到的就是找一款使用简单的创建字签名数字证书的工具。搜索了一番后,我发现Microsoft IIS 6.0资源包中有一款有趣的命令行工具,叫做SelfSSL.exe,这款工具可以创建字签名的数字证书。虽然这款工具是为Microsoft IIS 6.0 SSL Web服务器测试而准备的,但是由于它创建的是标准的X.509证书,因此也可以用在包括PEAP在内的各种需要数字证书的地方。测试了一下该工具的库,我发现它非常适合在搭建PKI证书授权时简化PEAP认证。
在安装时,我们只需要安装其中一个332 KB大小的 SelfSSL 1.0组件即可。如图A所示。
图A SelffSSL 1.0 安装向导
SelfSSL.exe工具可以用于大部分RADIUS/AAA验证服务器,我在Microsoft IAS服务器上也验证了这一点。SelfSSL.exe的使用并不困难,首先在你的验证服务器上开启一个命令行窗口,然后进入安装SelfSSL.exe的文件夹(默认情况下是安装在C:\Program Files\IIS Resources\SelfSSL)。然后可以输入以下命令:
selfssl /N:CN=ServerName.YourDomain.com /K:1024 /V:1825 /S:1 /P:443
◆/N:CN 应该被设置为你的服务器名以及完整的域名的组合
◆/K: 一般都设置为1024。 1024是分配给RSA密钥的比特数
◆/V: 是证书的失效日期,1825天就是5年。
◆/S: 在IIS中的站点号码。
◆/P: TCP端口号。443是标准的SSL端口。
需要注意的是,由于你的认证服务器可能不会同时运行IIS,因此/S:和/P:参数只是在我这个例子中所要用到的。根据一般的安全常识,在验证服务器上运行的服务应该尽量少。如果你的验证服务器上没有安装IIS,那么在执行以上SelfSSL命令时,会出现“Error opening metabase: 0x80040154”错误信息。这个错误代码表示SelfSSL没有发现IIS站点,但是你可以忽略这个错误信息,因为你所需要用于PEAP的数字证书已经生成了。
创建根证书
在验证服务器上生成了数字证书后,你就可以导出这个自签名证书的根证书了。数字证书不同于根证书。我们刚刚通过SelfSSL.exe生成的数字证书中包含了相互匹配的公钥和私钥。而根证书中仅包含了公钥,以及一个表示“我是根证书”的字段。你可以将这个根证书放在Web服务器上,或者文件服务器上,进行手动的配发工作,或者将其导入活动目录的组策略,实现自动分发根证书。
要创建根证书,我们首先需要打开“开始/运行 ”,然后输入“mmc”并回车。打开MMC后,我们会看到如图B所示的控制台窗口。在这个窗口中,点击“ADD/Remove Snap-in...”
图B MMC 控制台
接下来我们会看到如图C所示的窗口。点击“ADD”按钮。
图C Add/Remove Snap-in
如图D所示,选择“ Certificates”然后点击“Add”按钮
图D 选择证书
选择 "Computer account"然后点击 "Next",如图B所示。
图E Computer account
然后选择 "Local computer" 如图F所示。然后点击"Finish".
图F 选择本地计算机
接下来会看到如图G所示的控制台窗口。
图G Console root
展开“ Certificates” (本地计算机) 项。然后右键点击"MyAuthServ.MyDomain"或任何你在SelfSSL "/N:CN" 参数中设定的域名。点击 "All Tasks" 然后选择 "Export"。如图H所示。
图H 导出
我们会看到如图I所示的向导,选择"Next".
图I 证书导出向导
在这一步骤中,一定要注意不要导出私钥(如图J所示),因为私钥是必须在服务器上妥善保存的。如果在这一步骤中选择了“Yes, export the private key”,那么你可以实现对数字证书的备份,但是导出的备份数字证书一定要妥善保存。如果该备份被黑客获取,则会破解你的数字证书,因为该证书中包含了你的私钥。导出私钥的另一个目的是将数字证书复制到冗余的RADIUS服务器上,这样你只需要在该服务器上导入数字证书即可,不用重新生成一个新的数字证书。如果你有多个RADIUS验证服务器,那么就要将这个证书拷贝到每个服务器中。如果你不想给自己添麻烦的话,千万不要生成多个根证书。
图J 不要导出私钥
选择"DER"格式进行导出,因为这种可以兼容Windows以及Windows Mobile设备。如图K所示。虽然Windows并不介意你采用了什么格式的证书,但是Windows Mobile设备对此比较挑剔。
图K 文件格式
选择证书文件的存放路径和文件名,如图L所示。我们要记住文件名,以便日后使用。
图L 路径和文件名
点击"Finish"就可以将自签名的根证书导出成文件了,如图M所示。
图M 结束
现在,你已经拥有了一个字签名的根证书,你可以通过手动或自动方式将其发布到用户的系统中,同时在你的验证服务器上也拥有了相应的数字证书。在接下来的文章中,我们将继续介绍如何在Microsoft IAS RADIUS服务器中配置和使用这个证书。
(责任编辑:陈毅东)
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者