reqdemo.sh 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #!/bin/bash -x
  2. set -e
  3. # generate self-signed CA certificate
  4. gmssl sm2keygen -pass 1234 -out cakey.pem -pubout pubkey.pem
  5. gmssl certgen -C CN -ST Beijing -L Haidian -O PKU -OU CS -CN CA -days 365 -key cakey.pem -pass 1234 -out cacert.pem
  6. gmssl certparse -in cacert.pem
  7. # generate a req and sign by CA certificate
  8. gmssl sm2keygen -pass 1234 -out signkey.pem -pubout pubkey.pem
  9. gmssl reqgen -C CN -ST Beijing -L Haidian -O PKU -OU CS -CN Alice -key signkey.pem -pass 1234 -out signreq.pem
  10. gmssl reqsign -in signreq.pem -days 365 -key_usage digitalSignature -cacert cacert.pem -key cakey.pem -pass 1234 -out signcert.pem
  11. gmssl certparse -in signcert.pem
  12. # sign a encryption certificate with the same DN, different KeyUsage extension
  13. gmssl sm2keygen -pass 1234 -out enckey.pem -pubout pubkey.pem
  14. gmssl reqgen -C CN -ST Beijing -L Haidian -O PKU -OU CS -CN Alice -key enckey.pem -pass 1234 -out encreq.pem
  15. gmssl reqsign -in encreq.pem -days 365 -key_usage digitalSignature -cacert cacert.pem -key cakey.pem -pass 1234 -out enccert.pem
  16. gmssl certparse -in enccert.pem
  17. # 中文
  18. gmssl sm2keygen -pass 1234 -out alicekey.pem -pubout alicepubkey.pem
  19. gmssl reqgen -O "北京大学" -CN "爱丽丝" -key alicekey.pem -pass 1234 -out alicereq.pem
  20. gmssl reqsign -in alicereq.pem -days 365 -key_usage digitalSignature -cacert cacert.pem -key cakey.pem -pass 1234 -out alicecert.pem
  21. gmssl certparse -in alicecert.pem
  22. rm -fr pubkey.pem
  23. rm -fr cacert.pem
  24. rm -fr signkey.pem
  25. rm -fr signreq.pem
  26. rm -fr signcert.pem
  27. rm -fr enckey.pem
  28. rm -fr encreq.pem
  29. rm -fr enccert.pem
  30. rm -fr alicekey.pem
  31. rm -fr alicepubkey.pem
  32. rm -fr alicereq.pem
  33. rm -fr alicecert.pem
  34. echo ok