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

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

進行 TLS 連接

進行 TLS 連接

Go
慕哥9229398 2021-12-07 15:59:31
我通過 openssl 連接到某個服務器:openssl s_client -crlf -connect somehost.com:700 -cert key.pem它有效。連接成功。但是當我嘗試從 Go 代碼(文檔中的示例)中做同樣的事情時,它對我不起作用:import (    "crypto/tls"    "crypto/x509")func main() {    // Connecting with a custom root-certificate set.    const rootPEM = `-----BEGIN CERTIFICATE-----my key text-----END CERTIFICATE-----`// First, create the set of root certificates. For this example we only// have one. It's also possible to omit this in order to use the// default root set of the current operating system.roots := x509.NewCertPool()ok := roots.AppendCertsFromPEM([]byte(rootPEM))if !ok {    panic("failed to parse root certificate")}conn, err := tls.Dial("tcp", "somehost.com:700", &tls.Config{    RootCAs: roots,})if err != nil {    panic("failed to connect: " + err.Error())}conn.Close()}我的文字錯誤是:panic: failed to connect: x509: certificate is valid for otherhost.com, not somehost.com [recovered]問題:我做錯了什么?也許我沒有添加一些 tls.Config 參數?
查看完整描述

2 回答

?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

openssl s_client只是一個連接的測試工具,但它并不關心證書是否對連接有效。Go 反而關心證書是否可以被驗證,因此您會得到證書無效的信息,因為名稱不匹配。

我做錯了什么?

根據錯誤消息,您確實通過錯誤的主機名訪問了主機?;蛘吣姆掌髋渲貌划敚灾劣谒l送了錯誤的證書。


查看完整回答
反對 回復 2021-12-07
?
慕婉清6462132

TA貢獻1804條經驗 獲得超2個贊

我不需要檢查服務器的 ssl 證書。它是某個域注冊表的演示服務器。所以我需要服務器來檢查我的證書。


  const certPEM = `-----BEGIN CERTIFICATE-----

  -----END CERTIFICATE-----

  `

  const certKey = `-----BEGIN RSA PRIVATE KEY-----

  -----END RSA PRIVATE KEY-----`


  cert, err := tls.X509KeyPair([]byte(certPEM), []byte(certKey))

  if err != nil {

      t.Error("server: loadkeys: %s", err)

  }


  cfg := tls.Config{

      InsecureSkipVerify: true,

      ServerName:         "somehost.com",

      Certificates:       []tls.Certificate{cert},

  }


  conn, err := tls.Dial("tcp", "somehost.com:700", &cfg)

  if err != nil {

      t.Error("failed to connect: " + err.Error())

  }


  defer conn.Close()

  所以這段代碼適用于我的情況。


查看完整回答
反對 回復 2021-12-07
  • 2 回答
  • 0 關注
  • 184 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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