我撰寫了一個使用 spring boot 開發的 restful API 專案,我正在使用嵌入式 tomcat 并在 linux 服務器上運行一個 jar。
API 位于:
https://api.arevogroup.com:8089/api/regions
我可以在給定的螢屏截圖中看到經過驗證且正確的 SSL。 
但是當我呼叫這些 api 時,我在郵遞員中遇到了這個例外。

這些 API 由基于 Xamrin 的應用程式使用,該應用程式在使用 iPhone 使用時似乎運行良好,但在通過 android 訪問 API 時會出現相同的例外。
我想,我生成 ssl 證書的方式有一些問題。
我使用了 pfx 檔案,屬性檔案中的 SSL 配置如下所示:
###SSL Key Info
security.require-ssl=true
server.ssl.key-store-password=PASSWORD
server.ssl.key-store=classpath:ssl_pfx.pfx
server.ssl.key-store-type=PKCS12
- 我有 2 個問題,如果禁用 ssl 驗證,通信是否仍會被加密?(中間人攻擊仍然可能,但資訊仍將被加密,對嗎?)。
- 如果沒有,我該如何解決這個問題?
uj5u.com熱心網友回復:
您無法禁用服務器證書的驗證。任何瀏覽器都不允許您這樣做,除非在特殊情況下(用戶必須確認例外情況)。如果客戶端禁用驗證,則通信將被加密(即不可能進行被動攻擊)。
您看到的錯誤是由服務器配置錯誤引起的。您的證書鏈僅包含您的服務器的證書,而缺少中間證書CN=Go Daddy Secure Certificate Authority - G2。您需要從Go Daddy下載它(它是名為 的那個gdig2.crt.pem)并將其添加到您的密鑰庫中。
請參閱此問題以了解如何執行此操作。
某些瀏覽器會快取中間證書,即使缺少一個證書也能驗證您的站點。但是,您不應該依賴它。
uj5u.com熱心網友回復:
security.require-ssl=true
server.ssl.key-store-password=PASSWORD
server.ssl.key-store=keystore.jks
server.ssl.key-store-provider=SUN
server.ssl.key-store-type=JKS
使用 jks 檔案而不是 pfx 并且一切正常。也想和別人分享。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/345560.html
下一篇:如何從函式中的字串中洗掉特殊單詞
