1021 Commits

Author SHA1 Message Date
Richard T Bonhomme
85b35cccb8
CI - Do not run Edwards Curve tests for LibreSSL
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-05-09 04:23:49 +01:00
Richard T Bonhomme
3770f565a4
Set macOS github runner to supported macOS version Catalina 10.15
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-05-09 02:06:04 +01:00
Richard T Bonhomme
af4120c50e
CI - Spin up macos-latest runner for op-test.sh
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-05-07 19:18:35 +01:00
Eric Crist
74a79b0c87
Merge pull request #558 from OpenVPN/release/3.0
Merging changes from Release/3.0
2022-05-07 07:13:07 -05:00
Eric F Crist
fc79ff14ed
Correct grep regex for POSIX compatibility
Issue brought up by Michael Gmelin in FreeBSD bug:
  https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=263812

The \d patter is not POSIX, instead :digit: or [0-9] should be used.
Opted for the latter.

Resolves #556 from freebsd/freebsd-ports@8e0b9d2

Signed-off-by: Eric F Crist <ecrist@secure-computing.net>
2022-05-07 07:07:17 -05:00
Eric F Crist
6b803b5a7b
update changelog for patch for #556
Signed-off-by: Eric F Crist <ecrist@secure-computing.net>
2022-05-07 07:05:11 -05:00
Eric F Crist
d428d53a8b
Correct grep regex for POSIX compatibility
Issue brought up by Michael Gmelin in FreeBSD bug:
  https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=263812

The \d patter is not POSIX, instead :digit: or [0-9] should be used.
Opted for the latter.

Resolves #556 from freebsd/freebsd-ports@8e0b9d2

Signed-off-by: Eric F Crist <ecrist@secure-computing.net>
2022-05-07 06:57:56 -05:00
Eric F Crist
a03a839685
Housekeeping: README/gitignore
Update README.md to show release/3.0 branch and add the .DS_Store
file/folder to .gitignore

Signed-off-by: Eric F Crist <ecrist@secure-computing.net>
2022-05-05 19:30:51 -05:00
Eric F Crist
59cddca67d
OpenSSL 3.x doesn't appear to work on Windows 7
Doesn't seem to work - Win7 is EOL and not really worth a lot of time
debugging.  Users should use v3.0.9 of EasyRSA which includes OpenSSL
1.1.1o which should work.

Signed-off-by: Eric F Crist <ecrist@secure-computing.net>
2022-05-05 19:12:59 -05:00
Richard T Bonhomme
7a7302c4b0
Merge branch 'TinCanTech-verify-cert'
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-05-05 20:42:37 +01:00
Richard T Bonhomme
b862799f19 Merge branch 'verify-cert' of ssh://github.com/TinCanTech/easy-rsa into TinCanTech-verify-cert 2022-05-05 20:41:35 +01:00
Richard T Bonhomme
12eecc5d6a
Replace arithmetic number overflow with sensible error detection code
Windows sh.exe cannot multiply two date stamps due to 32bit integer overflow.

Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-05-05 14:58:27 +01:00
Eric F Crist
6e64026d3a
update OpenSSL to 3.0.3
Compiled OpenSSL 3.0.3 from github for both 64 and 32 bit Windows.  Ran
the wop-test.sh script and passed tests:

* Easy-RSA Unit Tests:
* Windows, no OpenSSL-v3
* System SSL enabled
easyrsa-unit-tests.sh version: 2.3.0
* setup unit-test - ok
* shellcheck abandoned
* >>> BEGIN unit tests:
* >>>>>>: sh C:/Users/ecrist/Desktop/3.1.0-64/easy-rsa/easyrsa-unit-tests.sh -v
easyrsa-unit-tests.sh version: 2.3.0
easyrsa-unit-tests.sh source:  localhost
easyrsa source:                C:/Users/ecrist/Desktop/3.1.0-64/easy-rsa/easyrsa3/easyrsa

* EASYRSA_OPENSSL:
  openssl (env)
  OpenSSL 3.0.3 3 May 2022 (Library: OpenSSL 3.0.3 3 May 2022)
EasyRSA Version Information
Version:     ~VER~
Generated:   ~DATE~
SSL Lib:     OpenSSL 3.0.3 3 May 2022 (Library: OpenSSL 3.0.3 3 May 2022)
Git Commit:  ~GITHEAD~
Source Repo: https://github.com/OpenVPN/easy-rsa

Setup .. ok
>>>>> >>>>> Begin easyrsa rsa tests

... Lots of tests here.

<<<<< <<<<< End easyrsa ed tests
easyrsa-unit-tests.sh version: 2.3.0
easyrsa-unit-tests.sh source:  localhost
easyrsa source:                C:/Users/ecrist/Desktop/3.1.0-64/easy-rsa/easyrsa3/easyrsa

* EASYRSA_OPENSSL:
  openssl (env)
  OpenSSL 3.0.3 3 May 2022 (Library: OpenSSL 3.0.3 3 May 2022)

Unit-test: cleanup
Remove temp dir: C:/Users/ecrist/Desktop/3.1.0-64/easy-rsa/easyrsa3/unit tests
Completed Thu May  5 08:28:30 Central Daylight Time 2022 (Total errors: 0)
* OK
* <<< END unit tests:

Signed-off-by: Eric F Crist <ecrist@secure-computing.net>
2022-05-05 08:35:18 -05:00
Eric F Crist
3991ffdb96
call python3 instead of python in build-dist
Not all the places I want to build the distribution symlink python to
the python3 binary (namely macOS) so just call python3 directly.

Signed-off-by: Eric F Crist <ecrist@secure-computing.net>
2022-05-05 08:35:17 -05:00
Richard T Bonhomme
a3dec9576d
Minor improvement to cleanup() - Always detect terminal first
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-05-05 13:39:13 +01:00
Richard T Bonhomme
36543be760
Improve error detection in cert_dates()
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-05-05 13:37:28 +01:00
Richard T Bonhomme
0948e81304
Detect and filter erroneous duplicate "found 'vars' files"
When 'vars' is in the same directory as 'easyrsa' and they are both
in the current working directory, easyrsa would falsely warn about
"conflicting" 'vars' files.

Filter out this false error by checking if '$prog_dir' is './'

Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-05-05 12:37:35 +01:00
Richard T Bonhomme
87e514e3b6
Correct indentation
Follow-up to: 9f0d4bf16d044d5e0d3a8e6b17c5eaa9b1bcbc39

Separate commit for clarity.

Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-05-05 12:33:44 +01:00
Richard T Bonhomme
9f0d4bf16d
Respect '--vars=file'
Changes to how 'vars' is located and sourced omitted the possibility
that the vars file has been declared via '--vars'.

Move the 'fi' to the correct location so that '--vars' is respected.

Closes: #552 (Over-ruled, due to another, unrelated change)

Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-05-05 12:29:07 +01:00
Eric F Crist
ecc7cb72d1
Preparing for v3.0.9 release
This has been an on/off release tag, but we're going to push it out
because there are some that will remain on the v3.0.x branch for a
long time, and OpenSSL 3.x isn't available in all distros/embedded
systems yet (or for a while).

 - Updated OpenSSL for Windows to 1.1.1o
 - Updated ChangeLog for v3.0.9, pulling in most comments for v3.1.0
 - Updated header in easyrsa to point to Github contributors page

Signed-off-by: Eric F Crist <ecrist@secure-computing.net>
2022-05-04 21:29:47 -05:00
Richard T Bonhomme
814fab9bd3
Make cert_dates() '--fix-offset' Windows compatible
date.exe does not support output format '+%s' as input.

Instead, use date.exe "string" not seconds since epoch.

Also, force easyrsa_openssl() 'makesafeconf' to move the the temp-file
to the target file.  Otherwise, Windows users are expected to confirm
over-write, every time.

Also, minor variable name changes, for clarity.

Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-05-04 00:09:18 +01:00
Richard T Bonhomme
3b8f9137b0
Do not declare EASYRSA_FIX_OFFSET, must be set by user only
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-05-03 20:53:45 +01:00
Richard T Bonhomme
7a5212c9a9
Introduce '--fix-offset' for fixed start/end date certificates
The initial idea was to mask the actual certificate creation date.
The reason was to further anonymise user certificates. (YMMV)

There is now a second part to this date "fixing":
* This allows for all certificates to expire on the same day.

Using command option '--fix-offset=nnn', all certificates will be created
* with a 'notBefore' date of January 1st of the current year.
* with a 'notAfter' date of the day-of-year number from '--fix-offset',
  in the final year, as per EASYRSA_CERT_EXPIRE (Default 825 days).
  The default 825 days results in 2 years plus the offset given.

This can also be set in the 'vars' file, for convenience.

The default day-of-year offered is 183; either July 2 or 3 (leap year).

Follow-up to: #550 (Replaces 'nodatetime' with '--fix-offset')

Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-05-03 20:25:00 +01:00
Richard T Bonhomme
8c5ee3df1b
Merge branch 'ValdikSS-startdate-year-v3'
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-05-03 20:16:50 +01:00
Richard T Bonhomme
1620cfe0d1 Merge branch 'startdate-year-v3' of ssh://github.com/ValdikSS/easy-rsa-ipsec into ValdikSS-startdate-year-v3 2022-05-03 20:15:29 +01:00
Richard T Bonhomme
7ee6526b77
Merge branch 'AndersBlomdell-master'
With general code style improvements.

Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-05-03 19:39:54 +01:00
Anders Blomdell
13cc6034e4 Display certificates in UTF8 2022-05-02 17:13:31 +02:00
Richard T Bonhomme
8d1be1c9cf
Only set a temp-dir session name _if_ temp-dir session was created
Also, minor log improvement to op-test.sh

Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-05-01 22:21:20 +01:00
ValdikSS
8458f65016 nodatetime: use CA day of creation for notAfter of issuing certificate 2022-04-30 02:08:11 +03:00
ValdikSS
f77951d058 Set notBefore/notAfter to the beginning of the year
This modification adds "nodatetime" argument to build-client-full
and build-server-full which issues the certificate with notBefore
and notAfter date set to 1 Jan, with difference in the year only.

