2016-03-21 214 views
1

我想通過https託管REST API。 REST Web服務可能會使用spring框架以java編寫。通過https訪問REST API

這些Web服務將被Java客戶端(而不是Web瀏覽器)訪問,可能使用org.apache.http庫。

我沒有清楚地瞭解使用SSL證書的情況。 我的問題是 -

  1. 通過「https」託管REST Web服務將需要什麼配置?
  2. 客戶端需要什麼配置才能訪問這些「https」URI?
  3. 我是否需要爲REST服務器購買受信任的SSL證書或打開java keygen才能做到這一點?
  4. 我是否還需要REST客戶端上的相同/不同的證書副本?
+0

請參閱本主題http://www.maximporges.com/2009/11/18/configuring-tomcat-ssl-clientserver-authentication/。它非常實用,但它顯示瞭如何生成客戶端和服務器證書並配置tomcat。 –

+0

@Evgeni鑑於鏈接是非常有益的..謝謝! – Mishty

回答

1
  1. 沒有特別的配置,你只需要https激活。

  2. 沒有特別的配置,你只需要小心使用檢查證書的庫。

  3. 如果您編寫客戶端,您可以使用自簽名客戶端,並自定義客戶端以檢查它是否是您的證書。如果有人可以寫一個客戶,最好有一個公開信任的證書。警告:免費讓我們加密證書不被Java信任!

  4. 爲什麼你想要在你的客戶端的證書?

端注:如果您的API是公開訪問,我強烈建議你不要重定向HTTP到HTTPS反而使得HTTP系統回答錯誤。如果您不這樣做,那麼錯誤地使用http的開發人員將不會看到錯誤,並且會造成安全風險。

+0

對不起,但仍然不清楚第四點...我將自己編寫REST服務器以及REST客戶端。我使用https而不是http的基本思想是爲了安全目的發送和接收加密數據。 – Mishty

+0

@Mishty服務器使用證書對自己進行身份驗證,客戶端驗證該證書。 (它存在一種模式,客戶可以使用另一證書對自己進行身份驗證,但我認爲這不是您要查找的模式) – Tom