日期:2014-05-16  浏览次数:21753 次

openssl 生成的 客户端证书 无法使用
不知道大家遇没遇到过这样的问题,我按如下方法应用openssl,生成的的客户端证书安装后,浏览https://的网站时,弹出证书警告框后,点yes后,客户端证书列表为空,可是我明明安装过客户端证书,另外说一句,我用win2003的证书服务,有时也有这般情况,百思不得其解,请教各路高手赐教
HTML code

1.获取IIS证书请求:打开IIS,右键单击【默认网站】,在【目录安全性】选项卡中点击【服务器证书】按钮,【下一步】,【新建证书】,【现在准备证书请求--下一步】,输入【名称】,输入【单位】和【部门】,输入【公用名称】,选择【国家】并输入【省】和【市县】并【下一步】,【下一步】,【下一步】,【完成】,IIS的证书请求已经获取,就是C:\certreq.txt。这里请牢记输入的信息。


2.准备openssl工作环境:把openssl(编译后的版本)解压到e:\Security下,命名为openssl098e,在bin目录下建立目录demoCA,在demoCA下建立private和newcerts目录,并新建index.txt,如果没有serial文件,则到openssl网站上下载openssl的源文件,解压后,到apps\demoCA下,拷贝serial文件过来,两个目录两个文件都放到新建的demoCA下。


3.生成自签名根证书:openssl req -x509 -newkey rsa:1024 -keyout cakey.pem -out cacert.pem -days 3650 –config e:\Security\openssl098e\openssl.cnf
PEM pass phrase:根证书密码,当然很重要!
Country Name: CN //两个字母的国家代号 
State or Province Name: guang dong //省份名称 
Locality Name: guang zhou //城市名称 
Organization Name: sunrising //公司名称 
Organizational Unit Name: home //部门名称 
Common Name: besunny //你的姓名(要是生成服务器端的证书一定要输入域名或者ip地址) 
Email Address: Email地址
把cakey.pem 拷贝到\demoCA\private, 把cacert.pem拷贝到out32dll\demoCA

提醒:这时候,已经有cakey.pem:ca的私钥文件,cacert.pem:ca的自签名根证书,certreq.txt:IIS的证书请求文件,三个文件。现在将certreq.txt拷贝到bin目录下。


4.用CA证书cacert.pem为IIS请求certreq.txt签发证书:server.pem:
openssl ca -in certreq.txt -out server.pem -config e:\Security\openssl098e\openssl.cnf


5.把server.pem转换成x509格式:
openssl x509 -in server.pem -out server.cer


提醒:这时候,你又得到了两个文件,一个是server.pem,一个是server.cer。现在把bin下的server.cer复制到c:下。


7.将生成的证书server.cer导入到IIS:打开IIS,在【默认网站】上单击右键【属性】,在【目录安全性】选项卡中点击【服务器证书】按钮,【下一步】,选择【处理挂起的请求并安装证书】并【下一步】,正常情况下,您已经看到了文本框中就是c:\server.cer,如果不是,自己点【浏览】按钮去找并【下一步】,【下一步】,【完成】。回到【目录安全性】选项卡在【安全通信】栏目中单击【编辑】按钮,勾上【要求安全通道(SSL)】,勾上【要求128位加密】,选择【要求客户端证书】,点击【确定】按钮。


8.生成客户端证书:
openssl req -newkey rsa:1024 -keyout clikey.pem -out clireq.pem -days 365 -config e:\Security\openssl098e\openssl.cnf
证书信息自己填写,有些内容要与根证书一致,至于哪些,在第9个环节的时候执行的错误信息中看。


9.CA签发客户端证书:
openssl ca -in clireq.pem -out client.crt -config e:\Security\openssl098e\openssl.cnf


10.将客户端证书转换为pk12格式:
openssl pkcs12 -export -clcerts -in client.crt -inkey clikey.pem -out client.p12


11.安装信任的根证书:把bin\demoCA\cacert.pem改名为cacert.cer,双击cacert.cer文件,打开证书信息窗口,单击【安装证书】按钮,【下一步】,选择【将所有的证书放入下列存储区】,点击【浏览】按钮,选择【受信任的根证书颁发机构】并点击【确定】,【下一步】,【完成】,【是】,根证书安装完毕!


12.安装客户端证书:在bin目录下双击client.p12文件,【下一步】,【下一步】,输入客户端证书的密码并【下一步】,【下一步】,【完成】,【确定】。到此,客户端的证书也已经安完毕。




------解决方案--------------------
从你的问题来看,你装证书的位置不对,应该在IE中选"internet选项"->内容->证书 安装你的证书
------解决方案--------------------
我也碰到类似问题了,看看哪位兄弟能解决一下?
------解决方案--------------------
我同样的问题,希望高手指点,我用的是miniCA的东西,生成后安装,但是客户端证书找不到,