]> git.ipfire.org Git - thirdparty/haproxy.git/commit
MINOR: ssl/cli: rework 'set ssl cert' as 'set/commit'
authorWilliam Lallemand <wlallemand@haproxy.com>
Tue, 29 Oct 2019 22:48:19 +0000 (23:48 +0100)
committerWilliam Lallemand <wlallemand@haproxy.org>
Wed, 30 Oct 2019 16:01:07 +0000 (17:01 +0100)
commitbc6ca7ccaa72bca5b42388c0f9013a11e21d5a35
tree0a21617afea0ee6628249e68c37a6bfe473b1896
parent0fec3ab7bf114e69cde6d6bafac282b90535221d
MINOR: ssl/cli: rework 'set ssl cert' as 'set/commit'

This patch splits the 'set ssl cert' CLI command into 2 commands.

The previous way of updating the certificate on the CLI was limited with
the bundles. It was only able to apply one of the tree part of the
certificate during an update, which mean that we needed 3 updates to
update a full 3 certs bundle.

It was also not possible to apply atomically several part of a
certificate with the ability to rollback on error. (For example applying
a .pem, then a .ocsp, then a .sctl)

The command 'set ssl cert' will now duplicate the certificate (or
bundle) and update it in a temporary transaction..

The second command 'commit ssl cert' will commit all the changes made
during the transaction for the certificate.

This commit breaks the ability to update a certificate which was used as
a unique file and as a bundle in the HAProxy configuration. This way of
using the certificates wasn't making any sense.

Example:

// For a bundle:

$ echo -e "set ssl cert localhost.pem.rsa <<\n$(cat kikyo.pem.rsa)\n" | socat /tmp/sock1 -
Transaction created for certificate localhost.pem!

$ echo -e "set ssl cert localhost.pem.dsa <<\n$(cat kikyo.pem.dsa)\n" | socat /tmp/sock1 -
Transaction updated for certificate localhost.pem!

$ echo -e "set ssl cert localhost.pem.ecdsa <<\n$(cat kikyo.pem.ecdsa)\n" | socat /tmp/sock1 -
Transaction updated for certificate localhost.pem!

$ echo "commit ssl cert localhost.pem" | socat /tmp/sock1 -
Committing localhost.pem.
Success!
include/types/applet.h
src/ssl_sock.c