1834 Commits

Author SHA1 Message Date
Richard T Bonhomme
1d0ecaf17b
New function: validate_default_vars()
Check that sourcing default pki/vars has NOT changed EASYRSA or EASYRSA_PKI.
This will be resolved in v3.2.0 - See #comment for details.

Refactor select_vars():
To: single if/elif/else/fi.
From: separate if/fi statements.
Always set EASYRSA_VARS_FILE to the used vars-file.
(Required for 'help' status)

Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-24 19:20:09 +01:00
Richard T Bonhomme
dd702802c1
Replace vars_setup with select_vars, source_vars and default_vars
vars_setup was trying to do more work than only setting up vars.
These tasks have been broken down as follows:

select_vars:
* Choose only ONE vars file to source by priority specified in Advanced.md
* Apply restrictions to default vars changing EASYRSA or EASYRSA_PKI.

source_vars:
* Verify and source a vars file.

default_vars:
* Set all default values as expected.

Note: Also disable use of vars_setup.

Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-24 17:02:59 +01:00
Richard T Bonhomme
ecd65065e3
Advanced.md: Correct auto-load order and Remove program location
Correct auto-load order:
The previous order was to search the default PKI before EASYRSA.
Change: EASYRSA is moved to a higher priority than a default PKI.

Remove 'program location' as a valid target for auto-loading vars.
Keeping writable data files in the same folder as executable code
is not necessary.  If it is required then use of other options is
preferred. eg: --vars=<FILE> or $EASYRSA

Add additional information regarding use of default PKI.
Add section to advise the preferred use of --pki over --vars.

Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-24 16:30:43 +01:00
Richard T Bonhomme
060299f3df
Merge branch 'TinCanTech-improve-vars-auto-load'
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-21 23:30:07 +01:00
Richard T Bonhomme
49ffffc6be
Merge branch 'improve-vars-auto-load' of ssh://github.com/TinCanTech/easy-rsa into TinCanTech-improve-vars-auto-load
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-21 23:29:32 +01:00
Richard T Bonhomme
ebbb51def7
vars_setup: Add advice to "Conflicting vars files" error message
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-21 23:25:19 +01:00
Richard T Bonhomme
de3d484c67
Remove EASYRSA and EASYRSA_PKI from built-in vars file generation
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-21 15:22:12 +01:00
Richard T Bonhomme
3b4b5f37c7
Ignore conflicting vars files for commands which do not require vars
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-20 23:37:14 +01:00
Richard T Bonhomme
2720fc103a
Remove useless option --no-safe-ssl
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-20 21:49:09 +01:00
Richard T Bonhomme
f68e5d4c2c
ChangeLog: gen-crl: preserve existing crl.pem ownership+mode
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-20 21:35:28 +01:00
Richard T Bonhomme
f426149d90
Merge branch 'Tabiskabis-gen_crl-preserve-permissions'
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-20 21:22:32 +01:00
Richard T Bonhomme
057fba01e8
Merge branch 'gen_crl-preserve-permissions' of ssh://github.com/Tabiskabis/easy-rsa into Tabiskabis-gen_crl-preserve-permissions
Amendments:
* Remove trailing space.
* Catch error on update.

Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-20 21:19:04 +01:00
Richard T Bonhomme
0f1064ef00
Rename option --pki-dir to --pki but continue support for --pki-dir
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-20 10:52:12 +01:00
Richard T Bonhomme
7b38d99b4c
vars: Forbid auto-loaded "$EASYRSA_PKI/vars" from changing the PKI
If a vars file in the PKI tries to change the expected PKI then fail.

Allow vars file in the working directory to change the PKI.

Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-19 03:21:25 +01:00
Richard T Bonhomme
f47b491346
vars: Remove program directory as a valid "vars auto-load" candidate
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-19 01:59:39 +01:00
Richard T Bonhomme
8d7e017066
vars: Improve auto-load logic
The main changes made are:
* If EASYRSA is set then only allow default vars file. No auto-load
* If EASYRSA_PKI is set then allow also EASYRSA_PKI/vars. Use auto-load.

