有没有这方面的资料,网上大部分是原理,还有生成文件的,
现在我生成.cer文件和.pfx文件,想要通过文件做验证处理,不知道有没有做过的朋友分享分享经验.
虽然有人回答,但是没多少用处,感觉跟没回答似的
非常感谢你的回答,但是貌似你没有理解我的问题
@bird man: 那你就把问题描述准确点。
@Launcher: 证书我已经生成了,我想要使用这2个证书实现一个验证(匹配)的功能,好比我现在生成了a.cer文件和a.pfx文件,现在我找个其他的b.pfx文件,在验证的时候,a.pfx是可以通过的,b.pfx是无法验证通过的
@bird man: 我能猜出你是什么意思,等你理解了后你再回头看你写的话,你都觉得很好笑。
其实你是生成了一个包含公钥和私钥的数字证书文件 a.pfx,然后将 a.pfx 中的公钥导出为 a.cer 文件,现在你有一个 b.pfx 数字证书文件,你想知道 b.pfx 文件中的私钥同 a.cer 文件中的公钥是匹配的。
解决这个问题的关键就是,你得明白 RSA 算法。明白后,解决也很简单,使用 a.cer 的公钥对字符串“bird man”加密,然后用 b.pfx 的私钥解密,解密成功就是你所谓的“验证通过”。
@Launcher: 因为我刚刚接触这个证书,生成方式确实史你说的那样,之前公司有个项目是我下面说的情况我对这个有点敢兴趣,看了之后我发现他们并没有实现验证,所以想自己了解学习下,
现在是想实现一个sso单点登录,并且使用这个证书去验证,因为我对证书这当方面接触不多,可能我本身的思路就有问题,希望能讲解下,谢谢
@bird man: 你用什么开发语言?
@Launcher: 非常感谢你还来回复,我用C#写的,我网上查了好多资料,都是生成证书文件的.或者只是解密的单个文件的
@bird man: 一定要使用证书吗?
@Launcher: 也不是说一定要使用证书,只是我个人的一种偏执吧,既然遇到了我就想深入了解下,以防下次自己做的时候会遇到.
因为在创建证书的时候2者是关联的,那么就应该是可以使用这2个来实现验证的,如果说按照网上的直接根据pfx文件和设置的密码去判断的话,那么又何必要生成证书呢,可能也是我个人对证书这方面的不理解吧
@bird man: 你做过用户身份认证方面的开发吗?
@Launcher: 不知道你说的是哪一类的认证
@bird man: 那你跟我说说你说的是哪类认证?
@Launcher: windows,form,和域
@bird man: 你说的是 Forms Authenticate 和 NTLM 吗?
@Launcher: 这个和我问的问题有什么潜在的关联嘛?
@bird man: 有,我想知道你懂多少,我才能猜出你为什么要在“证书验证”上纠结,从而弄明白你究竟想做什么,然后才能给你解答问题。
@Launcher: 你也说了验证有好多,为什么一定要用证书,这么说吧,其实也可以算是钻牛角尖,我就是想了解下这个证书如何使用的,以及如何用于验证,而且我并不是想用在用户验证方面,如果说证书是无法实现我说的那种验证那我会放弃,直到下次遇到相关的资料再研究,就好比我之前遇到一个问题,如何判断2个矩形是相交的,虽然从几何学上面是可以使用坐标来判断出来的,但是我就想知道如何用矩阵来实现,因为我认为矩阵更加方便和简单
@bird man: 可以用矩阵判断,大学《线性代数》上有,所以你不用想知道,只要学习就行了。
请问你说的是哪种验证?能否描述清楚点?既然你在思考矩阵判断矩形的问题,我想你的逻辑应该是有的,因此你描述时请说清楚,输入、判定条件、输出。
@Launcher: 不好意思刚刚键盘卡了
@Launcher: 现在想做SSO,一个作为SSO的登录,其他系统作为接入系统,想要接入系统只需要配置一下,引入dll就可以了,这些功能已经实现了,
但是问题是,只要有这个dll和会配置就可以接入了,所以有那个数字证书来做验证去除无效的接入系统,但是我看到SSO的整体功能是我写的,但是那个数字证书验证的不是我写的,我看了代码发现他只是加载了pfx文件初始化的时候使用密码验证的,没有其他的和服务端的cer文件做验证,虽然这不服不算我负责的,但是我就是想知道应该如何去做,或者说是无法用这个证书做
@bird man: 请问你需要“和服务端的cer文件做验证”是为了什么?
@Launcher: 好比现在你允许3个系统接入,但是别人有了dll而且会配置,可以直接拿过去接入了,虽然是可以在SSO接入端做判断的,但是我就是想尝试下用证书来实现
@bird man: 首先明白一点,你的 .pfx 证书(准确的说是私钥)不能交给那 3 个允许接入的系统,这个你能明白吗?
@Launcher: 能不能提供证书这方面的资料我再看看吧,我查到的资料都寥寥无几,谢谢了
@bird man: 你知道你学习的方向都搞错了吗?你需要学习的知识是“信息安全”,而证书只是其中的一个组件。我还是推荐你了解下 PKI :https://en.wikipedia.org/wiki/Public_key_infrastructure。这里面会告诉你证书是如何被应用的,以及能够保证的安全级别。
调用证书方法,你看下面链接里是不是你要的:
http://www.cnblogs.com/cookiebin/p/4688608.html
objRequest.Method = "POST"; objRequest.ContentLength = buffer.Length; objRequest.ContentType = "text/xml";//提交xml objRequest.ClientCertificates.Add(cert); //http请求内加入证书
非常感谢你的回复,但是你提供的页面里面的验证其实是单方面的验证,也可能是我自己的理解不对吧,如果其他人使用自己生产的证书那岂不是也能验证过了,网上也很少有这方面的资料
@bird man: 证书需要先在服务器上安装,有密码保护的,就算别人拿到你证书,也没用……
楼主现在搞清楚了吗,我这边现在也有个双向认证的问题