summaryrefslogtreecommitdiffstats
path: root/tests/auto/external_IODevice/cert/generate.sh
blob: 4aabfabcd898fa8e82781cc1274a240e34daf352 (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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/bin/sh
# Copyright (C) 2021 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0

# Generate the CA key
openssl genrsa -out rootCA.key 2048
# Generate the CA cert
openssl req -x509 -key rootCA.key -out rootCA.pem -sha256 -nodes -subj "/CN=QtRO CA" -days 836

# genFiles stem [extra args to signing]
genFiles () {
    stem=$1
    shift
    # Generate key
    openssl genrsa -out $stem.key 2048
    # Generate certificate-signing request
    openssl req -new -key $stem.key -out $stem.csr -subj "/CN=127.0.0.1"
    # Generate and sign the certificate
    # Apple requires that TLS certificates have a validity period of at most 825 days:
    # https://support.apple.com/en-us/103769
    openssl x509 -req -in $stem.csr -out $stem.crt \
                 -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -days 825 -sha256 "$@"
    # Delete the signing request, no longer needed
    rm $stem.csr
}
genFiles server -extfile server-req.ext
genFiles client

dest1="../../../../examples/remoteobjects/ssl/sslserver/cert/"
dest2="../../../../examples/remoteobjects/websockets/common/cert/"

cp -f "client.crt" $dest1
cp -f "client.crt" $dest2
cp -f "client.key" $dest1
cp -f "client.key" $dest2

cp -f "server.crt" $dest1
cp -f "server.crt" $dest2
cp -f "server.key" $dest1
cp -f "server.key" $dest2

cp -f "rootCA.pem" $dest1
cp -f "rootCA.key" $dest1
cp -f "rootCA.srl" $dest1
cp -f "rootCA.pem" $dest2
cp -f "rootCA.key" $dest2
cp -f "rootCA.srl" $dest2