默认的cryptogen工具生成的证书有效期为10年,地区信息为国外,证书序列号为随机值(过多存在重复),fabric-ca(暂对多根目录的节构支持不好)。现修改证书为50年,地区自定义。主要是修改原码后,再进fabric主目录,make cryptogen:
主要是修改
$GOPATH/src/github.com/hyperledger/fabric/common/tools/cryptogen/ca/generator.go文件:
1.加入fmt引用
1import ( 2 "fmt" //加入这个 3)
2.修改pkix.name
1func subjectTemplate() pkix.Name { 2 return pkix.Name{ 3 Country: []string{"CN"}, 4 Locality: []string{"ChongQing"}, 5 Province: []string{"ChongQing"}, 6 } 7}
3.修改证书的序列号生成规则
1func x509Template() x509.Certificate { 2 3 //generate a serial number 4 serialNumberLimit := new(big.Int).Lsh(big.NewInt(1), 128) 5 serialNumber, _ := rand.Int(rand.Reader, serialNumberLimit) 6 now := time.Now() 7 8 serialNumberStr := fmt.Sprintf("%d", serialNumber) 9 nowStr := fmt.Sprintf("%d", now.UnixNano()) 10 serialNumber1,_:=big.NewInt(0).SetString(serialNumberStr+nowStr,10) 11 //fmt.Println("serialNumber:"+serialNumberStr+nowStr) 12 13 //basic template to use 14 x509 := x509.Certificate{ 15 SerialNumber: serialNumber1, 16 NotBefore: now, 17 NotAfter: now.Add(438000 * time.Hour), //~ten*5 years 18 BasicConstraintsValid: true, 19 } 20 return x509 21 22}