-
Notifications
You must be signed in to change notification settings - Fork 3.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
added sample for certifiate renewal in test-network #1163
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -414,6 +414,25 @@ function queryChaincode() { | |
|
||
} | ||
|
||
function renewCerts(){ | ||
. ./organizations/fabric-ca/reEnroll.sh | ||
|
||
rm "${PWD}"/organizations/fabric-ca/ordererOrg/tls-cert.pem | ||
docker restart ca_orderer | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why do you need to restart the CA? Again, add comments to explain intent. |
||
sleep 10 | ||
reEnrollOrderer | ||
|
||
rm "${PWD}"/organizations/fabric-ca/org1/tls-cert.pem | ||
docker restart ca_org1 | ||
sleep 10 | ||
reEnrollOrg1 | ||
|
||
rm "${PWD}"/organizations/fabric-ca/org2/tls-cert.pem | ||
docker restart ca_org2 | ||
sleep 10 | ||
reEnrollOrg2 | ||
} | ||
|
||
|
||
# Tear down running network | ||
function networkDown() { | ||
|
@@ -668,6 +687,8 @@ elif [ "$MODE" == "cc" ] && [ "$SUBCOMMAND" == "invoke" ]; then | |
invokeChaincode | ||
elif [ "$MODE" == "cc" ] && [ "$SUBCOMMAND" == "query" ]; then | ||
queryChaincode | ||
elif [ "$MODE" == "renewCerts" ]; then | ||
renewCerts | ||
else | ||
printHelp | ||
exit 1 | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,157 @@ | ||
#!/bin/bash | ||
|
||
function reEnrollOrg1() { | ||
infoln "Re-enrolling the CA admin" | ||
mkdir -p organizations/peerOrganizations/org1.example.com/ | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Doesn't this directory already exist from the initial creation? |
||
|
||
export FABRIC_CA_CLIENT_HOME=${PWD}/organizations/peerOrganizations/org1.example.com/ | ||
|
||
set -x | ||
fabric-ca-client reenroll -u https://admin:adminpw@localhost:7054 --caname ca-org1 --tls.certfiles "${PWD}/organizations/fabric-ca/org1/ca-cert.pem" --csr.keyrequest.reusekey | ||
{ set +x; } 2>/dev/null | ||
|
||
# Copy org1's CA cert to org1's /msp/tlscacerts directory (for use in the channel MSP definition) | ||
mkdir -p "${PWD}/organizations/peerOrganizations/org1.example.com/msp/tlscacerts" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why do you re-create the directory, doesn't it already exist? |
||
cp "${PWD}/organizations/fabric-ca/org1/ca-cert.pem" "${PWD}/organizations/peerOrganizations/org1.example.com/msp/tlscacerts/ca.crt" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Usually when you renew certs the root cert remains the same. |
||
|
||
# Copy org1's CA cert to org1's /tlsca directory (for use by clients) | ||
mkdir -p "${PWD}/organizations/peerOrganizations/org1.example.com/tlsca" | ||
cp "${PWD}/organizations/fabric-ca/org1/ca-cert.pem" "${PWD}/organizations/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pem" | ||
|
||
# Copy org1's CA cert to org1's /ca directory (for use by clients) | ||
mkdir -p "${PWD}/organizations/peerOrganizations/org1.example.com/ca" | ||
cp "${PWD}/organizations/fabric-ca/org1/ca-cert.pem" "${PWD}/organizations/peerOrganizations/org1.example.com/ca/ca.org1.example.com-cert.pem" | ||
|
||
|
||
infoln "Generating the peer0 msp" | ||
set -x | ||
fabric-ca-client reenroll -u https://peer0:peer0pw@localhost:7054 --caname ca-org1 -M "${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp" --csr.hosts peer0.org1.example.com --tls.certfiles "${PWD}/organizations/fabric-ca/org1/ca-cert.pem" --csr.keyrequest.reusekey | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. No need to use -csr.hosts for enrollment cert, only needed for tls certs to generate the SANS. |
||
{ set +x; } 2>/dev/null | ||
|
||
cp "${PWD}/organizations/peerOrganizations/org1.example.com/msp/config.yaml" "${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/config.yaml" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't think anything in the config.yaml changes when you reenroll. Did you find something that changed? |
||
|
||
infoln "Generating the peer0-tls certificates" | ||
set -x | ||
fabric-ca-client reenroll -u https://peer0:peer0pw@localhost:7054 --caname ca-org1 -M "${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls" --enrollment.profile tls --csr.hosts peer0.org1.example.com --csr.hosts localhost --tls.certfiles "${PWD}/organizations/fabric-ca/org1/ca-cert.pem" --csr.keyrequest.reusekey | ||
{ set +x; } 2>/dev/null | ||
|
||
# Copy the tls CA cert, server cert, server keystore to well known file names in the peer's tls directory that are referenced by peer startup config | ||
cp "${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/tlscacerts/"* "${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt" | ||
cp "${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/signcerts/"* "${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt" | ||
cp "${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/keystore/"* "${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key" | ||
|
||
infoln "Generating the user msp" | ||
set -x | ||
fabric-ca-client reenroll -u https://user1:user1pw@localhost:7054 --caname ca-org1 -M "${PWD}/organizations/peerOrganizations/org1.example.com/users/[email protected]/msp" --tls.certfiles "${PWD}/organizations/fabric-ca/org1/ca-cert.pem" --csr.keyrequest.reusekey | ||
{ set +x; } 2>/dev/null | ||
|
||
cp "${PWD}/organizations/peerOrganizations/org1.example.com/msp/config.yaml" "${PWD}/organizations/peerOrganizations/org1.example.com/users/[email protected]/msp/config.yaml" | ||
|
||
infoln "Generating the org admin msp" | ||
set -x | ||
fabric-ca-client reenroll -u https://org1admin:org1adminpw@localhost:7054 --caname ca-org1 -M "${PWD}/organizations/peerOrganizations/org1.example.com/users/[email protected]/msp" --tls.certfiles "${PWD}/organizations/fabric-ca/org1/ca-cert.pem" --csr.keyrequest.reusekey | ||
{ set +x; } 2>/dev/null | ||
|
||
cp "${PWD}/organizations/peerOrganizations/org1.example.com/msp/config.yaml" "${PWD}/organizations/peerOrganizations/org1.example.com/users/[email protected]/msp/config.yaml" | ||
} | ||
|
||
function reEnrollOrg2() { | ||
infoln "Re-enrolling the CA admin" | ||
mkdir -p organizations/peerOrganizations/org2.example.com/ | ||
|
||
export FABRIC_CA_CLIENT_HOME=${PWD}/organizations/peerOrganizations/org2.example.com/ | ||
|
||
set -x | ||
fabric-ca-client reenroll -u https://admin:adminpw@localhost:8054 --caname ca-org2 --tls.certfiles "${PWD}/organizations/fabric-ca/org2/ca-cert.pem" --csr.keyrequest.reusekey | ||
{ set +x; } 2>/dev/null | ||
|
||
# Copy org2's CA cert to org2's /msp/tlscacerts directory (for use in the channel MSP definition) | ||
mkdir -p "${PWD}/organizations/peerOrganizations/org2.example.com/msp/tlscacerts" | ||
cp "${PWD}/organizations/fabric-ca/org2/ca-cert.pem" "${PWD}/organizations/peerOrganizations/org2.example.com/msp/tlscacerts/ca.crt" | ||
|
||
# Copy org2's CA cert to org2's /tlsca directory (for use by clients) | ||
mkdir -p "${PWD}/organizations/peerOrganizations/org2.example.com/tlsca" | ||
cp "${PWD}/organizations/fabric-ca/org2/ca-cert.pem" "${PWD}/organizations/peerOrganizations/org2.example.com/tlsca/tlsca.org2.example.com-cert.pem" | ||
|
||
# Copy org2's CA cert to org2's /ca directory (for use by clients) | ||
mkdir -p "${PWD}/organizations/peerOrganizations/org2.example.com/ca" | ||
cp "${PWD}/organizations/fabric-ca/org2/ca-cert.pem" "${PWD}/organizations/peerOrganizations/org2.example.com/ca/ca.org2.example.com-cert.pem" | ||
|
||
infoln "Generating the peer0 msp" | ||
set -x | ||
fabric-ca-client reenroll -u https://peer0:peer0pw@localhost:8054 --caname ca-org2 -M "${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp" --csr.hosts peer0.org2.example.com --tls.certfiles "${PWD}/organizations/fabric-ca/org2/ca-cert.pem" --csr.keyrequest.reusekey | ||
{ set +x; } 2>/dev/null | ||
|
||
cp "${PWD}/organizations/peerOrganizations/org2.example.com/msp/config.yaml" "${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/config.yaml" | ||
|
||
infoln "Generating the peer0-tls certificates" | ||
set -x | ||
fabric-ca-client reenroll -u https://peer0:peer0pw@localhost:8054 --caname ca-org2 -M "${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls" --enrollment.profile tls --csr.hosts peer0.org2.example.com --csr.hosts localhost --tls.certfiles "${PWD}/organizations/fabric-ca/org2/ca-cert.pem" --csr.keyrequest.reusekey | ||
{ set +x; } 2>/dev/null | ||
|
||
# Copy the tls CA cert, server cert, server keystore to well known file names in the peer's tls directory that are referenced by peer startup config | ||
cp "${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/tlscacerts/"* "${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt" | ||
cp "${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/signcerts/"* "${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/server.crt" | ||
cp "${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/keystore/"* "${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/server.key" | ||
|
||
infoln "Generating the user msp" | ||
set -x | ||
fabric-ca-client reenroll -u https://user1:user1pw@localhost:8054 --caname ca-org2 -M "${PWD}/organizations/peerOrganizations/org2.example.com/users/[email protected]/msp" --tls.certfiles "${PWD}/organizations/fabric-ca/org2/ca-cert.pem" --csr.keyrequest.reusekey | ||
{ set +x; } 2>/dev/null | ||
|
||
cp "${PWD}/organizations/peerOrganizations/org2.example.com/msp/config.yaml" "${PWD}/organizations/peerOrganizations/org2.example.com/users/[email protected]/msp/config.yaml" | ||
|
||
infoln "Generating the org admin msp" | ||
set -x | ||
fabric-ca-client reenroll -u https://org2admin:org2adminpw@localhost:8054 --caname ca-org2 -M "${PWD}/organizations/peerOrganizations/org2.example.com/users/[email protected]/msp" --tls.certfiles "${PWD}/organizations/fabric-ca/org2/ca-cert.pem" --csr.keyrequest.reusekey | ||
{ set +x; } 2>/dev/null | ||
|
||
cp "${PWD}/organizations/peerOrganizations/org2.example.com/msp/config.yaml" "${PWD}/organizations/peerOrganizations/org2.example.com/users/[email protected]/msp/config.yaml" | ||
} | ||
|
||
function reEnrollOrderer() { | ||
infoln "Re-enrolling the CA admin" | ||
mkdir -p organizations/ordererOrganizations/example.com | ||
|
||
export FABRIC_CA_CLIENT_HOME=${PWD}/organizations/ordererOrganizations/example.com | ||
|
||
set -x | ||
fabric-ca-client reenroll -u https://admin:adminpw@localhost:9054 --caname ca-orderer --tls.certfiles "${PWD}/organizations/fabric-ca/ordererOrg/ca-cert.pem" --csr.keyrequest.reusekey | ||
{ set +x; } 2>/dev/null | ||
|
||
# Copy orderer org's CA cert to orderer org's /msp/tlscacerts directory (for use in the channel MSP definition) | ||
mkdir -p "${PWD}/organizations/ordererOrganizations/example.com/msp/tlscacerts" | ||
cp "${PWD}/organizations/fabric-ca/ordererOrg/ca-cert.pem" "${PWD}/organizations/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem" | ||
|
||
# Copy orderer org's CA cert to orderer org's /tlsca directory (for use by clients) | ||
mkdir -p "${PWD}/organizations/ordererOrganizations/example.com/tlsca" | ||
cp "${PWD}/organizations/fabric-ca/ordererOrg/ca-cert.pem" "${PWD}/organizations/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem" | ||
|
||
infoln "Generating the orderer msp" | ||
set -x | ||
fabric-ca-client reenroll -u https://orderer:ordererpw@localhost:9054 --caname ca-orderer -M "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp" --csr.hosts orderer.example.com --csr.hosts localhost --tls.certfiles "${PWD}/organizations/fabric-ca/ordererOrg/ca-cert.pem" --csr.keyrequest.reusekey | ||
{ set +x; } 2>/dev/null | ||
|
||
cp "${PWD}/organizations/ordererOrganizations/example.com/msp/config.yaml" "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/config.yaml" | ||
|
||
infoln "Generating the orderer-tls certificates" | ||
set -x | ||
fabric-ca-client reenroll -u https://orderer:ordererpw@localhost:9054 --caname ca-orderer -M "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/tls" --enrollment.profile tls --csr.hosts orderer.example.com --csr.hosts localhost --tls.certfiles "${PWD}/organizations/fabric-ca/ordererOrg/ca-cert.pem" --csr.keyrequest.reusekey | ||
{ set +x; } 2>/dev/null | ||
|
||
# Copy the tls CA cert, server cert, server keystore to well known file names in the orderer's tls directory that are referenced by orderer startup config | ||
cp "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/tls/tlscacerts/"* "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt" | ||
cp "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/tls/signcerts/"* "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt" | ||
cp "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/tls/keystore/"* "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.key" | ||
|
||
# Copy orderer org's CA cert to orderer's /msp/tlscacerts directory (for use in the orderer MSP definition) | ||
mkdir -p "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts" | ||
cp "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/tls/tlscacerts/"* "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem" | ||
|
||
infoln "Generating the admin msp" | ||
set -x | ||
fabric-ca-client reenroll -u https://ordererAdmin:ordererAdminpw@localhost:9054 --caname ca-orderer -M "${PWD}/organizations/ordererOrganizations/example.com/users/[email protected]/msp" --tls.certfiles "${PWD}/organizations/fabric-ca/ordererOrg/ca-cert.pem" --csr.keyrequest.reusekey | ||
{ set +x; } 2>/dev/null | ||
|
||
cp "${PWD}/organizations/ordererOrganizations/example.com/msp/config.yaml" "${PWD}/organizations/ordererOrganizations/example.com/users/[email protected]/msp/config.yaml" | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do you delete the tls-cert.pem? Usually when you renew certs the root cert remains the same.
Could you add comments to explain the intent.