网络安全通讯(3)—-相信你的客户

作者:yinwm
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明。

在前两篇文章中
网络安全通讯(1)—-给你的Webserver启用SSL
网络安全通讯(2)—-让别人相信你的服务器
我们探讨了如何让你的客户相信你的服务器,这篇文章我们探讨一下你如何去相信你的客户。

在很多场景下,我们是需要关心客户的身份的,一个很安全的做法就是给你的客户发放一个签名的证书,让你的客户拿着证书来,这时候你验证了证书,你也就相信了你的客户。我们可以使用Apache提供的客户端验证(Client Certificate)功能。

  1. 生成客户端的私钥和CSR文件
    openssl genrsa -out client.key 1024
    openssl req -new -key client.key -out client.csr
  2. 用前面我们自己的CA签发客户的证书
    openssl x509 -req -days 360 -in client.csr -CA ca.crt -CAkey ca.key -CAserial ca.srl -out client.crt
  3. 此时客户端的证书已经制作完毕(和制作Server的一样),但是我们的浏览器需要pkcs12格式的文件,所以我们需要签一个pkcs12格式的文件
    openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12 -name your_certificate_client_name
    这里需要你的client的CSR文件设置的密码,还有your_certificate_client_name替换成你client的名字
  4. 打开Apache需要客户验证的设置
    SSLVerifyClient require
    SSLVerifyDepth  1
    SSLCACertificateFile “/path_to/ca.crt”
  5. 重新启动apache,尝试一下访问,此时访问并不成功Firefox会包一个-12227的错误,IE干脆显示不出来,说明客户端验证没有通过
  6. 把生成的客户端pkcs12文件导入到浏览器,
    Firefox Tools->Options->Advanced->Encryption->View Certificates->Your Certificates->Import
    IE Tools->Internet Options->Content->Certificates->Personal->Import
  7. 再次访问服务器,It works.

此时你的客户端(也就是浏览器)可以通过服务器的验证了。你也可以相信你的客户了。

Mar 3rd, 2008 | Posted in 安全
Tags: , ,
No comments yet.

Leave a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Powered by WP Hashcash