aboutsummaryrefslogtreecommitdiff
path: root/pkcs12-change-passwd.sh
blob: bc9553c26a17849e98d80079b4cb0f2a485bac1a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/env bash

set -e
set -x

IN_PKCS12="${1}"
IN_PASSWD="${2}"

test "INPUT PKCS12: ${IN_PKCS12}" != "INPUT PKCS12: "
test "INPUT PASSWD: ${IN_PASSWD}" != "INPUT PASSWD: "

openssl pkcs12 -clcerts -nokeys -in "${IN_PKCS12}" \
    -out certificate.crt -password "pass:${IN_PASSWD}" -passin "pass:${IN_PASSWD}"

openssl pkcs12 -cacerts -nokeys -in "${IN_PKCS12}" \
    -out ca-cert.ca -password "pass:${IN_PASSWD}" -passin "pass:${IN_PASSWD}"

openssl pkcs12 -nocerts -in "${IN_PKCS12}" \
    -out private.key -password "pass:${IN_PASSWD}" -passin "pass:${IN_PASSWD}" \
    -passout pass:TemporaryPassword

openssl rsa -in private.key -out "NewKeyFile.key" \
    -passin pass:TemporaryPassword

cat "NewKeyFile.key"  \
    "certificate.crt" \
    "ca-cert.ca" > PEM.pem

openssl pkcs12 -export -nodes -CAfile ca-cert.ca \
    -in PEM.pem -out "NewKeyFile.pfx"