回答
儘管SSL/TLS doesn't strictly require certificates,HTTPS期望證書,因爲RFC 2818(特別是第3.1節)明確提到了X.509證書。
你可以在this answer on ServerFault找到更多的細節,以一個非常類似的問題。
無論您在沒有證書的情況下做什麼都將超出RFC 2818的範圍,但它可能仍然有效(並且有意義)。但是,其他實現可能會有所不同。 如果您選擇不使用證書,您仍然需要一種方法來驗證服務器的身份以確保通信的安全性。
編輯:
的Oracle provider for JSSE不支持PSK密碼suties(或OpenPGP的證書)。離你最近的共享密鑰是Kerberos密碼套件。
不,你不能。您需要通過HTTPS進行連接的證書。您可以爲自己的目的使用自簽名證書。
SSL需要證書,但您可以創建這樣的自簽名證書:
keytool -genkey -keyalg RSA -alias selfsigned -keystore keystore.jks -storepass password -validity 360 -keysize 2048
此證書將被存儲在keystore.jks和有效期360天。
根據您的HTTP服務器實現,你通常是通過提供keystoreFile
說法,和keystorePass
設置從Apache Tomcat上的HTTP連接器所採取的密碼(屬性名稱指向密鑰庫,但他們在其他HTTP服務器的類似。
是的,您可以在SSL/TLS中使用多種不同的身份驗證方法,包括對稱密鑰(PSK密碼套件)和用戶名/密碼組合(SRP密碼套件)。 out SecureBlackbox產品(包括其Java版本)允許您在SSL/TLS通道的客戶端和服務器端都使用上述機制,這也適用於提供的HTTPS客戶端和服務器組件。
只看以下問題接受的答案:
How to ignore SSL certificate errors in Apache HttpClient 4.0
你只需要創建一個基本不檢查任何一個的TrustManager,只是相信一切。雖然我可以看到爲什麼這在開發過程中很有用,但這確實會否定SSL的目的。 TrustManager可以避免Man In The Middle攻擊,第三方作爲服務器來攔截和操縱數據等,因此,如果您不驗證服務器證書,任何人都可以提供「無效」證書!
- 1. SSL證書沒有通過
- 2. 通過HTTPS/SSL的Java客戶端證書
- 3. SSL證書與https
- 4. java https沒有驗證證書
- 5. 沒有SSL證書?
- 6. 沒有SSL證書
- 7. 通過https的Tibco SOAP請求 - SSL證書驗證問題
- 8. 如何使HTTPS SOAP請求繞過Java中的SSL證書
- 9. 通過SSL,證書等HttpWebRequest
- 10. HTTPS SSL證書WebView和CSS
- 11. SSL證書:http vs https
- 12. Java SSL證書
- 13. 沒有有效的SSL證書,HTTPS連接是否安全?
- 14. 具有CA證書問題的HTTPS SSL自簽名證書
- 15. 沒有ssl證書,google chrome
- 16. 讓Java接受通過HTTPS的所有證書
- 17. 如何將HTTPS重定向到沒有SSL的HTTP證書
- 18. 如何使用證書與SSL通過https://
- 19. SOAP客戶端通過HTTPS使用SSL證書兩側
- 20. 哪個SSL證書通過Android認證?
- 21. 如何驗證.NET中HTTPS/SSL證書的有效性?
- 22. IIS中的'Require SSL'證書如何與HTTPS證書綁定?
- 23. Java和SSL證書
- 24. NSMutableURLRequest檢查Https SSL證書驗證
- 25. java - 忽略過期的ssl證書
- 26. 將HTTPS重定向到HTTP(沒有SSL證書)
- 27. HTTPS(SSL)請求從密鑰庫讀取證書沒有庫
- 28. 阿帕奇HTTPS代理沒有SSL證書
- 29. 通過TCP/IP連接的SSL證書
- 30. HTTPS的NodeJS上的SSL證書失效
還需要注意的是,在TLS中引入了這些備選方法之前很久就已經推出了RFC 2818。因此,RFC明確提到了證書,因爲那時沒有其他可用的證書。此外,服務器身份可以通過知道共享密鑰(在PSK套件的情況下)或通過信任OpenPGP密鑰(當使用OpenPGP進行身份驗證時)來確認。 –
@ EugeneMayevski'EldoSCorp,出於好奇,* SecureBlackbox *作爲JSSE API中的附加提供者集成(從而使這些密碼套件可供傳統Java應用程序使用),還是需要完全不同的API? – Bruno
是的,它適用於基本密碼學,但對於SSL和其他高級別的東西,提供了不同的API,使用更簡單,更靈活。 –