擅长:python、mysql、java
<p>你在处理坏消息。SSL绝对可以对客户端进行身份验证,但这并不是针对SSL的大部分内容所做的事情,因为协议通常用于保护电子商务站点,在这些站点中,服务器的身份验证很重要,但使用客户端进行身份验证并不重要和/或不可行。您要做的是使用相互验证的SSL,这样您的服务器将只接受来自您的应用程序的传入连接,并且您的应用程序将只与您的服务器通信。</p>
<p>这是高级方法。创建自签名服务器SSL证书并部署到web服务器上。如果您使用的是Android,那么可以使用Android SDK中包含的keytool来实现这一目的;如果您使用的是iOS这样的另一个应用程序平台,那么也可以使用类似的工具。然后创建一个自签名的客户机,并将其作为资源部署到应用程序中包含的自定义密钥库中(keytool也将生成此密钥库)。将服务器配置为需要客户端SSL身份验证,并且只接受生成的客户端证书。将客户端配置为使用该客户端证书来标识自身,并且只接受在服务器上安装的用于该部分的一个服务器端证书。</p>
<p>如果应用程序以外的其他人/事物尝试连接到您的服务器,则不会创建SSL连接,因为服务器将拒绝不显示您已包含在应用程序中的客户端证书的传入SSL连接。</p>
<p>一步一步来回答这个问题要比这里要长得多。我建议分阶段这样做,因为web上有关于如何在Android和iOS中处理自签名SSL证书的资源,包括服务器端和客户端。我的书<a href="http://shop.oreilly.com/product/0636920022596.do" rel="noreferrer">Application Security for the Android Platform</a>中也有一个完整的介绍,由O'Reilly出版。</p>