本文目錄一覽:
golang x509的Certificate.Verify函數
周末在家無趣,研究了一個golang裡面的Certificate.Verify函數。
golang的官方定義在這裡:
函數原型聲明如下:
func (c Certificate) Verify(opts VerifyOptions) (chains [][] Certificate, err error)
其中:
這個函數的功能是:
Verify attempts to verify c by building one or more chains from c to a certificate in opts.Roots, using certificates in opts.Intermediates if needed. If successful, it returns one or more chains where the first element of the chain is c and the last element is from opts.Roots.
If opts.Roots is nil and system roots are unavailable the returned error will be of type SystemRootsError.
解釋一下就是:
舉一個例子:
假設存在證書鏈簽出關係:C1 – C2 – C3 – C4,即C1簽出C2,C2簽出C3,C3簽出C4;現在使用函數:
我們根據Intermediates和Roots的值不同,比較輸出結果:
通過Go語言創建CA與簽發證書
本篇文章中,將描述如何使用go創建CA,並使用CA簽署證書。在使用openssl創建證書時,遵循的步驟是 創建秘鑰 創建CA 生成要頒發證書的秘鑰 使用CA簽發證書。這種步驟,那麼我們現在就來嘗試下。
首先,會從將從創建 CA 開始。 CA 會被用來簽署其他證書
接下來需要對證書生成公鑰和私鑰
然後生成證書:
我們看到的證書內容是PEM編碼後的,現在 caBytes 我們有了生成的證書,我們將其進行 PEM 編碼以供以後使用:
證書的 x509.Certificate 與CA的 x509.Certificate 屬性有稍微不同,需要進行一些修改
為該證書創建私鑰和公鑰:
有了上述的內容後,可以創建證書並用CA進行簽名
要保存成證書格式需要做PEM編碼
創建一個 ca.go 裡面是創建ca和頒發證書的邏輯
如果需要使用的話,可以引用這些函數
panic: x509: unsupported public key type: rsa.PublicKey
這裡是因為 x509.CreateCertificate 的參數 privatekey 需要傳入引用變數,而傳入的是一個普通變數
extendedKeyUsage :增強型密鑰用法(參見”new_oids”欄位):伺服器身份驗證、客戶端身份驗證、時間戳。
keyUsage : 密鑰用法,防否認(nonRepudiation)、數字簽名(digitalSignature)、密鑰加密(keyEncipherment)。
文章來自
golang私有倉庫依賴配置
golang私有倉庫依賴配置
版本要求:go 1.14+
go mod 配置:
go env -w GOPRIVATE=”gitlab.xxx.com” //配置私有倉庫域名 :重要
go env -w GONOPROXY=”gitlab.xxx.com” //此配置下的域名默認不走代理
go env -w GONOSUMDB=”gitlab.xxx.com” //此配置下的域名默認不進行gosumdb校驗
go env -w GOINSECURE=”gitlab.xxx.com” //此配置下的域名默認採用http協議 。有些公司的私有倉庫採用http協議,而go mod默認採用 https,請根據實際情況進行配置:重要
賬戶及密碼:
因私有倉庫一般都需要進行登錄,所以可以通過隱藏文件進行用戶名及密碼配置。
文件路徑:~/.netrc //默認Linux系統,
文件內容:
machine 域名 //gitlab.xxx.com
login 賬號
password 密碼
golang 應該怎麼寫配置文件
在項目開始之前,先根據大概業務設計日誌系統。
一個好的日誌系統在項目維護時非常重要。
我的日誌系統中的內容:
時間戳
日誌調用地點:文件+行號
報錯級別 致命 錯誤 警告 信息 調試
Summary
關鍵內存Dump
這些信息方便排查故障。
配置文件:
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/239443.html