我的消息已经被https服务器的证书加密(带有公钥)。 我是否应该将此消息发送到https服务器(我可以使用任何语言),而无需进一步加密。
实际案例如下: 1)在我的服务器上,我使用证书https(例如google)创建加密邮件 2)将此消息发送给朋友(例如通过电子邮件),以便他不能“读取”消息的内容 3)他应该将此消息(已加密)发送到谷歌,接收并阅读答案。
抱歉我的英文。 感谢所有
我可能很难解释:我有两个参数可以通过post方法(p1,p2)发送到https服务器:
String parms =“p1 = hello& p2 = world”; 此字符串已使用服务器https的证书的公钥加密,如下所示。
String encParms = encrpythWithCertificate (parms, "/tmp/localhost.localdomain.cer");
现在我必须将此字符串(encParms)发送到使用相同证书的https服务器。
所以我有这段代码:
HttpsURLConnection conn = .....
conn.setRequestProperty ("Content-Length", encParms.length ());
OutputStream outputStream = urlCon.getOutputStream ();
outputStream.write (encParms.toByteArray());
outputStream.close ();
如果我发送parms一切正常。如果我发送encParms不起作用。我想原因是encParms已经加密,然后是“第二次加密通过”,为服务器生成难以理解的消息。
我的问题是:如何发送邮件encParms以便https服务器正确接收邮件?
答案 0 :(得分:1)
HTTPS(确切地说,SSL层)提供传输级安全性并加密整个通道。它不关心被转移的内容。通常没有理由(在您的场景中)担心消息是否再次加密 - 双重加密不会显着影响传输速度。 SSL确实具有禁用加密的NULL密码套件,但正如所说的那样在您的情况下没有意义。