导航

这是一个非常有趣的实验。

大家已经知道,一些SSL证书颁发机构颁发的证书,只是装在服务器端,让访问者通过SSL链接访问网站,并且可以向访问者证实网站的真实地址。但是,如果要限制网站的访问者,也就需要验证客户端所拥有的证书,这样才能建立安全链接。而机构在颁发SSL证书的时候,并没有配套的客户端证书,因此无法在客户端安装,也就无法开启对客户端的认证了。

AD CS的证书服务可以颁发服务器端SSL证书,也可以颁发客户端证书(见前文),但是AD CS颁发的服务器端SSL证书只能绑定一个域名,即 WWW.abc.com 或者abc.com。绑定其中一个域名,用另外一个域名访问时,就提示证书有问题,不是授权给这个域名的,有点不爽。

今天突发奇想,能不能将第三方认证机构颁发的SSL证书与AD CS颁发的证书结合在一起使用,实现双向认证呢?开始试验。

在服务器端先布置第三方机构颁发的SSL证书。将证书导入服务器证书个人下面。然后将证书导入客户端计算机证书管理“受信任的证书”。通过IIS设置,网站需要SSL链接,并且选择不需要客户端证书。这种设置下,客户端用http访问会提示403错误,用https访问时,会建立安全链接,点击“锁”的图形后,会显示证书的详细信息。说明SSl证书配置成功。

接下来在服务器端将IIS重新设置,需要SSL链接,同时需要客户端证书。现在用https访问时,因为没有证书,就不能访问了。提示需要用安全证书访问。

现在,在服务器端访问证书申请的页面,一般为 localhost/certsrv,申请客户端证书,申请成功后,到入服务器浏览器,再从服务器浏览器导出,复制到客户端电脑桌面上。

下一步是:在客户端,将客户端证书导入到证书的个人下。有时需要手工导入到浏览器中;在服务器端,将客户端证书导入到“受信的证书”中去。

OK!现在在客户端访问,用https访问,页面出现让用户选择证书,选择证书后,确认,双向链接就建立了,可以正常访问网站。

另外,如果没有弹出证书选择的页面,可能是之前访问过,或者曾经拒绝过选用证书,下次访问可能就没有证书访问的弹出框,可以清除浏览器缓存后重新输入地址访问。

一个技巧:如果客户端用http访问,而IIS设置一定要用SSL访问,通常就出现一个403页面,现在,可以通过修改403页面,让网址自动跳转到https访问,显得更为友好。相关设置方法百度一下就有。

一个小时的实验成功!心满意足,喝杯茶去。然后写老师布置的作业。