Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions certs/generate.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#!/usr/bin/env bash
# Regenerates the self-signed certificate the TLS profiles use.
#
# The subjectAltName matters: a certificate with only a CN is not valid to
# anything that follows RFC 9525, which dropped CN fallback entirely, and some
# server libraries parse the extension while loading and fail outright when it
# is missing rather than at verification time. Every TLS profile connects to
# localhost, so that plus the loopback addresses is what has to be covered.
set -euo pipefail
cd "$(dirname "$0")"

openssl req -x509 -newkey rsa:2048 -nodes \
-keyout server.key -out server.crt \
-days 3650 -subj "/CN=localhost" \
-addext "subjectAltName=DNS:localhost,DNS:*.localhost,IP:127.0.0.1,IP:0.0.0.0,IP:::1" \
-addext "keyUsage=critical,digitalSignature,keyEncipherment" \
-addext "extendedKeyUsage=serverAuth"

chmod 644 server.crt server.key
openssl x509 -in server.crt -noout -subject -ext subjectAltName -dates
26 changes: 14 additions & 12 deletions certs/server.crt
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
-----BEGIN CERTIFICATE-----
MIIDCTCCAfGgAwIBAgIUbEz52reYuYYb26TfVwBpyW3YACUwDQYJKoZIhvcNAQEL
BQAwFDESMBAGA1UEAwwJbG9jYWxob3N0MB4XDTI2MDMwNzEzNTYwNFoXDTM2MDMw
NDEzNTYwNFowFDESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEF
MIIDcTCCAlmgAwIBAgIUNbyFd8r04QXc3yRecFjSqlJd2JkwDQYJKoZIhvcNAQEL
BQAwFDESMBAGA1UEAwwJbG9jYWxob3N0MB4XDTI2MDgyMjE3NTYxMVoXDTM2MDgx
OTE3NTYxMVowFDESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEF
AAOCAQ8AMIIBCgKCAQEAtJGyejZirwk/Yh5v0VwTY7YLBn+zLmHTcmkZeSiSwIUb
P6y8vRigFoQHKSrqaS9WB49EXpuxwFTzxY0zPDjg/boJEVaPp+ct1YxS7DY93zQo
0CSZCG/PYsw2SeXpBE93/UCajDJp3vHZXPi2tuT/zL/+dy8Si/r+ln9W8YiNINJm
0Y2AnHgSoFDAt6sZY4B6R/FsHY3oeYlKIxIJIHZvwFpY4o1/Mr1Q8ZbfsGONEFGk
Fsp/xB9FVFFNlM5mf3rNoRHfXZb6QykHMW2P9nXEx2cnG57xLaHhZAEzrilQ6/6G
sI3ypxTaQCQinyz/l6yeG+uBbe4slXPHty6ue1RYeQIDAQABo1MwUTAdBgNVHQ4E
FgQU+unU067fqVnaWvCOXgh2TIF55TUwHwYDVR0jBBgwFoAU+unU067fqVnaWvCO
Xgh2TIF55TUwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAalzP
zEpDH1858MTdbLf21D08DsW2BxXiZ2KsFVhE+UW4+utfGdi4s3qXbu2C4H4A4us7
rmUYAXLZW9uZumV5yy/CfXbw3E9vy/kKztH6qNVaMfmEZNa4aNcCKziwef+/3x7e
zI6o5pyw3ffhw9c8QIqD7ULBKLHdBKvE+NaTAzQNKWJoDDPd1HdeLkIzz4nm0xPR
Zc8xAhIfOlniYzZ+y3NpCd7kOhfpYwMQY8mjP7cLYIQsoS2gD9reYxs2dvp/T8Y+
skU1doO8r4ryU/wR60XXQs4ihykA8z/QUxqCgm8q4YPl8sKHUKjN9+fc0QRQCbKR
g6nb97XFdZV9IZqtqQ==
sI3ypxTaQCQinyz/l6yeG+uBbe4slXPHty6ue1RYeQIDAQABo4G6MIG3MB0GA1Ud
DgQWBBT66dTTrt+pWdpa8I5eCHZMgXnlNTAfBgNVHSMEGDAWgBT66dTTrt+pWdpa
8I5eCHZMgXnlNTAPBgNVHRMBAf8EBTADAQH/MD8GA1UdEQQ4MDaCCWxvY2FsaG9z
dIILKi5sb2NhbGhvc3SHBH8AAAGHBAAAAACHEAAAAAAAAAAAAAAAAAAAAAEwDgYD
VR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBCwUA
A4IBAQBS/+X7IblIBZD9GlG84qs24rUCptqcgER0mMEtYNuyqGsnjg0nIRGz0+wG
Aw89cWe8uNOt7Xj6mUMufyzlAUJm+yNsHyDd1PY2iX9yQ92FBBQMRwMa819IGjJH
2kLOXzOe16gzQtYFmqOq1j01wwreop9OwR7kf96/PgWujHFr1KuXMXnjFpf8t6Rg
4HDCcCNhZ05aBB0UfaZnig5mQr+ZWFoCiNDK8MB6Iig6ugNUxO73AezIiNSKt4x0
vMhn1uGkC7CqIly2Djyx4IB5lD2EfGYt+zUmiuhZJwoMf9CWlS4DuE44qyBzae/U
qrKHULMoZOMrpG2YSiiCW4lYslEu
-----END CERTIFICATE-----