Java 加密已安装应用程序和web服务的方法

Java 加密已安装应用程序和web服务的方法,java,http,ssl,encryption,https,Java,Http,Ssl,Encryption,Https,我正在寻找有关如何加密命令行应用程序的建议。 我设想一个与web服务交互的命令行应用程序。我希望应用程序和web服务之间的消息被加密 我知道SSL证书是使用web服务进行加密的常用方法,但是如果我有一个应用程序,许多人在他们机器的命令行上使用,那么每个人都必须有SSL证书 还有其他加密通信的方法吗 注意:我正在构建web服务和命令行应用程序,以便在需要时匹配加密 谢谢 我想加密传输的数据,即http头和正文 带有服务器证书的HTTPS(在您的情况下不需要客户端证书)可以做到这一点。客户端和服务器

我正在寻找有关如何加密命令行应用程序的建议。 我设想一个与web服务交互的命令行应用程序。我希望应用程序和web服务之间的消息被加密

我知道SSL证书是使用web服务进行加密的常用方法,但是如果我有一个应用程序,许多人在他们机器的命令行上使用,那么每个人都必须有SSL证书

还有其他加密通信的方法吗

注意:我正在构建web服务和命令行应用程序,以便在需要时匹配加密

谢谢


我想加密传输的数据,即http头和正文

带有服务器证书的HTTPS(在您的情况下不需要客户端证书)可以做到这一点。客户端和服务器之间没有人能够读取或修改传输数据的内容(url、标题和正文)

服务器将向您的客户端提供他的证书。这样,客户机就可以确认服务器的身份。然后他们可以安全地交换信息

如果需要向服务器标识客户端,可以使用客户端证书(但这不是唯一的方法)


请注意,由于DNS和SNI,网络上的某些人仍然可以知道您的客户端连接到哪个域。

“[…]每个域都必须具有SSL证书。”-那么?有什么问题吗?你想防范什么?是否要对用户隐藏传输的数据?如果是这样的话,那么这真的是不可能的,因为他们可以反编译和操作您的应用程序。如果客户端必须有一个证书,那么它对于每个客户端是否都必须是唯一的?对于单个分布式应用程序,我该怎么做?“对于每个客户端,它不一定是唯一的吗?”-如果应用程序的每个实例与同一服务器(基础设施)通信,则它们应该具有相同的服务器证书。我不明白你为什么需要多个证书。已经有几个第三方JAR了,你可以用谷歌搜索它。并根据您的方便使用。。谢谢抱歉,客户端必须生成私钥才能与服务器交互?我认为它们不可能都有相同的公钥和私钥。我对这类事情很在行,谢谢你的帮助。网址当然是可见的,只是路径和查询不可见。@zaph你是什么意思?用HTTPS如果我只访问我的浏览器,网站知道我想访问/分泌。HTML:路径是加密的。考虑<代码>https://example.com/secret.html?password=mypassword,地址可用(未加密),路径和采石场已加密。@zaph是的,在您的示例中,“example.com/secret/path?password=password”,example.com以明文形式传输(未加密,因此可供攻击者使用),带有查询“”password=password”的路径“/secret/path”被加密传输。