This is something like "The Three Laws"; vars auto-load is unnecassary
and should be replaced by a single default vars file. However, here is
the latest version:

1. The DEFAULT vars file is in the working directory: ./vars
2. Using --vars=<FILE>, takes priority ALWAYS. NO auto-load!
3. Using --pki-dir=<DIR>, allows "$EASYRSA_PKI/vars". Use auto-load!

Note:
A user set PKI can auto-load a default vars file in the PKI, however,
that can also conflict with a default ./vars file.

4. ERROR, if vars auto-load finds more than one VIABLE vars file.

Viable vars files and conflicts:
1. "$PWD/vars" - Can conflict.
2. "$PWD/pki/vars" - Can conflict.
3. "$EASYRSA/vars" - User defined EASYRSA, no conflict.
4. "$EASYRSA_PKI/vars" - User defined EASYRSA_PKI, can conflict.

This is achieved by making the following changes:

Prioritise user-set EASYRSA to force "$EASYRSA/vars" ONLY.
No auto-load.

Expand assigning EASYRSA_PKI/vars to test for user-set PKI or default PKI.
Use auto-load.

Remove unused code and improve comments.

Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-19 01:16:12 +01:00
Richard T Bonhomme
e6b8e62c92
ChangeLog: Minor version correction for v3.1.7
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-17 21:31:42 +01:00
Richard T Bonhomme
a409867e84
Merge branch 'TinCanTech-make-vars'
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-17 21:05:27 +01:00
Richard T Bonhomme
582aadeea7
Merge branch 'make-vars' of ssh://github.com/TinCanTech/easy-rsa into TinCanTech-make-vars
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-17 21:04:58 +01:00
Richard T Bonhomme
e91fc304c4
Ignore shellcheck warning for PATH when used with sourcing vars
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-17 20:52:38 +01:00
Richard T Bonhomme
fe06e24b5d
ChangeLog: New command: make-vars - Print vars.example (here-doc) to stdout
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-17 20:44:55 +01:00
Richard T Bonhomme
2243edb3fe
New command: make-vars - Print vars.example (here-doc) to stdout
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-17 20:40:37 +01:00
Richard T Bonhomme
7f3c35002d
Merge branch 'TinCanTech-expand-help'
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-17 20:29:08 +01:00
Richard T Bonhomme
34c4d2489c
Merge branch 'expand-help' of ssh://github.com/TinCanTech/easy-rsa into TinCanTech-expand-help
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-17 20:28:38 +01:00
Richard T Bonhomme
84a5b5d9d7
Expand help to include undocumented commands
Usage: 'easyrsa help more'

Allow default-san to find requests in pki/reqs folder.

Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-17 20:23:16 +01:00
Richard T Bonhomme
ced2bc9190
Merge branch 'TinCanTech-fix-show-expire-cn-fname-mismatch'
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-17 17:23:46 +01:00
Richard T Bonhomme
0b7b2b85f9
Merge branch 'fix-show-expire-cn-fname-mismatch' of ssh://github.com/TinCanTech/easy-rsa into TinCanTech-fix-show-expire-cn-fname-mismatch
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-17 17:23:12 +01:00
Richard T Bonhomme
72588ac8a4
ChangeLog: show-expire: Calculate cert. expire seconds from DB date
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-17 17:19:18 +01:00
Richard T Bonhomme
fde4454665
show-expire: Calculate certificate expire seconds from Database date
When a certificate CN is not the same as the file-name then show-expire
must calculate the expiry date, in seconds, from the database field.

This is done by functions:
* db_date_to_iso_8601_date()
  Translate from database format to ISO_8601 date format.
