summaryrefslogtreecommitdiff
path: root/INSTALL
diff options
context:
space:
mode:
Diffstat (limited to 'INSTALL')
-rw-r--r--INSTALL123
1 files changed, 123 insertions, 0 deletions
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..5630cf6
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,123 @@
+Installation supplements
+------------------------
+
+Caution: You need to have fehQlibs installed!
+
+Within the ./src directory you find some conf-* files for your adjustments:
+
+1. Customization
+- conf-man (man page target) => /usr/share/man
+
+2. Compilation - files are autogenerated
+- conf-cc (don't need to be touched)
+- conf-ccperl (no adjustments required)
+- conf-ldperl (no adjustments required)
+
+Note: The current version detects the AMD64 environment
+and the possible support for dynamic load libraries.
+
+3. Installation dependencies & default - autogenerated
+- conf-qlibs (the fehQlibs install directory; default: /usr/local/qlibs)
+- conf-perl (no adjustments required)
+- conf-ssl (default; add path to inlcude alternative or additional openssl header file)
+- conf-ssllib (default; the cryto libs to include)
+
+ Note: If you installed OpenSSL 1.1.1b at /usr/local customizations are included as sample.
+
+4. Certificate and key file handling -- these are parms declared for each server; thus may stay empty/untouched.
+ Default values MAY be provided as:
+- conf-cafile
+- conf-ccafile
+- conf-certfile
+- conf-certchainfile
+- conf-ciphers (a current sample is provided, but not active)
+- conf-dhfile (you may use the 'dh2048.pem' in ucspi-ssl's ./etc dir)
+- conf-keyfile
+
+5. Installation procedure
+ Usually, you just install the package with
+
+- package/install
+
+or -- in case the Perl install failes --
+
+- package/install base
+(- package/man)
+
+6. Testing
+- package/rts -- or --
+- package/rts base (if Perl is not installed/working).
+
+ The etc/ directory includes some X.509 certs and keyfiles
+ for testing. Have a look at those !
+
+7. ucspi-tcp dependencies
+ The vanilla ucspi-tcp-0.88 package from Dan Bernstein does not support
+ building 'tcprules' with CIDR support.
+
+ Download and install 'ucspi-tcp6' from
+ http://www.fehcom.de/ipnet/ucspi-tcp6.html.
+
+8. Compatibility
+ This version has been successfully tested against:
+
+- OpenSSL 1.0.2j, 1.1.0c, 1.1.1b-s, 1.1.1t,
+ 3.0.0, 3.0.7, 3.1.0, 3.1.3, 3.2.0-alpha2
+- LibreSSL 2.5.4, 2.6.0, 2.7.0, 2.9.1
+ 3.6.0, 3.7.0, 3.7.2
+
+ Other intermittend releases are expected to work as well.
+
+ You can sucessfully use ucspi-ssl with 'foreign' *SSL installations.
+ Apart from the header files used open compilation, the execution
+ requires a tailored LD_LIBRARY_PATH pointing to the *SSL libs.
+ This can be done in the run script calling ie. sslserver together
+ with the application. Otherwise, the ssl* modules will always
+ use the default libraries; which may not work.
+ See src/rts.it for a sample given LibreSSL.
+
+
+9. LibreSSL
+ LibreSSL has has different understanding of
+
+- how to work with CIPHER_SUITES and
+- how to use the 'libssl' and 'libcrypto'.
+
+ libssl and libcrypto are enumerated (eg. libssl.so.52).
+ In case you are building ucspi-ssl based on static libs,
+ you need to do the following in the LibreSSL dir:
+
+- ln -s ssl/.libs/libssl.a .
+- ln -s crypto/.libs/libcrypto.a .
+
+10. OpenSSL 3.0/3.1/3.2
+ OpenSSL have changed their APIs significantly.
+ The current ucspi-ssl includes deprecated calls:
+ - RSA_new(), RSA_generate_key_ex(), RSA_free()
+ - PEM_read_bio_DHparams(), EC_KEY_new_by_curve_name(), EC_KEY_free()
+
+ In case you install openssl-3.x.y, you not only need to
+ - modify conf-ssl and conf-ssllib
+ but also to inlude libssl.so.3 in your library path:
+ (1) export LD_LIBRARY_PATH=<path>/opensssl-3.x.y
+ (2) include that path to your standard lib path or
+ (3) copy libssl.so.3 to your standard lib path.
+
+ A check would show the statically linked OpenSSL libs like this:
+
+ $ export LD_LIBRARY_PATH=/home/ucspi/_SSL/openssl-3.0.7
+
+ $ ldd sslserver
+
+ sslserver:
+ libssl.so.3 => /home/ucspi/_SSL/openssl-3.0.7/libssl.so.3 (0x800260000)
+ libcrypto.so.3 => /home/ucspi/_SSL/openssl-3.0.7/libcrypto.so.3 (0x80030b000)
+ libc.so.7 => /lib/libc.so.7 (0x800745000)
+ libthr.so.3 => /lib/libthr.so.3 (0x800b4f000)
+
+ Verify everything is working while perfoming the tests:
+
+- package/rts !!
+
+Erwin Hoffmann, October 2023
+