这是我在 stackoverflow.com 上的第一篇文章,所以如果我做错了什么,请告诉我。那么问题来了。
我有一台C#
服务器当前正在运行System.Net.Socket
类似于 Microsoft在此处提供的示例代码的 Sockets 。
我还有一个Objective-C
运行NSInputStream/NSOutputStream
绑定到CFReadStream/CFWriteStream
.
目前,只有通过XML Serialized Object
客户端和服务器发送的用户名/密码身份验证可以毫无问题地进行通信。
我现在遇到的问题是通信必须是安全的,并且与客户交谈SSL encryption
是可以接受的。但是,我认为他们不会仅仅接受“服务器证书”就足够了。所以我试图让 iPad 客户端使用“客户端证书”。我想启用真正的相互身份验证。
如果我无法实现相互身份验证,第三方VPN
软件可能是保护通信安全的更好解决方案。
我还没有完成转换,但是我找到了一些文章,这些文章给了我很好的例子,但是没有例子适合我在 iPad 上的客户端证书的情况。我找到的样本是:
Apple 开发者网站,展示了如何使用 SSL,但没有客户端证书
基本上,系统最终必须运行与具有管理证书能力的嵌入式TCP
通信。SSL
不确定它是否会有所不同,但由于这将适用于许多不同的客户,因此最好与SSL 3.0
and TLS
(任何版本)兼容。
由于我在过去 6 个月里才涉足Objective-C
并且对 比较熟悉C#
,因此我可能需要您用更简单的术语来解释您的答案。
编辑:
我更关心Objective-C
等式的一侧,因为我相当确定这C#
一侧会很简单。基本上,我需要有人解释如何在 in 上实施客户端证书TCP NSStream
,Objective-C
或者为我指明可能的解决方案或解决问题的方法的方向。
任何帮助将不胜感激。
克里斯