![](/img/trans.png)
[英]How to get SSL certificate (X.509) relevant to HTTPS request in REST controller running under Spring boot?
[英]How do you get a users X.509 certificate over an HTTP request - (without SSL)
我們想使用LDAP中的X.509證書和組對用戶進行身份驗證/授權。
使用Tomcat 5.5,我們可以通過在SSL上獲得X.509證書,然后切換回http並繼續在請求中使用userPrincipal來做到這一點。 切換回Http之后,移至Tomcat 6和7的userPrincipal不再可用。
在這個問題中, 我可以不使用HTTPS連接就使用SSL證書嗎? 據說您可以在沒有SSL的情況下請求X.509證書。 我正在嘗試確認是否有可能,是否有人知道如何做到這一點。
讓我們考慮一下。
用戶身份驗證通常是這樣的:
身份驗證后返回未加密的HTTP是一個壞主意。 每個人都可以在網上看到會話令牌。 他們可以竊取它並使用它來擺姿勢作為用戶。 請參閱FBController或在“會話劫持”中搜索示例。
使用未加密的會話來傳遞用戶身份證明同樣是一個壞主意。 每個人都可以重播此視頻並擺出用戶名。 無論您使用X.509證書還是用戶名/密碼:都是一樣的。
如果確實需要,則可以使用Javascript實現自己的偽HTTPS。 例如,雅虎使用JavaScript在通過網絡發送用戶密碼之前先對其添加鹽分的SHA1。 您可以使用Javascript通過X.509的私鑰對隨機數進行簽名,也可以通過公共證書進行發送。 請注意,使用此方法時您仍然可以進行會話劫持,因此這只是一種錯誤的安全感!
更好的方法是僅使用標准HTTPS。 完整的連接已加密,這意味着通過用戶證明,會話劫持甚至查看用戶請求的信息都不會出現機密性問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.