# Create CA for client #openssl genrsa -des3 -out ca.key 4096 #openssl req -new -x509 -days 365 -key ca.key -out ca.crt # ## Server cert #openssl genrsa -des3 -out server.key 2028 #openssl req -new -key server.key -out server.csr # ## Self sign ?? #openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt # TODO serial # TODO common name OPENSSL_CONF=openssl.cnf [ $# -ne 1 ] && echo "Usage: $0 init client NAME" case $1 in "init" ) echo "Create CA for signing client certs" openssl genrsa -des3 -out ca.key 4096 sed -i 's/=.*#CommonName/= FIC2014 CA#CommonNameEnd/' $OPENSSL_CONF openssl req -batch -new -x509 -days 365 -key ca.key -out ca.crt echo "Create server cert" openssl genrsa -des3 -out server.key 2048 sed -i 's/=.*#CommonNameEnd/= FIC2014 Server#CommonNameEnd/' $OPENSSL_CONF openssl req -batch -new -key server.key -out server.csr openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt rm server.csr ;; "client" ) [ $# -ne 2 ] && "client Usage" openssl genrsa -des3 -out client.key 2048 sed -i "s/=.*#CommonNameEnd/= $2#CommonNameEnd/" $OPENSSL_CONF openssl req -batch -new -key client.key -out client.csr openssl x509 -req -days 365 -in client.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out client.crt openssl pkcs12 -export -inkey client.key -in client.crt -name $2 -out ${2}.p12 rm client.key rm client.csr rm client.crt ;; "*" ) echo "*" ;; esac