2013-01-25 25 views
0

我有一條已經由https服務器的證書(使用其公鑰)加密的郵件。 我是否應該將此消息發送到https服務器(我對任何語言都適用),而不進行進一步加密。向https服務器發送SSL加密郵件

的實際情況是這樣的: 1)我的服務器上創建與證書的HTTPS(如谷歌) 2)發送此信息給朋友加密的消息(如通過電子郵件),使他不能「讀「消息的內容 3)他應該將此消息(已加密)發送給谷歌,接收並閱讀答案。

對不起,我的英文。 感謝所有


我可能不好解釋說:我有兩個參數與POST方法(P1,P2)發送到HTTPS服務器:

字符串PARMS = 「P1 =你好& P2 =世界」 ; 此字符串已用服務器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

你的問題沒有意義。你可能有一條加密的消息,但是你沒有'SSL加密的消息',並且如果你有一條被服務器的公鑰加密的消息,那麼只有服務器可以解密它。谷歌當然不能,除非它首先產生了這個信息,這在你的問題中沒有說明。你的程序有些嚴重錯誤。 – EJP

回答

1

HTTPS(準確地說,SSL層)提供傳輸級別的安全性並加密整個通道。它不關心正在傳輸的內容。通常沒有任何理由(在您的情況下)擔心消息是否再次被加密 - 雙重加密不會顯着影響傳輸速度。 SSL確實具有禁用加密的NULL密碼套件,但正如所說的,這對您的情況沒有任何意義。