#!/bin/bash usage() { echo "usage: command gen|show|help where_to_use [key_size(default is 2048)]" exit } [ $# -ge 2 ] && { mkdir -p $2 cd $2 } key_size=2048 [ $# -ge 3 ] && { key_size="$3" } countryName="CN" stateOrProvinceName="guangdong" localityName="shenzhen" organizationName="3scard Co., Ltd." organizationalUnitName="IT Dept" commonName="$2" #emailAddress="feinenxiang@3scard.com" challengePassword="123456" unstructuredName="" subject="\ /C=$countryName\ /ST=$stateOrProvinceName\ /L=$localityName\ /O=$organizationName\ /OU=$organizationalUnitName\ /CN="$commonName"" #/emailAddress="$emailAddress" case "$1" in gen) openssl genrsa -out private.pem "$key_size" openssl rsa -in private.pem -outform pem -pubout -out public.pem openssl req -new -key private.pem -sha256 -out certReq.csr -subj "$subject" openssl x509 -req -days 3650 -in certReq.csr -signkey private.pem -sha256 -out cert.crt openssl x509 -outform der -in cert.crt -out cert.der openssl pkcs12 -export -out private.p12 -inkey private.pem -in cert.crt cp -rf private.p12 private.pfx ;; show) openssl x509 -text -in cert.crt ;; *) usage esac