Files
bun.sh/packages/bun-usockets/misc/gen_test_certs.sh
Jarred Sumner a2ddfe6913 Bring uSockets & uWebSockets forks into Bun's repository (#4372)
* Move uWebSockets and uSockets forks into Bun's repository

* Update Makefile

* Update settings.json

* Update libuwsockets.cpp

* Remove backends we won't be using

* Update bindings.cpp

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-28 08:38:30 -07:00

52 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
set -eo pipefail
function gen_cert {
local path=$1
local CN=$2
local ca_path=$3
local ca_name=${4:-ca}
mkdir -p ${path}
openssl genrsa -out ${path}/${CN}_key.pem 2048 >/dev/null
echo "generated ${path}/${CN}_key.pem"
openssl req -new -sha256 \
-key ${path}/${CN}_key.pem \
-subj "/O=uNetworking/O=uSockets/CN=${CN}" \
-reqexts SAN \
-config <(cat /etc/ssl/openssl.cnf \
<(printf "\n[SAN]\nsubjectAltName=DNS:localhost,DNS:127.0.0.1")) \
-out ${path}/${CN}.csr &>/dev/null
if [ -z "${ca_path}" ]; then
# self-signed
openssl x509 -req -in ${path}/${CN}.csr \
-signkey ${path}/${CN}_key.pem -days 365 -sha256 \
-outform PEM -out ${path}/${CN}_crt.pem &>/dev/null
else
openssl x509 -req -in ${path}/${CN}.csr \
-CA ${ca_path}/${ca_name}_crt.pem -CAkey ${ca_path}/${ca_name}_key.pem \
-CAcreateserial -days 365 -sha256 \
-outform PEM -out ${path}/${CN}_crt.pem &>/dev/null
fi
rm -f ${path}/${CN}.csr
echo "generated ${path}/${CN}_crt.pem"
}
# main
certs=${1:-"/tmp/certs"}
gen_cert "${certs}" "valid_ca"
gen_cert "${certs}" "valid_server" "${certs}" "valid_ca"
gen_cert "${certs}" "valid_client" "${certs}" "valid_ca"
gen_cert "${certs}" "invalid_ca"
gen_cert "${certs}" "invalid_client" "${certs}" "invalid_ca"
gen_cert "${certs}" "selfsigned_client"