SSL(Security Socket Layer)的中文全称是“加密套接字协议层”,是由Netscape公司推出的一种安全通信协议,它位于HTTP协议层和TCP协议层之间,能够对信用卡和个人信息提供较强的保护。SSL在客户和服务器之间建立一条加密通道,确保所传输的数据不被非法窃取,SSL安全加密机制功能是依靠使用数字证书来实现的。
应用了SSL加密机制后,IIS服务器的数据通信过程如下:首先客户端与IIS服务器建立通信连接,接着IIS把数字证书与公用密钥发给客户端。然后使用这个公共密钥对客户端的会话密钥进行加密后,传递给IIS服务器,服务器端接收后用私人密钥进行解密,这时就在客户端和IIS服务器间创建了一条安全数据通道,只有被IIS服务器允许的客户才能与它进行通信。
1.1.1 配置网站SSL验证全过程
1.1.1.1 安装证书服务
1. 首先找一台Windows 2003 Server服务器,从“开始 → 设置 → 控制面板 → 添加/删除程序 → 添加/删除Windows组件”,进入“Windows组件向导”。 |
2. 选中“证书服务”,系统会提示“安装证书服务后,不能重命名计算机,并且计算机不能加入域或从域中删除,要继续吗?”,选择“是”(若要重命名计算机、加入域或从域中删除,要重新安装证书颁发机构),单击“下一步” 。 |
3. 在此后选择“独立根CA”、输入CA名称(假设为“myCA”),逐步完成安装。 |
注:企业根CA和独立根CA都是证书颁发体系中最受信任的证书颁发机构,可以独立地颁发证书。企业根CA需要Active Directory 支持,而独立根CA不需要。从属级的CA由于只能从另一证书颁发机构获取证书,所以一般不被选择。在Windows 2000 Server中,企业根CA使用 Active Directory 来确定申请人的身份,确定申请人是否具有申请他们所指定的证书类型的安全权限,并由此自动确定是否立即颁发证书或拒绝申请,这种策略设置不能被更改。如果选择此选项一定注意保护含有此服务的服务器,不能直接暴露在外。独立根CA可以选择在收到申请时自动颁发证书或将申请保持为搁置状态,由管理员验证证书申请者的真实性及合法性,决定是否颁发证书。我们可以根据需求选择合适的证书颁发类型。选好类型后,选择该页中的“高级”选项,进入下一步安装,填写CA的相关信息,如CA名称、单位、城市、电子邮件和有效期限等,再下一步进入高级选项页(如图2所示),此时可以选择用来生成密钥对的加密服务提供程序(CSP)、散列算和密钥长度,并可选择现有的密钥及相关证书等。选项的选择取决于对安全程度的要求、计算机的复杂运算能力、对响应时间的要求和系统管理证书的负载程度等。点击“下一步”按钮,选择证书数据库及日志的位置,确认后即可进行安装。
1.1.1.2 生成证书请求文本文件
1. 在你的Web服务器上,进入“控制面板→管理工具→Internet 信息服务(IIS)管理器”; |
2. 在IIS管理器窗口中展开“网站”目录,右键点击要使用SSL安全加密机制功能的网站,在弹出菜单中选择“属性”,然后切换到“目录安全性”标签页; |
3. 点击“服务器证书”按钮。在“IIS证书向导”窗口中选择“新建证书”选项,点击“下一步”; |
4. 选中“现在准备证书请求,但稍后发送”,接着在“名称”栏中为该证书起个名字,在“位长”下拉列表中选择“密钥的位长”,这里要注意,位长不能设置的过大,否则会影响通信质量; |
5. 接着设置证书的单位、部门、和地理信息,在站点“公用名称栏”中输入该网站的域名,然后指定证书请求文件的保存位置,这里将该证书请求文本文件保存在“d:/certreq.txt”。这样就完成了证书请求文件的生成。 |
6.
1.1.1.3 申请IIS网站证书
1. 打开IE,在地址栏中输入“http://[window 2003 server name]/CertSrv/default.asp”; |
2. 接着在“Microsoft 证书服务”欢迎窗口中点击“申请一个证书”链接; |
3. 然后在证书申请类型中点击“高级证书申请”链接,在高级证书申请窗口中点击“使用BASE64编码的CMC或PKCS#10文件提交….”链接; |
4. 接着将证书请求文件的内容复制到“保存的申请”输入框中,这里我们的证书请求文件内容保存在“d:/certreq.txt”,最后点击“提交”按钮. |
5.
1.1.1.4 颁发IIS网站证书
虽然完成了IIS网站证书的申请后,但这时它还处于挂起状态,需要颁发后才能生效。
1. 在“控制面板→管理工具”中,运行“证书颁发机构”程序; |
2. 在“证书颁发机构”左侧窗口中展开目录,选中“挂起的申请”目录; |
3. 在右侧窗口找到刚才申请的证书,鼠标右键点击该证书,选择“所有任务→颁发”; |
4. 接着点击 “颁发的证书”目录,打开刚刚颁发成功的证书,在 “证书”对话框中切换到“详细信息”标签页; |
5. 点击“复制到文件”按钮,弹出证书导出对话框,一路下一步,在“要导出的文件”栏中指定文件名,这里我们保存证书路径为“d:/osis.cer”,最后点击“完成”。 |
1.1.1.5 导入IIS网站证书
在IIS管理器的“目录安全性”标签页中,点击“服务器证书”按钮,这时弹出“挂起的证书请求”对话框,选择“处理挂起的请求并安装证书”选项,点击“下一步”后,指定好刚才导出的IIS网站证书文件的位置,接着指定SSL使用的端口,建议使用默认的“443”,最后点击“完成”按钮.
1.1.1.6 配置IIS服务器
完成了证书的导入后,IIS网站这时还没有启用SSL安全加密功能,需要对IIS服务器进行配置。
在“目录安全性”标签页,点击安全通信栏的“编辑”按钮,选中“要求安全通道(SSL)”和“要求128位加密”选项,最后点击“确定”按钮即可。
接着点击“身份验证和访问控制”栏的“编辑”按钮,在对话框中取消“启用匿名访问”和“集成Windows身份验证”选项,这里要选中“基本身份验证”选项,最后点击“确定”按钮。
这样网站就可以实现SSL验证访问了。
另外网站实现SSL验证后,ITS颁发的证书会自动被客户端下载并提示安装,但是安装后仍然不被信任,原因是根证书也需要被安装信任,所以需要自动帮用户注册根证书。
具体实现方法可以参考我的另外一篇BLOG:自动为客户端安装根证书