| 123456789101112131415161718192021222324252627282930313233343536 | #!/bin/bash -xgmssl sm2keygen -pass 1234 -out rootcakey.pemgmssl certgen -C CN -ST Beijing -L Haidian -O PKU -OU CS -CN ROOTCA -days 3650 -key rootcakey.pem -pass 1234 -out rootcacert.pem -key_usage keyCertSign -key_usage cRLSign -cagmssl certparse -in rootcacert.pemgmssl sm2keygen -pass 1234 -out cakey.pemgmssl reqgen -C CN -ST Beijing -L Haidian -O PKU -OU CS -CN "Sub CA" -key cakey.pem -pass 1234 -out careq.pemgmssl reqsign -in careq.pem -days 365 -key_usage keyCertSign -cacert rootcacert.pem -key rootcakey.pem -pass 1234 -out cacert.pem -ca -path_len_constraint 0gmssl certparse -in cacert.pemgmssl sm2keygen -pass 1234 -out signkey.pemgmssl reqgen -C CN -ST Beijing -L Haidian -O PKU -OU CS -CN localhost -key signkey.pem -pass 1234 -out signreq.pemgmssl reqsign -in signreq.pem -days 365 -key_usage digitalSignature -cacert cacert.pem -key cakey.pem -pass 1234 -out signcert.pemgmssl certparse -in signcert.pemcat signcert.pem > certs.pemcat cacert.pem >> certs.pem# If port is already in use, `gmssl` will fail, use `ps aux | grep gmssl` and `sudo kill -9` to kill existing proc# TODO: check if `gmssl` is failedwhich sudoif [ $? -eq 0 ]; then	SUDO=sudofi$SUDO gmssl tls12_server -port 4430 -cert certs.pem -key signkey.pem -pass 1234 -cacert cacert.pem & #1>/dev/null  2>/dev/null &sleep 3gmssl sm2keygen -pass 1234 -out clientkey.pemgmssl reqgen -C CN -ST Beijing -L Haidian -O PKU -OU CS -CN Client -key clientkey.pem -pass 1234 -out clientreq.pemgmssl reqsign -in clientreq.pem -days 365 -key_usage digitalSignature -cacert cacert.pem -key cakey.pem -pass 1234 -out clientcert.pemgmssl certparse -in clientcert.pemgmssl tls12_client -host 127.0.0.1 -port 4430 -cacert rootcacert.pem -cert clientcert.pem -key clientkey.pem -pass 1234
 |