Skip to content

Instantly share code, notes, and snippets.

@akihiro
Created April 20, 2022 15:17
Show Gist options
  • Save akihiro/753e31542919a9f70cd9dedecfabb811 to your computer and use it in GitHub Desktop.
Save akihiro/753e31542919a9f70cd9dedecfabb811 to your computer and use it in GitHub Desktop.
Temporary CA and localhost certificate script
#!/bin/bash
san="DNS:localhost, DNS:localhost.localdomain, IP:127.0.0.1, DNS:app, DNS:app.localdomain"
date=$(date -uI)
openssl genpkey -out tempca.key -outform PEM -algorithm RSA
openssl req -out tempca.csr -key tempca.key -subj "/CN=TempCA$date" -new
openssl x509 -req -days 366 -signkey tempca.key -in tempca.csr -outform der -out tempca.crt
openssl genpkey -out localhost.key -algorithm EC -pkeyopt "ec_paramgen_curve:prime256v1"
openssl req -new -sha256 -key localhost.key -subj "/CN=localhost" -outform pem -out localhost.csr
openssl x509 -req -days 365 -CAform der -CA tempca.crt -CAkey tempca.key -set_serial 01 -in localhost.csr -out localhost.crt -extfile <(echo "subjectAltName = $san")
dd if=/dev/urandom count=1 bs=4096 of=tempca.key
rm -f -- localhost.csr tempca.key tempca.csr
-----BEGIN CERTIFICATE-----
MIICKjCCARKgAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDDBBUZW1w
Q0EyMDIyLTA0LTIwMB4XDTIyMDQyMDE1MTQwNloXDTIzMDQyMDE1MTQwNlowFDES
MBAGA1UEAwwJbG9jYWxob3N0MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEBXIM
kE7/GxJ9gqizWr4x0HK5tTI+d3nun9FBS8PUVy/s663a8e5WwTyXuljjTED/MtXt
FlosgDqlPQ9b5F8YqKNLMEkwRwYDVR0RBEAwPoIJbG9jYWxob3N0ghVsb2NhbGhv
c3QubG9jYWxkb21haW6HBH8AAAGCA2FwcIIPYXBwLmxvY2FsZG9tYWluMA0GCSqG
SIb3DQEBCwUAA4IBAQBv0MQv0Twmk/vXLLFME3glOgcQhOMGZFGIUgZlw1suReKS
tqEzOAu26oMe8RRS35LDlmlgIInBm3cmQrnTW7jt+H0DQPvKIsS7cs0Xhy4z/TL5
6msz/yQBJM6yzHMRjB8cLMUgj3b2aNQSgcYPRxGhnkXRXnhRBYFogFbwcDUtlIIN
7Kv95sRYXf3Sb0CZdGGEMrRrDfKXy3D8jDPmrwwSpeFOxiPfxxZPHirKcTiov/kG
6WH19LGrvL/etgWYd75zQxOiERbRMYuMu/6wv1kLXBJtPo7qE8/oS0uSMGXocrW1
mu+tD4AKsPLd3Rsj5xk/15l8Zw04P0OTMnYg0fyj
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgTwqXJcgTGZ7xAiV3
CnyJxI+tITPKBlffu+XB/afjYSyhRANCAAQFcgyQTv8bEn2CqLNavjHQcrm1Mj53
ee6f0UFLw9RXL+zrrdrx7lbBPJe6WONMQP8y1e0WWiyAOqU9D1vkXxio
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIICvTCCAaUCFAt/MgnHry/kBhE2PBD0LH1BZSxMMA0GCSqGSIb3DQEBCwUAMBsx
GTAXBgNVBAMMEFRlbXBDQTIwMjItMDQtMjAwHhcNMjIwNDIwMTUxNDA2WhcNMjMw
NDIxMTUxNDA2WjAbMRkwFwYDVQQDDBBUZW1wQ0EyMDIyLTA0LTIwMIIBIjANBgkq
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwB80bmWU5iCuBLfUqrubn2NMEp0knG5g
sIn/ozBjfiIn6nwa8oNExUp6y3xwlMn/zDmEEKsGez5emHq2hpMXMI4QQ/NvRYwl
s5pDy0ecn8KmKV8KeaduvkYQaPL7OhrCM/2R7jITzWh7LPATebIKYmR/WO+O+BvD
OQlWIZSadEmKhpwJmXN4SYK5YONwftYmWig0OXTvitWuCB8NkQEC24pLTwbRsVAk
stZTjtDi+oBRBKe5nFI0zQ34j0nPH+WSsHr84qxrWh0rSubrEDdDeeVX6hIQuqBO
MY1WN5DrWOZw8eCXUtsArZlFPSvyZwQPn2WcK6Q2czgFo1Us+iyhyQIDAQABMA0G
CSqGSIb3DQEBCwUAA4IBAQCRiR+I8Gym1S7p7K7GaSUraL3cYDTq8MKO1BZjzegN
wVGASRLGm+SNfUwG2vdgVfsxRx0NJlEpbN147Y3kXYwpAh9OxcPDHE/1lhawTb1+
xpV1OimzdkVW86c7oSIKDPkp6L6gyVMQpslNLgz7n4+9J8dCFCZcOg/DaeadH7xL
S2rFqLm3uylUDKQAamVh/hvTn99VDpCNM1KTdNWqvE4dmle7P+rj9NCzZJXOJU87
j3vBtO3l8UTQZ20+SqE9POtosp6tm3rjeEIEQuZtCZsXGRDC+/wxCltsxKp03bmm
cETD8RnyCbFDRKpRBo44YhU4h+9+5uM7SBD2ad7vJHUC
-----END CERTIFICATE-----
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment