我正在研究一些应该与Android应用程序一起使用的基于JSON的Web服务。
我想加密客户端(android)和服务器(数据中心的虚拟服务器)之间的数据传输。
我不必确保我的服务器是我的服务器,只需要数据加密。
我不知道如何使用HTTPS。
我只是将我的PHP文件放在private_html
并使用https://example.com
网址吗?
答案 0 :(得分:2)
要使用HTTPS,您不必在编写Web服务时执行任何操作 - 这些都在您的托管中。这是您可以遵循的步骤。您的托管(IIS,Apache,AWS / Azure等)中的具体说明有所不同,但您可以针对您决定的任何主机和应用程序框架详细说明如何完成这些步骤。
购买SSL证书(有许多不同的供应商,但证书价格在75美元至200美元之间),具体取决于您所需的供应商,声誉和安全级别。
从您要托管的服务器生成证书签名请求(CSR)。
将CSR上传至SSL供应商,SSL供应商将验证并提供供您使用的证书。
将SSL证书导入应用程序服务器,并将站点配置为使用证书。例如,如果您正在托管Microsoft IIS,则需要导入SSL证书,然后将443上的HTTPS绑定添加到托管Web服务的特定网站。
另一个安全点。由于您正在部署SSL,因此您不必进行任何应用程序级加密(假设您没有将敏感信息放在查询字符串中 - 如果您认为需要,请使用POST)。您可能希望实施一些安全措施来限制对Web服务的访问,以便只有您的应用才能访问它。最佳做法是某种程度的OAuth,但至少在请求标题中的某些类型的预共享密钥比没有更好。
以下是一些其他网站以获取更多信息:
答案 1 :(得分:1)
如果您不想支付证书费用,可以使用自己的CA使用证书signet,并使用HTTPClient和密钥库将根证书添加到您的应用程序中
这里有一些指南
http://datacenteroverlords.com/2012/03/01/creating-your-own-ssl-certificate-authority/
http://developer.android.com/reference/org/apache/http/client/HttpClient.html
KeyStore, HttpClient, and HTTPS: Can someone explain this code to me?
http://blog.antoine.li/2010/10/22/android-trusting-ssl-certificates/
答案 2 :(得分:0)
您可以限制用户在apache,IIS或其他任何使用的地方使用JUST和HTTPS。如果您的客户端连接到您的服务器,他的通信可能会被加密,因为他已经在使用HTTPS。而对于HTTPS中的响应,据我所知,你实际上无法发送HTTPS响应,除非另一方也不是网站(例如,如果你有你的网站,你可以向Google发送这样的回复)。您应该可以发送http状态代码(OK,NotModified,PageNotFound,...)等数据,或者如果您需要更多内容,或者需要更多内容,那么您仍然可以使用JSON并对其进行编码,使用一些编码算法,或使用二进制JSON格式。
答案 3 :(得分:0)
检查您的托管公司是否提供免费的公共共享https地址。他们中的大多数都这样做。
如果您想了解如何正确操作,请按照this thread
警告:请勿坚持使用以下解决方案进行生产。
如果您计划使用没有证书的https端点,则必须确保禁用对等验证,请检查this answer