2012-05-29 20 views
1

我有一個Java應用程序運行在接收來自Web應用程序的Ajax請求的客戶端機器上。有些想要使用該服務的Web應用程序僅在https下提供服務。使本地主機的SSL感到高興

我現在接受並處理SSL請求的Java應用程序很好,但我必須先在瀏覽器中導航到服務器並接受證書。

什麼是最好的方法有一個'真正的證書'安裝在這個Java應用程序的一部分,在https://localhost:my_port上偵聽?

在windows上,似乎我可以讓安裝程序將自簽名證書添加到機器接受列表中。我也想過要獲得thisApp.myDomain.com的驗證證書,然後更改主機文件以將該地址指向127.0.0.1,但更改主機文件似乎是惡意的,我擔心被反病毒選中。

'主'應用程序是一個基於Web的系統。這個基於網絡的系統的一些用戶希望能夠在指定的計算機上打印到特殊的打印機。 Java應用程序將安裝在這些計算機上,然後,Web應用程序將Java應用程序發送到與應用程序交互的Java應用程序。最終用戶需要能夠通過簡單的一鍵式安裝程序來安裝此Java服務。 Web應用程序從執行打印的計算機上的瀏覽器運行,因此是localhost。

如前所述,Web應用程序需要通過https連接到Web服務器(當前位於亞馬遜)。除了Chrome之外,與本地主機打印服務器的連接不需要爲https,因爲它會抱怨不安全的內容,並且chrome是目前用戶使用最廣泛的瀏覽器。

任何想法或建議?

+0

[本地主機/ 127.0.0.1的第三方簽名SSL證書?](http:// stackoverflow。com/questions/6793174/third-party-signed-ssl-certificate-for-localhost-127-0-0-1) –

+0

更改用於測試目的的開發中的hosts文件是很常見的做法,沒有什麼可擔心的 – henryabra

+0

如何更改生產中的主機文件? –

回答

-1

我嘗試在客戶端計算機上安裝自我signet證書 - 但失敗。不記得是什麼問題。所以我關閉客戶端代碼中的證書驗證。

你可以閱讀關於它here

+0

這是瀏覽器在連接到我的Java應用程序時抱怨證書。我不認爲在Java應用程序中關閉驗證會對瀏覽器產生任何影響,是嗎? –

+0

如果它是瀏覽器 - 是的。這沒有幫助。這只是關於Java客戶端。只使用瀏覽器 - 購買可信證書並安裝到您的服務器上。 – alexey28

+0

正如問題所說,以及在哪裏出現困境,服務器是本地主機。 localhost不是合格的域名,因此不會獲得可信的證書。 –

2

如果是「真正的」證書,你的意思是由可信任的CA簽署的證書,那麼我認爲答案是你可能不能。我認爲一個可信的CA不會爲你發行一個。

我上面鏈接的答案表明您通過獲得CA證書來設置您自己的CA.其他選擇是127.0.0.1的自簽名證書,或者調整DNS解析(例如,通過客戶端機器的「主機」文件),以便具有有效證書的某個名稱解析爲客戶端計算機上的回送地址。


順便說一句 - 關閉證書驗證是不是要走的路。最好將自簽名證書添加到(例如)用戶瀏覽器的可信證書列表中。


如果我是你的情況,我想我會改變什麼,那就是需要HTTPS對127.0.0.1的請求。要麼不要求HTTPS,要麼將IP地址更改爲客戶端自己的IP地址。

+1

可以在安裝過程中以主動方式更改用戶主機文件嗎?或者我認爲這會發出紅旗? –

+0

@LeeQuarella - 我不知道。我想這取決於病毒檢查。你試過了嗎? –

+0

@LeeQuarella如果一個程序在安裝過程中試圖這樣做,我會覺得合適。 – Deestan