28 lines
885 B
Bash
Executable File
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
|