2017-09-19 73 views
0

嗯,我是Spring Boot Security的新手,我有一個問題。我有簡單的設置,以在服務器上啓用HTTPS,具體如下:如何在客戶端使用Spring Boot Security禁用證書驗證

server:    port: 8443    ssl:      key-store-type: PKCS12      key-store: classpath: keystore.p12      key-store-password: mypass      key-alias: testkey

到目前爲止好。問題在於訪問該服務器端點的客戶端(例如簡單的捲曲)會接收到證書驗證失敗。從我所能讀到的信息來看,https通信是通過TSL(或SSL)進行的,它要求用戶驗證服務器頒發的證書以啓用安全通道。

我不希望所有客戶端都必須隨身攜帶證書才能訪問端點,因爲它是我正在開發的Rest API。

的API的網址有些啓用HTTPS,但不需要證書:

我應該遵循什麼方式才能保持啓用加密,即保持https,但也不需要客戶端證書驗證? PS:通過瀏覽器我可以訪問我的服務並獲得答案,但是java客戶端,python或curl不起作用。

編輯
我不想設置客戶端上的選項,以使該請求沒有安全感,我想保持HTTPS,但並沒有要求客戶用他隨身攜帶的證書。也許我甚至無法做到這一點,所以我問,因爲我絕對是一個初學者。如果沒有辦法做到這一點,我就等着朝那個方向回答,如果可能的話更加完整。

+0

您已經找到解決方案,您必須配置客戶端。如果你想了解更多信息,請編輯你的問題並說出你使用的客戶端。對於cURL,請參閱https://unix.stackexchange.com/questions/60750/does-curl-have-a-no-check-certificate-option-like-wget – dur

+0

男人,我不想在選項上設置客戶端爲了使請求不安全,我想保留https,但並不要求客戶端隨身攜帶證書。也許我甚至無法做到這一點,所以我問。 –

+0

您的問題是關於證書驗證,但您的評論是關於攜帶證書。你有什麼問題?正如您已經發現的那樣,您可以禁用驗證。你爲什麼認爲客戶攜帶證書?如果您不使用其中一個緩存的根證書,則客戶端不會攜帶證書。 – dur

回答

0

這取決於每個客戶。例如,您通過忽略瀏覽器中的安全警告來執行此操作。對於捲曲,請使用-k--insecure以使用wget使用--no-check-certificate,您必須研究如何在您使用的任何客戶端中忽略ssl。無法從服務器控制此功能,因爲這會破壞SSL/TLS的整個用途。

+0

重複我對@dur所說的話:人,我不想讓客戶端設置使請求不安全的選項,我想保留https,但不要求客戶端攜帶證書。也許我甚至無法做到這一點,所以我問。 如果沒有辦法做到這一點,我會在那個方向等待一個答案,如果可能的話會更完整。 –

+0

您誤解了TLS是什麼以及這些選項的作用。如果您沒有向可信任的權威機構註冊您的證書,則客戶無法知道其是否安全。這些選項仍然會加密傳輸,但收件人未驗證。 – pucky124