Modern browsers in 2020 will expect to "connect HTTPS" only using TLSv1.2 and TLSv1.3 (this assumes that support for everything from SSLv3 up to and including TLSv1.1 will be removed)
comment: Firefox has been warning for several months (today is 2019-08-25) that one of my servers is preferentially offering connections via TLS-1.0 (the lock icon is closed but is orange). Chrome and IE11 each present a green lock icon.
Publisher | Product Name |
Apache Version |
VAX | Alpha | Itanium | x86-64 | Active | Notes |
---|---|---|---|---|---|---|---|---|
Compaq HP HPE | CSWS-1 | 2.0 | N | Y | Y | N | ? | HPE will exit the OpenVMS support business in 2020 Old CSWS (products, patches, plugins) were free until 2016 Since then patches are available only if you have an HPE support agreement |
VSI | CSWS-2 | 2.4 | N | Y | Y | Y | Y | New CSWS (available with new support agreement) |
Ohio State University | OSU DECthreads | n/a | Y | Y | N | N | N | Product hasn't been supported for more than a decade Can be found on the VMS Freeware packages |
VSM Software Services | WASD HTTPd | n/a | Y | Y | Y | Y | Y | Still actively supported |
Hardware | CPU | Cores | Memory | Network | OS | Software |
---|---|---|---|---|---|---|
rx2800-i2 | Itanium2 | 8 | 64G | IPv4 on 1Gb/s | OpenVMS-8.4 | CSWS/Apache 2.0.xx |
DL385p-gen8 | AMD x86-64 | 24 | 132G | IPv4 on 1Gb/s | CentOS-7.5 | Apache 2.4.xx |
rx2660 | Itanium2 | 8 | 16G | Ipv4 on 1Gb/s | OpenVMS-8.4 | WASD HTTPd 11 |
Unzip
$! DCL script to unzip WASD
$! this is an rx2660 (Itanium2)
$! CSWS/Apache is located on disk dka200 so that's where I'll put WASD
$!
$ define/job yada CSMIS$USER3:[ADMCSM.NEIL._WASD] ! files where downloaded here
$ set default DKA200:[000000] ! move to root of disk dka200
$ unzip yada:WASD1130.zip ! also creates folder [WASD_ROOT}
$ unzip yada:WASD1130-ia64.zip !
$ set default [WASD_ROOT] !
$ unzip yada:WASD_CUP_1130b.ZIP ! do not forget this (or SYSUAF stuff won't work)
$ unzip yada:opensslwasd102r-ia64.zip ! optional
Install (part 1) you need a DEC-C compiler to do perform step 1 so consider starting with step 2
$set default wasd_root:[000000] ! $@install ! ******************* * BUILD PACKAGE * ******************* Package executables must be built. 0. skip this step 1. compiling from source, then linking 2. linking (separate package) object modules Select build method [0]: [...snip...]
Install (part 2) really cool because you have a choice
************************** * SSL TOOLKIT DETECTED * ************************** A supported Secure Sockets Layer (SSL) toolkit has been detected. Those with item numbers are available for building, 'x's are not available. 0. do not build an SSL version 1. OpenSSL (prior to v1.1.0) toolkit x. OpenSSL (v1.1.0 or later) toolkit 2. OpenVMS SSL1 product (HP) (OpenSSL 1.0 and higher) x. WASD OpenSSL package ("x" because download it) x. OpenVMS SSL product (HP) no longer supported (OpenSSL 0.9 and lower) Select item number [2]:
field | current contents | new contents | notes |
---|---|---|---|
[SecureSocket] | disabled | enabled | |
[SSLversion] | TLSvALL | TLSvALL,SSLv3 | my system will require SSLv3 for a time |
[SSLcipherList] | MEDIUM:HIGH | https will not work if this field is BLANK | |
[SSLcert] | dka100:[certificates]name.pem | https will not work if this field is BLANK | |
[SSLkey] | leave this field BLANK | ||
[SSLverifyPeerCAFile] | dka100:[certificates]vendor.crt | this is the vendor's chain file (in PEM format) | |
[Welcome] | INDEX.HTML | INDEX.HTML DEFAULT.HTML |
this is standard this is the name of our Apache home page |
[Http2Protocol] | enable | disable | disable for use with Firefox and Chrome in 2019 |
$ @dka200:[WASD_ROOT.STARTUP]STARTUP.COM
server logs: WASD_ROOT:[LOG_SERVER]
client logs: WASD-ROOT:[LOG]
$ openssl s_client -connect www.server.ext:443 -showcerts
$ openssl s_client -connect kawc4r.on.bell.ca:443 -ssl3 CONNECTED(00000005) 1211764609:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure ... --- no peer certificate available --- No client certificate CA names sent --- SSL handshake has read 7 bytes and written 305 bytes --- New, (NONE), Cipher is (NONE) Secure Renegotiation IS NOT supported Compression: NONE Expansion: NONE No ALPN negotiated SSL-Session: Protocol : TLSv1.2 Cipher : 0000 Session-ID: Session-ID-ctx: Master-Key: Key-Arg : None PSK identity: None PSK identity hint: None SRP username: None Start Time: 1554322235 Timeout : 300 (sec) Verify return code: 0 (ok) ---
$ openssl s_client -connect kawc4r.on.bell.ca:443 -showcerts CONNECTED(00000005) depth=2 C = US, O = "Entrust, Inc.", OU = See www.entrust.net/legal-terms, OU = "(c) 2009 Entrust, Inc. - for authorized use only",2 verify error:num=19:self ... --- Certificate chain 0 s:/C=CA/ST=Ontario/L=Kitchener/O=Bell Canada/CN=kawc96.on.bell.ca i:/C=US/O=Entrust, Inc./OU=See www.entrust.net/legal-terms/OU=(c) 2012 Entrust, Inc. - for ... -----BEGIN CERTIFICATE----- MIIHPDCCBiSgAwIBAgIRAPaL2NZkwkK1AAAAAFDmVrowDQYJKoZIhvcNAQELBQAw [...snip...] TW6QHJa01MG8nTNfTYHEnZ4EbKFN+XjXb5+8+huXIJYO7Mvbpx9Uv78RJQJxn1cj Irl6f6Wu3P59Gn5kpvwHmU4T6llV1jbquKp00G+7JDg= -----END CERTIFICATE----- 1 s:/C=US/O=Entrust, Inc./OU=See www.entrust.net/legal-terms/OU=(c) 2012 Entrust, Inc. - f ... i:/C=US/O=Entrust, Inc./OU=See www.entrust.net/legal-terms/OU=(c) 2009 Entrust, Inc. - fo ... -----BEGIN CERTIFICATE----- MIIFDjCCA/agAwIBAgIMDulMwwAAAABR03eFMA0GCSqGSIb3DQEBCwUAMIG+MQsw [...snip...] exCdtTix9qrKgWRs6PLigVWXUX/hwidQosk8WwBD9lu51aX8/wdQQGcHsFXwt35u Lcw= -----END CERTIFICATE----- 2 s:/C=US/O=Entrust, Inc./OU=See www.entrust.net/legal-terms/OU=(c) 2009 Entrust, Inc. - f ... i:/C=US/O=Entrust, Inc./OU=See www.entrust.net/legal-terms/OU=(c) 2009 Entrust, Inc. - fo ... -----BEGIN CERTIFICATE----- MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBh ... [...snip...] nAuknZoh8/CbCzB428Hch0P+vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmH VHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xOe4pIb4tF9g== -----END CERTIFICATE----- --- Server certificate subject=/C=CA/ST=Ontario/L=Kitchener/O=Bell Canada/CN=kawc96.on.bell.ca issuer=/C=US/O=Ent ... --- No client certificate CA names sent --- SSL handshake has read 4579 bytes and written 623 bytes --- New, TLSv1/SSLv3, Cipher is AES256-GCM-SHA384 Server public key is 2048 bit Secure Renegot ... Compression: NONE Expansion: NONE No ALPN negotiated SSL-Session: Protocol : TLSv1.2 Cipher : AES256-GCM-SHA384 Session-ID: D24A4196DD1C6E36B35B4E85A5985BFA58A7541487A84F9B863926BB45BC249E Session-ID-ctx: Master-Key: 9C14A7397DC7FB7CCF8684A4F05EC8F3F56364491E497B9CADF7FC8550F7A25861F97B12FBA1B7 ... Key-Arg : None PSK identity: None PSK identity hint: None SRP username: None TLS session ticket lifetime hint: 300 (seconds) TLS session ticket: 0000 - 47 b7 de fa 7c f1 cb db-0b 80 3a 58 31 21 c8 84 G...|.....:X1!.. 0010 - 4b 65 6b 8b 49 88 ee 49-5d 3b e0 1f f6 c1 55 81 Kek.I..I];....U. 0020 - ee 7d 01 2e fc 85 e7 e4-c2 b4 4e 1a d0 a4 65 b7 .}........N...e. 0030 - 09 3d 46 05 7e 6c 7c 21-97 df 4a 56 9f aa c7 3e .=F.~l|!..JV...> 0040 - 6b 6d 68 6a c7 81 7e 07-30 70 c8 64 a6 6a 54 f1 kmhj..~.0p.d.jT. 0050 - 23 fb 38 4d d5 dc 83 95-95 fa c9 c5 e2 28 cc 42 #.8M.........(.B 0060 - a6 5b 34 ac ed 80 b0 d6-7e ae de 48 12 22 68 48 .[4.....~..H."hH 0070 - 15 34 ea 1e df fa 76 b3-3c 4b 2e 1d 58 7f 8b e1 .4....v.
#-------------------------------------
# basic stuff (also means we can't use these paths in Apache)
exec /cgi-bin/* /cgi-bin/*
exec+ /cgiplus-bin/* /cgi-bin/*
pass /wasd_root/* /wasd_root/* dir=access dir=wildcard
#-------------------------------------
# for CERN HTTPd compatibility
map /httpd-intenal-icons/* /httpd/-/*
#-------------------------------------
# other
pass /*/-/* /wasd_root/runtime/*/* cache=perm
pass /wasd_root/runtime/* /wasd_root/runtime/*
pass /wasd_root/src/misc/* /wasd_root/src/misc/*
#-------------------------------------
# for access to server admin
pass /httpd/-/admin/
#-------------------------------------
# for Apache compatibility on the Bell-ATS system
set * map=root=/dka200/apache
exec /cgi-bin/* /cgi-bin/*
exec /scripts/* /scripts/*
pass /css/* /css/*
pass /icons/* /icons/*
pass /images/* /images/*
pass /public/* /public/*
pass /jquery/* /jquery/*
pass /* /main/*
fail *
Introduction
Quick steps
field | current contents | new contents | notes |
---|---|---|---|
[Scripting] | disabled | enabled | |
[DclDetachProcess] | disabled | enabled | |
[DclDetachProcessPriority] | 1 | ||
[DclScriptRunTime] | .PL__ @cgi-bin:[000000]PERL.com .PL perl .DLL $CGI-BIN:[000000]CGISAPI.EXE .CLASS @CGI-BIN:[000000]JAVA.COM |
.COM text/plain DCL procedure .EXE application/octet-stream executable |
append these two lines to the current list or replace the current list as you see fit |
$!------------------------------------- $! initial setting to start hacking $! define/system WASD_STARTUP_SERVER "/PERSONA=(APACHE$WWW,RELAXED)/SCRIPT=AS=APACHE$WWW" $!------------------------------------- $! initial hacking may require /watch to write more stuff to the server log file $! $ if 1.eq.0 $ then $ define/system WASD_STARTUP_SERVER "/PERSONA=relaxed/SYSUAF=relaxed/Profile" $ else $ define/system WASD_STARTUP_SERVER -
"/PERSONA=relaxed/SYSUAF=relaxed/Profile/WATCH=NOSTARTUP,ITEMS=(REQUEST,RESPONSE,MAPPING,error)" $ endif
#------------------------------------- # basic stuff (also means we can't use these paths in Apache) exec /cgi-bin/* /cgi-bin/* exec+ /cgiplus-bin/* /cgi-bin/* pass /wasd_root/* /wasd_root/* dir=access dir=wildcard #------------------------------------- # for CERN HTTPd compatibility map /httpd-intenal-icons/* /httpd/-/* #------------------------------------- # other pass /*/-/* /wasd_root/runtime/*/* cache=perm pass /wasd_root/runtime/* /wasd_root/runtime/* pass /wasd_root/src/misc/* /wasd_root/src/misc/* #------------------------------------- # for access to server admin pass /httpd/-/admin/ #------------------------------------------------------------------------- # Bell-ATS notes # 1) we want WASD to serve up content the same way as APACHE$WWW so the # server must run in persona=relaxed mode # 2) the folders below are required by our CSWS/Apache server # 3) WASD variables employ a CGIprefix of "www_" while our Apache does not #------------------------------------------------------------------------- SET * map=root=/dka200/apache SET /* report=detailed SET /scripts/* script=as=APACHE$WWW CGIprefix= SET /cgi-bin/* script=as=APACHE$WWW CGIprefix= exec /cgi-bin/* /cgi-bin/* exec /scripts/* /scripts/* pass /css/* /css/* pass /icons/* /icons/* pass /images/* /images/* pass /public/* /public/* pass /jquery/* /jquery/* pass /* /main/* fail *
$ @WASD_ROOT:[STARTUP]SHUTDOWN $ wait 0:0:05 $ @WASD_ROOT:[STARTUP]STARTUP
current contents | new contents | notes |
---|---|---|
[[http://*:80]] [[https://*:443]] |
[[http://*:80]]
[[https://*:443]]
[[https://*:44443]]
[ServiceAdmin] enabled
|
append the stanza in red to enable Service Admin on port: 44443 |
current contents | new contents | notes |
---|---|---|
whatever |
[[https://*:44443]] ["Web Admin"=VMS] # only from Neil's Desktop #/httpd/-/admin/* r+w,142.180.221.225 #/wasd_root/local/* r+w,142.180.221.225 # only from Neil's subnet /httpd/-/admin/* r+w,142.180.221.0/24 /wasd_root/local/* r+w,142.180.221.0/24 |
insert a block like this |
$ show logical gsoap_root
$! DCL script to unzip gSOAP support for WASD $! this is an rx2660 (Itanium2) $! $ define/job yada CSMIS$USER3:[ADMCSM.NEIL._WASD] ! files where downloaded here $ set def DKA200:[000000] ! move to root of disk dka200 $ set def [WASD_ROOT] ! $ unzip yada:gsoaprte104.zip !
$ @ WASD_ROOT:[EXAMPLE]WASDVERBS.COM ! create some verbs required for the build script $ SET DEFAULT WASD_ROOT:[SRC.GSOAP] ! $ @BUILD_GSOAPRTE ! can link-only or compile-and-link $ COPY WASD_EXE:GSOAPRTE.EXE CGI_EXE: !
$ set def WASD_ROOT:[SRC.GSOAP.CALC] ! navigate here $ edit/read calc.c ! inspect this file (basis of the service) $ edit/read calcclient.c ! inspect this file (the standalone client) $! $! note: if you enable interface logging: soap_set_recv_logfile(), $! soap_set_sent_logfile(), soap_set_test_logfile() $! then you must link against gsoapdbg.olb rather than gsoap.olb $! $ @build ! $! yields: soap_calc_share.exe ! similar to the Brett Cameron's demo $! soap_calc_cgiplus.exe ! a cgi+ variant $! calcclient.exe ! DCL-based client $!
# exec /cgi-bin/* /cgi-bin/* exec+ /cgiplus-bin/* /cgi-bin/* #------------------------------------------------------------------------- # Default pass /wasd_root/* /wasd_root/* dir=access dir=wildcard #------------------------------------------------------------------------- # for CERN HTTPd icon compatibility map /httpd-internal-icons/* /httpd/-/* #------------------------------------------------------------------------- # other pass /*/-/* wasd_root/runtime/*/* cache=perm pass /wasd_root/runtime/* /wasd_root/runtime/* pass /wasd_root/scr/misc/* /wasd_root/src/misc/* #------------------------------------------------------------------------- # access to server admin pass /httpd/-/admin/* #------------------------------------------------------------------------- # use this mapping for wasd gsoap example files copied to /cgi-bin exec+ /soapdemo/soap_calc_sha* (cgi_exe:gsoaprte)/cgi-bin/soap_calc_sha* exec+ /soapdemo/soap_calc_cgi* (cgi_exe:gsoaprte)/cgi-bin/soap_calc_cgi* # alternative access notes: # $copy soap_calc_share.exe calc1.exe # $copy soap_calc_cgiplus.exe calc2.exe exec+ /calc* (cgi_exe:gsoaprte)/cgi-bin/calc* #-------------------------------------------------------------------------
$ set def WASD_ROOT:[SRC.GSOAP.CALC] $ dir *.exe/col=1 Directory DKA200:[WASD_ROOT.SRC.GSOAP.CALC] CALCCLIENT.EXE;1 SOAP_CALC_CGIPLUS.EXE;1 SOAP_CALC_SHARE.EXE;1 Total of 3 files. $ copy SOAP_CALC_CGIPLUS.EXE wasd_root:[cgi-bin] $ copy SOAP_CALC_SHARE.exe wasd_root:[cgi-bin] $ copy SOAP_CALC_SHARE.exe wasd_root:[cgi-bin]calc1.exe $ test := $DKA200:[WASD_ROOT.SRC.GSOAP.CALC]CALCCLIENT.EXE $ test Requires: $ CALC_URL = "http://the.host.name/the/path" $ CALC_URL = "http://kawc4r.on.bell.ca/calc1" $ test Usage: [add|sub|mul|div|pow] num num $ test add 123 456 http://kawc4r.on.bell.ca/calc1 result = 579 $