亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

curl 能夠從 https 獲取;但來自 golang 的 http.get()

curl 能夠從 https 獲取;但來自 golang 的 http.get()

Go
qq_笑_17 2023-06-19 15:44:06
當我這樣做時curl https://10.184.96.62:3000/status,服務器發回 json 數據。都好。使用下面的 golang 代碼,應用程序打?。?019/05/21 18:29:15 獲取https://10.184.96.62:3000/status:x509:無法驗證 10.184.96.62 的證書,因為它不包含任何 IP SANpackage mainimport (        "log"        "net/http")func main() {        _, err := http.Get("https://10.184.96.62:3000/status")        if err != nil {                log.Fatal(err)        }}我錯過了什么?
查看完整描述

2 回答

?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

錯誤消息指示的問題特定于 HTTPS 與 IP 地址的組合:通常 SSL 證書使用主機名來檢查服務器的真實性。在您的情況下,沒有主機名,而是 IP 地址。您的問題有兩種可能的解決方案:

  1. 使用主機名而不是 IP 地址并將該主機名放入您的證書中。

  2. 將您要使用的 IP 地址放入subjectAltNames證書的(“主題備用名稱”- SAN)字段中(請參閱RFC 5280)。


查看完整回答
反對 回復 2023-06-19
?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

問題出在我生成的證書上。我曾經openssl創建一個自簽名證書。正如我分享的那樣,curl能夠使用它與服務器建立連接。但不是 go 應用程序。

在某個論壇上,我看到一條評論說openssl在這種情況下開始工作很棘手。所以我用這個go代碼來生成證書。使用此證書,go app 還能夠在不對我在問題中共享的源代碼進行任何更改的情況下發出請求。

希望這可以幫助有需要的人。


查看完整回答
反對 回復 2023-06-19
  • 2 回答
  • 0 關注
  • 171 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號