2013-05-29 77 views
2

我正在使用Windows 8应用程序,因为它在运行时生成,所以无法打包证书。可以使用动态生成的证书吗?如果可以的话,我可以在Websocket/StreamSocket级别使用它吗?动态生成的ssl连接证书

任何参考示例代码将是非常有益的(优选C++)

+1

您是使用它进行客户端身份验证还是...? –

+0

是的,我需要它来进行客户端身份验证。 – sgowd

+1

在运行时生成PKI证书实际上没有安全意义。谁会信任他们?他们为什么要这样? PKI证书应该可靠地识别一个独特的实体。在运行时生成违反。 – EJP

回答

0

RSA等的公开密钥密码术方法通常是安全的,但是它们依赖于公共密钥的有效性。因此,有许多证书颁发机构发布列表公钥http://en.wikipedia.org/wiki/Certificate_authority。当他们这样做时,他们“证明”该关键确实属于自称是所有者的实体。在运行时发布密钥没什么意义,因为无法验证密钥来自此人。

+0

证书未由CA签名。它由客户签署以进行客户端认证。客户有我们正在运行的软件来签署它。 – sgowd

0

我在回答我自己的问题。 Windows 8 metro api不支持csr中的非对称密钥。请参考此处:http://msdn.microsoft.com/en-us/library/windows/apps/hh464944.aspx

除非他们进行更改或为地铁提供openssl版本,否则我们无法继续。

更新:也无法在证书交换期间检索服务器证书的公钥。根据微软员工的最新更新(2012年5月)http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/bbffe488-fc74-4c8b-bed1-adf8fe162449/,这不是支持的功能。