Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于Android上SSL的几个问题_Android_Ssl - Fatal编程技术网

关于Android上SSL的几个问题

关于Android上SSL的几个问题,android,ssl,Android,Ssl,我写的应用程序将需要发送非常机密的数据到HTTP服务器。由于这些数据的机密性,我需要尽可能地保护连接。我决定通过HTTP POST使用SSL。我的问题是,我对SSL安全非常陌生,我对在Android上创建SSL应用程序的过程有些怀疑。有人能告诉我我是否做得很好吗 要创建我的应用程序,请执行以下步骤: 我使用OpenSSL生成SSL密钥和证书,并遵循以下步骤 我需要将.key文件交给编写HTTP服务器的同事,以便他可以配置apache并使用此.key文件验证发送者的身份,对吗 我按照以下步骤创建.

我写的应用程序将需要发送非常机密的数据到HTTP服务器。由于这些数据的机密性,我需要尽可能地保护连接。我决定通过HTTP POST使用SSL。我的问题是,我对SSL安全非常陌生,我对在Android上创建SSL应用程序的过程有些怀疑。有人能告诉我我是否做得很好吗

要创建我的应用程序,请执行以下步骤:

  • 我使用OpenSSL生成SSL密钥和证书,并遵循以下步骤 我需要将.key文件交给编写HTTP服务器的同事,以便他可以配置apache并使用此.key文件验证发送者的身份,对吗

  • 我按照以下步骤创建.bks密钥库 然后我使用相同的教程阅读了这个密钥库,然后我可以连接到服务器。然后服务器可以使用.key文件验证我的身份,对吗

  • 这就是在我的应用程序和HTTP服务器之间创建安全连接所需的全部内容吗?这是否能正常工作并确保安全

  • 错。您需要生成密钥对:将私钥保持为私钥,将公钥交给您的配偶

  • 你似乎没有读过你引用的教程。它正确地说,您可以使用keytool完成整个过程。根本不需要将OpenSSL引入其中


  • 然而,教程中关于Apache更快的说法是毫无意义的。它和HttpsURLConnection类都在引擎盖下使用JSSE,它在引擎盖下使用java.net.Socket,其速度首先是网络绑定的。如果速度快一点,那真是奇迹。或者更慢。使用它可能还有其他原因(我从来没有),但这不是其中之一。更快的方法是设置几个系统属性并使用内置的东西,而不是编写几码代码。

    我猜OP的朋友正在和他一起做这个项目,所以在这种情况下,他需要将私钥放在服务器上。@you786当然不需要。他可能需要将包含公钥的证书导出到服务器,以便服务器接受它,但他的私钥永远不应该离开他的手。否则这不是私人的,不是吗?