It could be useful for a VPN service to prevent client and server
certificate generation date and time disclosure.
2022-04-30 00:37:19 +03:00
Richard T Bonhomme
854002ae4d
Verify input file is a valid certificate
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-04-29 21:29:47 +01:00
Richard T Bonhomme
0765921676
Add 'verify' - SSL Verify certificate against CA
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-04-29 20:23:06 +01:00
Richard T Bonhomme
26dd7af541
Add label '%COPY_EXTS%' for --copy-ext feature
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-04-29 14:20:53 +01:00
Richard T Bonhomme
b17499d2ef
Option '--copy-ext' insert "copy_extensions = copy" into config
For '--copy-ext' the "copy_extensions = copy" must be inserted into
the SSL config file, section [defaul_ca]. As with all other insertions,
use the same 'awk' script with a new label '%COPY_EXTS%'.

Closes: #548

Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-04-29 13:57:10 +01:00
Richard T Bonhomme
c4802de368
Improve --subject-alt-name
Add '--san' option alias name and reformat help to include '--san'.

Refactor code for readability.

Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-04-29 12:19:21 +01:00
Richard T Bonhomme
13b2fc36cb
Use a fake function to declare variables for shellcheck 2154
EasyRSA set_var() is not known by shellcheck, so "fake declare"
variables that otherwise incorrectly trigger SC2154.

Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-04-29 00:41:27 +01:00
Richard T Bonhomme
63dd27a98b
Improve/simplify Fatal error: Missing *expected* "$val" to "$opt"
Fatal errors should be precisely coded, not "obfuscated".

Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-04-28 22:47:03 +01:00
Richard T Bonhomme
a3db60f229
Always make a safe SSL config file for LibreSSL
LibreSSL chokes on 'rand' without a config file and dies on the
standard config file.

A common fix would be to redirect error out to '/dev/null' but this
would obviously mask all error messages, which is not satisfactory.

Instead, always make a safe config file before the temporary session
directory and any temp-files are required.

Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-04-28 21:02:16 +01:00
Richard T Bonhomme
5e57887c39
Harden sourcing vars and warn for potential problems
In 'org' mode, fields such as EASYRSA_REQ_ORG can be abused.

If the field contains single quote ('), ampersand (&), back-tick (`),
dollar sign ($) or hash (#) then the result is undefined.

Due to EasyRSA running on Linux and Windows and supporting multiple
SSL Libraries, it is not feasible to support these characters.

Add a check to determine if any unsupported characters are found in
the vars file and issue a warning if they are found.

Add a sub-shell test to source vars.  If the test fails then exit
gracefully, with a specific error message.

Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-04-28 18:52:21 +01:00
Richard T Bonhomme
ecbc6103bc
Move "detect host" to a separate function
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-04-28 18:45:58 +01:00
Richard T Bonhomme
05b969df82
Improve 'revoke-renewed' success message
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-04-28 18:42:01 +01:00
Richard T Bonhomme
c52073422d
Rename $want_init_pki to $no_pki_required (NFC)
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-04-28 16:05:06 +01:00
Richard T Bonhomme
071405b1d5
Use $EASYRSA_DIGEST instead of hard-coded 'digest=-sha256'
Also, remove a duplicate EASYRSA_DIGEST in easyrsa_openssl().

Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-04-28 15:03:49 +01:00
Richard T Bonhomme
fac4abf074
Make inline file failure only a warning
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-04-28 14:25:20 +01:00
Richard T Bonhomme
0248064235
Purge $req_opts from build_full()
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-04-28 14:19:47 +01:00
Richard T Bonhomme
410a3d3286
Purge $opts from sign_req()
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-04-28 13:59:07 +01:00
Richard T Bonhomme
2194c215f3
Purge $opts from gen_req()
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-04-28 13:48:55 +01:00
Richard T Bonhomme
34ad764d99
Use file-name $EASYRSA_ALGO_PARAMS to output test elliptic curve
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-04-28 12:54:44 +01:00
Richard T Bonhomme
71076aa608
Corrections to help text (NFC)
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-04-28 12:52:38 +01:00
Richard T Bonhomme
61182c5fe1
Update help for 'revoke-renewed'
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
2022-04-28 00:33:57 +01:00