Refactor the sslfiles Makefile target for ease of use

Daniel Gustafsson <dgustafsson@postgresql.org>

Commit: b4c4a00eada3c512e819e9163114a5ad1606bc7e
Author: Daniel Gustafsson <dgustafsson@postgresql.org>
Date: 2021-10-19T18:11:42Z
Releases: 15.0
Refactor the sslfiles Makefile target for ease of use

The Makefile handling of certificate and keypairs used for TLS testing
had become quite difficult to work with. Adding a new cert without the
need to regenerate everything was too complicated. This patch refactors
the sslfiles make target such that adding a new certificate requires
only adding a .config file, adding it to the top of the Makefile, and
running make sslfiles.

Improvements:
- Interfile dependencies should be fixed, with the exception of the CRL
  dirs.
- New certificates have serial numbers based on the current time,
  reducing the chance of collision.
- The CA index state is created on demand and cleaned up automatically
  at the end of the Make run.
- *.config files are now self-contained; one certificate needs one
  config file instead of two.
- Duplication is reduced, and along with it some unneeded code (and
  possible copy-paste errors).
- all configuration files underneath the conf/ directory.

The target is moved to its own makefile in order to avoid colliding
with global make settings.

Author: Jacob Champion <pchampion@vmware.com>
Reviewed-by: Michael Paquier <michael@paquier.xyz>
Discussion: https://postgr.es/m/d15a9838344ba090e09fd866abf913584ea19fb7.camel@vmware.com

Files

PathChange+/−
src/test/ssl/conf/cas.config (from src/test/ssl/cas.config) renamed +3 −7
src/test/ssl/conf/client_ca.config (from src/test/ssl/client_ca.config) renamed +5 −0
src/test/ssl/conf/client.config (from src/test/ssl/client.config) renamed +0 −1
src/test/ssl/conf/client-dn.config (from src/test/ssl/client-dn.config) renamed +0 −1
src/test/ssl/conf/client-revoked.config added +13 −0
src/test/ssl/conf/root_ca.config (from src/test/ssl/root_ca.config) renamed +1 −0
src/test/ssl/conf/server_ca.config (from src/test/ssl/server_ca.config) renamed +5 −0
src/test/ssl/conf/server-cn-and-alt-names.config (from src/test/ssl/server-cn-and-alt-names.config) renamed +0 −0
src/test/ssl/conf/server-cn-only.config (from src/test/ssl/server-cn-only.config) renamed +1 −2
src/test/ssl/conf/server-multiple-alt-names.config (from src/test/ssl/server-multiple-alt-names.config) renamed +0 −0
src/test/ssl/conf/server-no-names.config (from src/test/ssl/server-no-names.config) renamed +1 −4
src/test/ssl/conf/server-revoked.config (from src/test/ssl/server-revoked.config) renamed +1 −2
src/test/ssl/conf/server-single-alt-name.config (from src/test/ssl/server-single-alt-name.config) renamed +0 −0
src/test/ssl/Makefile modified +7 −160
src/test/ssl/README modified +3 −1
src/test/ssl/ssl/both-cas-1.crt modified +43 −43
src/test/ssl/ssl/both-cas-2.crt modified +43 −43
src/test/ssl/ssl/client_ca.crt modified +17 −17
src/test/ssl/ssl/client+client_ca.crt modified +33 −32
src/test/ssl/ssl/client.crl modified +9 −9
src/test/ssl/ssl/client-crldir/9bb9e3c3.r0 modified +9 −9
src/test/ssl/ssl/client.crt modified +16 −15
src/test/ssl/ssl/client-dn.crt modified +17 −17
src/test/ssl/ssl/client-revoked.crt modified +16 −15
src/test/ssl/sslfiles.mk added +244 −0
src/test/ssl/ssl/root_ca.crt modified +9 −9
src/test/ssl/ssl/root+client_ca.crt modified +26 −26
src/test/ssl/ssl/root+client.crl modified +17 −17
src/test/ssl/ssl/root+client-crldir/9bb9e3c3.r0 modified +9 −9
src/test/ssl/ssl/root+client-crldir/a3d11bff.r0 modified +8 −8
src/test/ssl/ssl/root.crl modified +8 −8
src/test/ssl/ssl/root+server_ca.crt modified +26 −26
src/test/ssl/ssl/root+server.crl modified +17 −17
src/test/ssl/ssl/root+server-crldir/a3d11bff.r0 modified +8 −8
src/test/ssl/ssl/root+server-crldir/a836cc2d.r0 modified +9 −9
src/test/ssl/ssl/server_ca.crt modified +17 −17
src/test/ssl/ssl/server-cn-and-alt-names.crt modified +18 −18
src/test/ssl/ssl/server-cn-only.crt modified +17 −16
src/test/ssl/ssl/server.crl modified +9 −9
src/test/ssl/ssl/server-crldir/a836cc2d.r0 modified +9 −9
src/test/ssl/ssl/server-multiple-alt-names.crt modified +18 −18
src/test/ssl/ssl/server-no-names.crt modified +16 −16
src/test/ssl/ssl/server-revoked.crt modified +17 −16
src/test/ssl/ssl/server-single-alt-name.crt modified +17 −17
src/test/ssl/t/001_ssltests.pl modified +16 −1

Discussion