Files

28 lines
885 B
Bash
Executable File

#!/usr/bin/env bash
client_name="ExampleName"
client_name_file="example-name"
organization="Example Inc."
common_name="Example Inc. $client_name mTLC Client"
openssl req -new -newkey rsa:4096 -noenc -sha256 -days 825 \
-keyout client.key -out client.crt \
-subj "/C=US/O=$organization/CN=$common_name" \
-CA ca.crt -CAkey ca.key \
-addext "basicConstraints=critical,CA:FALSE" \
-addext "keyUsage=critical,digitalSignature" \
-addext "extendedKeyUsage=clientAuth"
# 导出 PKCS#12/.p12 证书 (不带证书链)
openssl pkcs12 -export \
-inkey client.key -in client.crt \
-out "client-$client_name_file.p12" -name "$client_name_file"
# 导出 PKCS#12/.p12 证书 (带证书链)
#openssl pkcs12 -export \
# -inkey client.key -in client.crt -certfile ca.crt \
# -out "client-$client_name_file-with-ca.p12" -name "$client_name_file"
rm client.key client.crt