generate_test_certs.sh 1.4 KB

123456789101112131415161718192021222324252627282930313233
  1. #!/bin/sh
  2. # https://www.postgresql.org/docs/current/ssl-tcp.html#SSL-CERTIFICATE-CREATION
  3. DATADIR=test/data
  4. CA_SUBJ="/CN=epgsql CA"
  5. CLIENT_SUBJ="/CN=epgsql_test_cert"
  6. SERVER_SUBJ="/CN=epgsql server"
  7. set -x
  8. # generate root key
  9. openssl genrsa -out ${DATADIR}/root.key 2048
  10. # generate root cert
  11. openssl req -new -x509 -text -days 3650 -key ${DATADIR}/root.key -out ${DATADIR}/root.crt -subj "$CA_SUBJ"
  12. # generate server key
  13. openssl genrsa -out ${DATADIR}/server.key 2048
  14. # generate server signature request
  15. openssl req -new -key ${DATADIR}/server.key -out ${DATADIR}/server.csr -subj "$SERVER_SUBJ"
  16. # create signed server cert
  17. openssl x509 -req -text -days 3650 -in ${DATADIR}/server.csr -CA ${DATADIR}/root.crt -CAkey ${DATADIR}/root.key -CAcreateserial -out ${DATADIR}/server.crt
  18. # generate client key
  19. openssl genrsa -out ${DATADIR}/client.key 2048
  20. # generate client signature request
  21. openssl req -new -key ${DATADIR}/client.key -out ${DATADIR}/client.csr -subj "$CLIENT_SUBJ"
  22. # create signed client cert
  23. openssl x509 -req -text -days 3650 -in ${DATADIR}/client.csr -CA ${DATADIR}/root.crt -CAkey ${DATADIR}/root.key -CAcreateserial -out ${DATADIR}/client.crt
  24. # generate bad client key and cert
  25. openssl genrsa -out ${DATADIR}/bad-client.key 2048
  26. openssl req -new -x509 -text -days 3650 -key ${DATADIR}/bad-client.key -out ${DATADIR}/bad-client.crt -subj "$CLIENT_SUBJ"
  27. rm ${DATADIR}/*.{csr,srl}