* iso_8601_timestamp_to_seconds()
  Translate from ISO_86012 date format to time-stamp in seconds.

Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-17 17:04:30 +01:00
Richard T Bonhomme
51f55d9501
Merge branch 'TinCanTech-unit-test-actions-checkout-v4'
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-16 13:56:55 +01:00
Richard T Bonhomme
d9eaba0ab9
Merge branch 'unit-test-actions-checkout-v4' of ssh://github.com/TinCanTech/easy-rsa into TinCanTech-unit-test-actions-checkout-v4
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-16 13:56:08 +01:00
Richard T Bonhomme
79cd62c4d7
Merge branch 'TinCanTech-only-support-default-cwd-vars'
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-15 13:04:04 +01:00
Richard T Bonhomme
301534da87
Merge branch 'only-support-default-cwd-vars' of ssh://github.com/TinCanTech/easy-rsa into TinCanTech-only-support-default-cwd-vars
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-15 13:02:16 +01:00
Richard T Bonhomme
00dcf5628c
ChangeLog: Forbid "default vars in the default PKI" for all commands
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-14 23:49:55 +01:00
Richard T Bonhomme
5a24fa7815
vars_setup(): When sourcing 'vars' restrict PATH to './'
If '--vars=vars' is used, without specifying a path to 'vars', then
sourcing 'vars' fails to find './vars'. POSIX '.' searches the PATH
when the file-name does not contain a slash '/'. [man dot(1p)]

Since EasyRSA expects the 'vars' file to be within the current working
directory, setting 'PATH=./' forces '.' to search ONLY './'.

Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-14 23:16:40 +01:00
Richard T Bonhomme
4095e334cd
vars_setup(): User message severity and verbosity, reduce noise
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-14 20:11:40 +01:00
Richard T Bonhomme
6de343fca3
vars_setup: Prohibit specifying vars as a directory. eg: ./
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-14 12:13:32 +01:00
Richard T Bonhomme
232a28d959
user_error(): Exit with known error directly to cleanup()
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-14 11:51:12 +01:00
Richard T Bonhomme
7684b975ca
init-pki: Remove SECOND confirmation promoting use of option 'soft'
The option 'soft' for 'init-pki' has been found to be flawed, because
keeping the 'vars' file in the PKI is now forbidden. The 'soft' option
will be removed in due course.

Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-14 11:08:44 +01:00
Richard T Bonhomme
eedb81e0e0
init-pki: Never create a vars.example and vars file in the pki
For 'init-pki, disable creating vars.example, which also disables
creating a vars file in the PKI.

Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-14 11:04:15 +01:00
Richard T Bonhomme
660895293b
Forbid "default vars in the default PKI" for all commands
The default 'vars' file MUST be "$PWD/vars", no other file can be default.
In order to enforce that, a default 'pki/vars' file MUST be forbidden.

This patch:
* Disables the recommandation for 'vars' to be moved TO the PKI, './pki/vars.
* Forbids the file called './pki/vars'.
* Forbids multiple 'vars' files
* Recommends ONLY the working directory copy of a 'vars' file.

Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-14 00:28:12 +01:00
Tabis Kabis
342b588a3a
gen-crl: preserve existing crl.pem ownership+mode
Signed-off-by: Tabis Kabis <Tabiskabis@users.noreply.github.com>
2023-09-09 12:17:08 +02:00
Richard T Bonhomme
6fb20395fb
CI: action, checkout v4
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-09-05 01:37:24 +01:00
Richard T Bonhomme
6dac068b7e
Merge branch 'revert-1002-expand-help'
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-08-29 12:07:53 +01:00
Richard T Bonhomme
811e8ad593
Merge branch 'revert-1002-expand-help' of ssh://github.com/Openvpn/easy-rsa into revert-1002-expand-help
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-08-29 12:07:03 +01:00
Richard T Bonhomme
e69ba7dd35
Merge branch 'revert-1001-remove-upgrade23'
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-08-29 12:04:52 +01:00
Richard T Bonhomme
dd650bfbb2
Merge branch 'revert-1001-remove-upgrade23' of ssh://github.com/Openvpn/easy-rsa into revert-1001-remove-upgrade23
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-08-29 12:04:08 +01:00
TinCanTech
b5cc16f910
Revert "Completely Remove Upgrade Functionality" 2023-08-29 11:47:20 +01:00
TinCanTech
d9e0c418c4
Revert "Expand help to include undocumented commands" 2023-08-29 11:46:44 +01:00
Richard T Bonhomme
f03eb74260
Merge branch 'TinCanTech-expand-help'
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2023-08-22 12:55:42 +01:00