2017-01-31 46 views

回答

0

這可以去兩個不同的方向取決於你實際上問。

如果您問的是如何在服務器沒有證書的情況下主持https請求,那是不可能的。 https請求表示連接受SSL/TLS保護,SSL/TLS必須要求服務器證書才能運行。

如果你問如何託管https請求,而不要求客戶有證書,那是另一回事,而事實上是http.Server的默認行爲。您實際上必須設置https.Server字段ClientAuth(例如,至http.RequireAndVerifyClientCert)才能真正需要這些證書。如果您未設置此字段,則默認值爲http.NoClientCert,該值允許無證書的客戶端連接,即使頒發證書也不驗證證書。

+0

感謝您的回覆,所以如果服務器不驗證證書,那麼我們必須生成'cert'和'key'文件。 –

+0

客戶端根本不需要提供證書,不需要。 _server_仍然需要有效的證書文件,但客戶端不會除非您設置'http.Server.ClientAuth'字段。 – Kaedys

+0

這很有道理,謝謝 –

0

Https請求需要SSL證書。您可以創建一個自簽名的證書,但您應該爲任何生產就緒服務器獲得一個真實有效的證書。

僅有1的方式,使自簽名的證書:https://devcenter.heroku.com/articles/ssl-certificate-self

+0

聽起來更像是在沒有客戶端證書的情況下詢問SSL(完全可行,實際上是默認行爲),而不是沒有服務器證書的SSL(不可能)。 – Kaedys

+0

啊 - 我讀爲'客戶'是他正在實施的人。你完全正確@Kaedys – lplatz

相關問題