首頁 > 後端開發 > Golang > 如何將 TLS 1.2 與 MySql Go 驅動程式一起使用?

如何將 TLS 1.2 與 MySql Go 驅動程式一起使用?

WBOY
發布: 2024-02-10 09:40:09
轉載
739 人瀏覽過

如何将 TLS 1.2 与 MySql Go 驱动程序一起使用?

php小編柚子在這篇文章中將為您介紹如何將TLS 1.2與MySQL Go驅動程式一起使用。 TLS 1.2是一種安全傳輸協議,用於保護網路通訊的安全性。使用MySQL Go驅動程式連接資料庫時,啟用TLS 1.2可以提高資料傳輸的安全性。本文將詳細說明如何設定和使用TLS 1.2與MySQL Go驅動程式來建立安全的資料庫連線。跟隨本文的指導,您將能夠輕鬆地將TLS 1.2與MySQL Go驅動程式一起使用,保護您的資料和通訊的安全性。

問題內容

我們必須使用 tls1.2 來連接到我們的 mysql 伺服器。在我們的 java 應用程式中,我們使用以下 jdbc url -

jdbc:mysql://xxxx-001-dev.cluster-xx-2.rds.amazonaws.com/bats?**enabledtlsprotocols=tlsv1.2**
登入後複製

在我們的 go 應用程式中連接到 mysql 時,我無法實現類似的配置 -

cfg1 := mysql.config{
        user:                 "admin",
        passwd:               "xxxxxxx",
        net:                  "tcp",
        addr:                 "xxxx-001-dev.cluster-xx-2.rds.amazonaws.com:3306",
        dbname:               "xxxx",
        allownativepasswords: true,
    }

    sql.open("mysql", cfg1.formatdsn())
登入後複製

我嘗試新增以下語句。但沒有幫助,它拋出以下錯誤 -

// enabledtlsprotocolstlsv1.2
    cfg1 := mysql.config{
        user:                 "admin",
        passwd:               "xxxxxx",
        net:                  "tcp",
        addr:                 "xxxx-001-dev.cluster-xx-2.rds.amazonaws.com:3306",
        dbname:               "xxxx",
        allownativepasswords: true,
    }

    cfg1.tls.minversion = tls.versiontls12
    cfg1.tls.maxversion = tls.versiontls12

    sql.open("mysql", cfg1.formatdsn())
登入後複製

錯誤-

panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x1 addr=0xf8 pc=0x64ac21]

goroutine 1 [running]:
main.main()
        C:/cmb-mmt/chp-schema-validation/main.go:28 +0x61
登入後複製

我們使用的是 5.7.12 mysql 版本

解決方法

#下面的程式碼解決了這個問題。並且我能夠成功連接到 mysql。

cfg1 := mysql.Config{
        User:                 cfg.Db.Dev.User,
        Passwd:               cfg.Db.Dev.Pass,
        Net:                  "tcp",
        Addr:                 "cxx-cxxx-auroramysql-001-dev.xxxxxxxxx.us-west-2.rds.amazonaws.com:3306",
        DBName:               "xxxx",
        AllowNativePasswords: true,
        TLSConfig:            "skip-verify",
        TLS:                  &tls.Config{MinVersion: tls.VersionTLS12, MaxVersion: tls.VersionTLS12},
    }
登入後複製

以上是如何將 TLS 1.2 與 MySql Go 驅動程式一起使用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板