당신이 직물-CA를 사용할 수 있습니다. Fabric-ca는 사용자 관리를위한 몇 가지 API를 제공합니다. 사용자는 fabric-ca를 사용하여 사용자를 등록, 취소, 등록, 재 등록 할 수 있습니다. fabric-ca에 대한 문서는 here입니다.
fabric-ca 서버를 설치 한 후 SDK가있는 fabric-ca 서버 (현재 node-sdk 및 java-sdk) 또는 fabric-ca 클라이언트와 상호 작용할 수 있습니다. java-sdk의 샘플은 here입니다. node-sdk의 샘플은 here입니다. 때마다 사용자의 호출이 클라이언트에서 또는 쿼리를 호출 때
그리고 chaincode 측
, 당신은 인증서를 읽을 수 있습니다. 다음은 샘플 코드입니다. import(
"crypto/x509"
"encoding/pem"
"bytes"
"strings"
"github.com/hyperledger/fabric/core/chaincode/shim"
)
func parseCert(stub){
creator, err := identityService.Stub.GetCreator()
if err != nil {
logger.Debug("Error received on GetCreator", err)
vm.PushErrorObjectVa(duktape.ErrError, "%s", err.Error())
vm.Throw()
return
}
certStart := bytes.IndexAny(creator, "----BEGIN CERTIFICATE-----")
if certStart == -1 {
logger.Debug("No certificate found")
return
}
certText := creator[certStart:]
block, _ := pem.Decode(certText)
if block == nil {
logger.Debug("Error received on pem.Decode of certificate", certText)
return
}
ucert, err := x509.ParseCertificate(block.Bytes)
if err != nil {
logger.Debug("Error received on ParseCertificate", err)
return
}
logger.Debug("Common Name", ucert.Subject.CommonName)
}