概述:
随着网络安全的概念日益深入人心,公钥架构(PKI)在网络得到越来越广泛的应用。PKI使用证书进行身份验证,数据加密和数据签名,是目前信息安全保障的一种重要方法。
证书是PKI的基础,是实现网络安全,进行身份验证以及保证网络信息安全的一种管理手段,有关PKI与证书更多更深入的知识请参考相关KB,或参考后继文章!
本文不涉及太多理论知识,以一个完整的例子来阐述如何建立标准CA服务器,并使用标准CA申请证书并使用证书部署SSL网站,详细步骤如下:
一:建立独立CA服务器
win2003支持两种证书服务器,分别是用于企业内部的企业CA服务器和用于Internet上的标准证书服务器,企业证书服务器需要AD支持,而标准CA服务器则可以安装在任何Win2003服务器上。因为证书服务器需要Web服务器支持,以提供Web界面申请页面证书,所以建立CA服务器时,需要安装IIS服务和ASP组件。安装标准证书服务器很简单,这里只做概括性描述:
1:安装IIS服务,以提供WEB界面的证书申请页面.
1:安装IIS服务,以提供WEB界面的证书申请页面.
安装IIS服务过程略过,但注意一定要选择"Asp.Net"组件!
在安装证书组件时,在"CA类型"中,选择"独立根CA(S)",
![](https://i-blog.csdnimg.cn/blog_migrate/2c2c7623af7e15c52421a98c3f0e3f60.png)
在"CA识别信息"对话框,输入这台证书服务器相关信息,其它信息可以根据实际情况输入,也可以选择默认值!
安装完成证书服务后,不需要重启计算机即可使用证书服务。
二:建立IIS服务器,发布网站,使用证书,配置网络安全。
标准CA服务器证书可以用于多个类型,如客户端身份验证,电子邮件,代码签名,IPSec等,本文只讨论第一种类型证书!
具体步骤
1: 配置网站安全性,使用证书
1):安装IIS服务,过程略
2):建立要配置SSL访问的网站,例如 CADemoSite,过程略过。
1: 配置网站安全性,使用证书
1):安装IIS服务,过程略
2):建立要配置SSL访问的网站,例如 CADemoSite,过程略过。
3):配置CADemoSite网站的目录安全性,使用服务器证书向导向CA服务器申请证书。
在IIS证书向导过程中,在"站点公用名称"界面,请注意站点公用名称必需与您的客户端访问这个站点所使用的名称一致。
如果此时输入的是IP地址,那么客户端访问该网站时,就只能使用IP地址访问,如果此时输入的是域名,那么客户端访问该网站时,就只能以域名形式访问。我这里输入的是域名形式。因为我测试的这台IIS服务器本身也是DNS服务器,已经建立了相应的区域文件,可以实现域名到IP地址的解析!
4):申请完成后,将证书请求保存成为certreq.txt文件。
2:正式向CA服务器申请电子证书
1):在IIS服务器上,访问独立证书颁发机构的证书申请站点:
1):在IIS服务器上,访问独立证书颁发机构的证书申请站点:
server name or IP address>/certsrv
2):依次选择“申请一个证书",“高级证书申请”?
3):“使用 base64 编码的 CMC 或 PKCS #10 文件提交 一个证书申请,或使用 base64 编码的 PKCS #7 文件续订证书申请”
4):打开第1步保存的certreq.txt文件,将其中的所有内容复制到“base64编码”窗口中,如下图:
2):依次选择“申请一个证书",“高级证书申请”?
3):“使用 base64 编码的 CMC 或 PKCS #10 文件提交 一个证书申请,或使用 base64 编码的 PKCS #7 文件续订证书申请”
4):打开第1步保存的certreq.txt文件,将其中的所有内容复制到“base64编码”窗口中,如下图:
5):点击“提交”以提交证书申请请求,确认请求提交后关闭IE窗口。
3:CA服务器颁发IIS服务器申请的电子证书
在独立证书颁发机构上批准这个证书请求,点"颁发",如下图:
在独立证书颁发机构上批准这个证书请求,点"颁发",如下图:
4:IIS服务器下载CA服务器颁发的电子证书
1):在您的IIS服务器上,访问独立证书颁发机构的证书申请站点:
1):在您的IIS服务器上,访问独立证书颁发机构的证书申请站点:
server name or IP address>/certsrv
2):选择“查看挂起的证书申请的状态”
3):获得批准的证书?“下载证书”并保存为.CER文件
4):安装下载的证书。打开IIS服务器站点属性,在目录安全性中再次点击“服务器证书”?“处理挂起的请求并安装证书”?
5):指定在第3步中获得的CER文件?完成向导。在目录安全性中点击“编辑”按钮设置客户端证书访问配置,如下图
2):选择“查看挂起的证书申请的状态”
3):获得批准的证书?“下载证书”并保存为.CER文件
4):安装下载的证书。打开IIS服务器站点属性,在目录安全性中再次点击“服务器证书”?“处理挂起的请求并安装证书”?
5):指定在第3步中获得的CER文件?完成向导。在目录安全性中点击“编辑”按钮设置客户端证书访问配置,如下图
![](https://i-blog.csdnimg.cn/blog_migrate/1a6f405d2ba8816c3a10ca4315fe5f91.png)
5:配置IIS服务器信任颁发证书的CA服务器
如果上述过程都正确操作,在IIS上安装好颁发的电子证书后,仍然会看到如下图所示的错误信息,
![](https://i-blog.csdnimg.cn/blog_migrate/d5f89b930ebc1f76efabfde0ff9cd608.png)
主要原因是IIS服务器此时不信任颁发证书的CA服务器。解决 办法是将CA服务器添加到IIS服务器计算机"受信任的根证书颁发机构",
具体步骤如下:
1):访问独立证书颁发机构的证书申请站点,选择“下载一个 CA 证书,证书链或 CRL”?“下载CA证书”。
2):将获得的CA证书导入到IIS服务器的计算机“受信任的根证书颁发机构”容器中,以使得IIS服务器信任你的独立证书颁发机构,如下图:
2):将获得的CA证书导入到IIS服务器的计算机“受信任的根证书颁发机构”容器中,以使得IIS服务器信任你的独立证书颁发机构,如下图:
![](https://i-blog.csdnimg.cn/blog_migrate/68463bd711cd679a9a43fbb8cd8f7adf.png)
3):导入CA证书到"受信任的根证书颁发机构"后,上述证书不再显示错误信息。
三:配置客户端正常访问SSL网站。
IIS服务器上配置好安全访问后,客户端要能正确访问该网站,此时客户端也必须向CA服务器申请证书!具体步骤如下:
1:在客户端上,为需要访问此IIS站点的用户申请一张用户使用的“客户端身份验证证书”。方法同上
2:在独立证书颁发机构上批准此请求并再次到客户端上获得此证书并安装。方法同上
1:在客户端上,为需要访问此IIS站点的用户申请一张用户使用的“客户端身份验证证书”。方法同上
2:在独立证书颁发机构上批准此请求并再次到客户端上获得此证书并安装。方法同上
3:配置客户端信任颁发证书的CA服务器
1):访问独立证书颁发机构的证书申请站点,选择“下载一个 CA 证书,证书链或 CRL”?“下载CA证书”。
2):将获得的CA证书导入到客户端计算机的“受信任的根证书颁发机构”容器中,以使得客户端计算机信任您的独立证书颁发机构。
1):访问独立证书颁发机构的证书申请站点,选择“下载一个 CA 证书,证书链或 CRL”?“下载CA证书”。
2):将获得的CA证书导入到客户端计算机的“受信任的根证书颁发机构”容器中,以使得客户端计算机信任您的独立证书颁发机构。
![](https://i-blog.csdnimg.cn/blog_migrate/29692346603d414626faaf1f46698673.png)
4:访问网站,经测试,可以正常访问
![](https://i-blog.csdnimg.cn/blog_migrate/40ab4d728fd9f841e280ef07afae4e01.png)
至此,一个完整的使用标准CA服务器实现安全的SSL网站案例已经实现,完全满足实际的商业应用需求!
注:在客户端访问SSL网站所使用的站点名称一定要与IIS服务器在申请证书过程中的站点公共名称保持一致,才可能避免出现弹出”安全警报“窗口,提示”安全证书的名称无效或与站点名称不匹配“的信息。