mirror of https://github.com/restic/restic.git
Merge pull request #4384 from arjunajesh/issue#1926
certificates can be passed through env vars
This commit is contained in:
commit
7e2be9e081
|
@ -0,0 +1,8 @@
|
||||||
|
Enhancement: Certificates can be passed through environment variables
|
||||||
|
|
||||||
|
Restic will now read the paths to the certificates from the environment
|
||||||
|
variables `RESTIC_CACERT` or `RESTIC_TLS_CLIENT_CERT` if `--cacert` or
|
||||||
|
`--tls-client-cert` are not specified.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/1926
|
||||||
|
https://github.com/restic/restic/pull/4384
|
|
@ -134,8 +134,8 @@ func init() {
|
||||||
f.BoolVarP(&globalOptions.JSON, "json", "", false, "set output mode to JSON for commands that support it")
|
f.BoolVarP(&globalOptions.JSON, "json", "", false, "set output mode to JSON for commands that support it")
|
||||||
f.StringVar(&globalOptions.CacheDir, "cache-dir", "", "set the cache `directory`. (default: use system default cache directory)")
|
f.StringVar(&globalOptions.CacheDir, "cache-dir", "", "set the cache `directory`. (default: use system default cache directory)")
|
||||||
f.BoolVar(&globalOptions.NoCache, "no-cache", false, "do not use a local cache")
|
f.BoolVar(&globalOptions.NoCache, "no-cache", false, "do not use a local cache")
|
||||||
f.StringSliceVar(&globalOptions.RootCertFilenames, "cacert", nil, "`file` to load root certificates from (default: use system certificates)")
|
f.StringSliceVar(&globalOptions.RootCertFilenames, "cacert", nil, "`file` to load root certificates from (default: use system certificates or $RESTIC_CACERT)")
|
||||||
f.StringVar(&globalOptions.TLSClientCertKeyFilename, "tls-client-cert", "", "path to a `file` containing PEM encoded TLS client certificate and private key")
|
f.StringVar(&globalOptions.TLSClientCertKeyFilename, "tls-client-cert", "", "path to a `file` containing PEM encoded TLS client certificate and private key (default: $RESTIC_TLS_CLIENT_CERT)")
|
||||||
f.BoolVar(&globalOptions.InsecureTLS, "insecure-tls", false, "skip TLS certificate verification when connecting to the repository (insecure)")
|
f.BoolVar(&globalOptions.InsecureTLS, "insecure-tls", false, "skip TLS certificate verification when connecting to the repository (insecure)")
|
||||||
f.BoolVar(&globalOptions.CleanupCache, "cleanup-cache", false, "auto remove old cache directories")
|
f.BoolVar(&globalOptions.CleanupCache, "cleanup-cache", false, "auto remove old cache directories")
|
||||||
f.Var(&globalOptions.Compression, "compression", "compression mode (only available for repository format version 2), one of (auto|off|max) (default: $RESTIC_COMPRESSION)")
|
f.Var(&globalOptions.Compression, "compression", "compression mode (only available for repository format version 2), one of (auto|off|max) (default: $RESTIC_COMPRESSION)")
|
||||||
|
@ -151,6 +151,8 @@ func init() {
|
||||||
globalOptions.PasswordFile = os.Getenv("RESTIC_PASSWORD_FILE")
|
globalOptions.PasswordFile = os.Getenv("RESTIC_PASSWORD_FILE")
|
||||||
globalOptions.KeyHint = os.Getenv("RESTIC_KEY_HINT")
|
globalOptions.KeyHint = os.Getenv("RESTIC_KEY_HINT")
|
||||||
globalOptions.PasswordCommand = os.Getenv("RESTIC_PASSWORD_COMMAND")
|
globalOptions.PasswordCommand = os.Getenv("RESTIC_PASSWORD_COMMAND")
|
||||||
|
globalOptions.RootCertFilenames = strings.Split(os.Getenv("RESTIC_CACERT"), ",")
|
||||||
|
globalOptions.TLSClientCertKeyFilename = os.Getenv("RESTIC_TLS_CLIENT_CERT")
|
||||||
comp := os.Getenv("RESTIC_COMPRESSION")
|
comp := os.Getenv("RESTIC_COMPRESSION")
|
||||||
if comp != "" {
|
if comp != "" {
|
||||||
// ignore error as there's no good way to handle it
|
// ignore error as there's no good way to handle it
|
||||||
|
|
|
@ -567,6 +567,8 @@ environment variables. The following lists these environment variables:
|
||||||
RESTIC_PASSWORD The actual password for the repository
|
RESTIC_PASSWORD The actual password for the repository
|
||||||
RESTIC_PASSWORD_COMMAND Command printing the password for the repository to stdout
|
RESTIC_PASSWORD_COMMAND Command printing the password for the repository to stdout
|
||||||
RESTIC_KEY_HINT ID of key to try decrypting first, before other keys
|
RESTIC_KEY_HINT ID of key to try decrypting first, before other keys
|
||||||
|
RESTIC_CACERT Location(s) of certificate file(s), comma separated if multiple (replaces --cacert)
|
||||||
|
RESTIC_TLS_CLIENT_CERT Location of TLS client certificate and private key (replaces --tls-client-cert)
|
||||||
RESTIC_CACHE_DIR Location of the cache directory
|
RESTIC_CACHE_DIR Location of the cache directory
|
||||||
RESTIC_COMPRESSION Compression mode (only available for repository format version 2)
|
RESTIC_COMPRESSION Compression mode (only available for repository format version 2)
|
||||||
RESTIC_PROGRESS_FPS Frames per second by which the progress bar is updated
|
RESTIC_PROGRESS_FPS Frames per second by which the progress bar is updated
|
||||||
|
|
Loading…
Reference in New Issue