我正在尝试为我的asp.net网站创建客户端证书身份验证。
为了创建客户端证书,我需要首先创建一个证书颁发机构:
makecert.exe -r -n“CN=My Personal CA”-pe -sv MyPersonalCA.pvk -a sha1 -len 2048 -b 2013.01/01/2013 -e 01/01/2023 -cy authority MyPersonalCA.cer
然后,我必须将其导入到IIS7中,但由于它接受.pfx格式,因此我首先对其进行转换
pvk2pfx.exe -pvk MyPersonalCA.pvk -spc MyPersonalCA.cer -pfx MyPersonalCA.pfx
导入MyPersonalCA.pfx后,我尝试将https站点绑定添加到我的网站,并选择上面的作为SSL证书,但得到以下错误:
有什么建议吗?
发布于 2013-02-19 19:04:15
这一定是某种IIS错误,但我找到了解决方案。
1-从IIS导出MyPersonalCA.pfx。
2-将其转换为.pem:
openssl pkcs12 -in MyPersonalCA.pfx -out MyPersonalCA.pem -nodes
3-将其转换回.pfx
openssl pkcs12 -export -in MyPersonalCA.pem -inkey MyPersonalCA.pem -out MyPersonalCA.pfx
4-将其导入回IIS。
发布于 2014-09-16 02:54:53
我遇到了同样的问题,但以不同的方式修复了它。我相信我使用的帐户从我最初尝试设置证书的时间到我返回完成工作的时间都发生了变化,从而产生了问题。问题是什么,我不知道,但我怀疑它与来自当前用户的某种散列有关,并且在某些情况下是不一致的,因为用户被修改或重新创建,等等。
为了修复它,我从IIS和证书管理单元(用于当前用户和本地计算机)中抓取了有问题的证书的所有引用:
接下来,我将*.pfx文件导入到MMC中的证书管理单元中,将其放置在本地计算机\个人节点中:
从那时起,我能够返回到IIS并在服务器证书中找到它。最后,我转到我的站点,编辑绑定并选择正确的证书。它之所以有效,是因为用户在整个过程中都是一致的。
在另一个答案中提到的这一点上,您不应该将其标记为可导出,因为这是一个主要的安全问题。您实际上是在允许任何具有类似权限集的用户获取您的证书,并将其导入到其他任何地方。显然,这并不是最优的。
发布于 2013-10-18 22:09:49
安全警告:复选框真正的意思是证书可以被不应该能够读取的用户读取。例如,运行IIS辅助进程的用户。在生产中,请改用other answer。
也发生在我身上,并通过确保"Allow this certificate to be exported“在导入时检查来修复:
(感谢this post!)
https://stackoverflow.com/questions/14953132
复制相似问题