第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

具有自定義 CA 的客戶端-服務(wù)器 TLS

具有自定義 CA 的客戶端-服務(wù)器 TLS

Go
慕標(biāo)琳琳 2022-07-25 10:40:49
我寫了一個(gè)小測試程序來創(chuàng)建自定義的自簽名 CA 證書#1創(chuàng)建由該 CA 頒發(fā)的服務(wù)器證書#2 - 根證書#1創(chuàng)建帶有證書#2 的服務(wù)器創(chuàng)建一個(gè) RootCA 指向證書#1 的客戶端客戶端嘗試連接到服務(wù)器并收到錯(cuò)誤:獲取 "https://localhost:2000": x509: certificate signed by unknown authority(可能是因?yàn)?"x509: Ed25519 驗(yàn)證失敗" 同時(shí)嘗試驗(yàn)證候選權(quán)威證書 "test-ca")我知道有很多這樣的例子。我以為我跟他們很近,但我在這里。我在這里只展示最相關(guān)的結(jié)構(gòu),但程序的全文可以在這里找到:   ...    templateCA := &x509.Certificate{        Subject: pkix.Name{            CommonName:   "test-ca",            Organization: []string{"test ca"},            Country:      []string{"USA"},            Province:     []string{"NY"},            Locality:     []string{"New York City"},        },        SerialNumber:          serialNumber,        NotBefore:             time.Now(),        NotAfter:              time.Now().AddDate(0, 0, 1),        BasicConstraintsValid: true,        IsCA:                  true,        SubjectKeyId:          caSubjectKeyID[:],        DNSNames:              []string{"test-ca"},        KeyUsage:              x509.KeyUsageCertSign    }我錯(cuò)過了什么或做錯(cuò)了什么?
查看完整描述

2 回答

?
紅顏莎娜

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊

您可以使用私鑰解密數(shù)據(jù)并加密散列數(shù)據(jù)以創(chuàng)建數(shù)字簽名。

您可以使用公鑰加密數(shù)據(jù)并解密數(shù)字簽名來驗(yàn)證它。

您需要在這里做的是使用一個(gè)密鑰對(公鑰/私鑰)生成 CA 證書,并使用該證書 + 相同的密鑰對為您的服務(wù)器生成一個(gè)或多個(gè)證書。

如果您想使用瀏覽器/curl 作為客戶端,則需要在根密鑰庫中添加 CA 證書。


查看完整回答
反對 回復(fù) 2022-07-25
?
明月笑刀無情

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超4個(gè)贊

我從上面粘貼了更正的代碼片段。希望有一天,他們可以幫助某人。


...

templateCA := &x509.Certificate{

    Subject: pkix.Name{

        CommonName:   "test-ca",

        Organization: []string{"test ca"},

        Country:      []string{"USA"},

        Province:     []string{"NY"},

        Locality:     []string{"New York City"},

    },

    SerialNumber:          serialNumber,

    NotBefore:             time.Now(),

    NotAfter:              time.Now().AddDate(0, 0, 1),

    BasicConstraintsValid: true,

    IsCA:                  true,

    KeyUsage:              x509.KeyUsageCertSign

    DNSNames:              []string{"test-ca"},

}

...

certBytes, _ := x509.CreateCertificate(rand.Reader, templateCA, templateCA, privKeyCA.Public(), privKeyCA)

...

templateServer := &x509.Certificate{

    Subject: pkix.Name{

        CommonName:   "localhost",

        Organization: []string{"Server"},

        Country:      []string{"USA"},

        Province:     []string{"NY"},

        Locality:     []string{"New York City"},

    },

    SerialNumber:          serialNumber,

    NotBefore:             time.Now(),

    NotAfter:              time.Now().AddDate(0, 0, 1),

    BasicConstraintsValid: true,

    KeyUsage:              x509.KeyUsageDigitalSignature | x509.KeyUsageKeyEncipherment,

    ExtKeyUsage:           []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth},

    DNSNames:              []string{"localhost"},

}

...

certBytes, _ = x509.CreateCertificate(rand.Reader, templateServer, caCert, privKeyServer.Public(), privKeyCA)

...

var (

    tlsMinVersion = uint16(tls.VersionTLS12)

    tlsMaxVersion = uint16(tls.VersionTLS13)

    cipherSuites  = []uint16{

        tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,

        tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,

        tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,

        tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,

        tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,

        tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,

    }

    curvePreferences = []tls.CurveID{

        tls.X25519,

        tls.CurveP256,

        tls.CurveP384,

        tls.CurveP521,

    }

)

...

tlsServerConfig := &tls.Config{

    Certificates:             []tls.Certificate{*tlsSrvCert},

    MinVersion:               tlsMinVersion,

    MaxVersion:               tlsMaxVersion,

    CurvePreferences:         curvePreferences,

    CipherSuites:             cipherSuites,

    PreferServerCipherSuites: true,

}

...

tlsClientConfig := &tls.Config{

    ServerName:               "localhost",

    RootCAs:                  x509.NewCertPool(),

    MinVersion:               tlsMinVersion,

    MaxVersion:               tlsMaxVersion,

    CurvePreferences:         curvePreferences,

    CipherSuites:             cipherSuites,

    PreferServerCipherSuites: true,

}

tlsClientConfig.RootCAs.AddCert(caCert)



查看完整回答
反對 回復(fù) 2022-07-25
  • 2 回答
  • 0 關(guān)注
  • 142 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)