====== UPMC Certificates ====== UPMC man in the middle's https traffic. You might get the error on the terminal (from e.g. ''curl'') > SSLError(SSLCerVerificationError, '[SSL: CERTIFICATE_VERIFY_FAILED] certifiacte verify failed: self signed certificate in certificate chain or this message in firefox > Software is Preventing Firefox From Safely Connecting to This Site ===== Firefox ===== Download [[http://upmccrl.upmc.com/CDP/UPMC-ROOT-CA.crt|UPMC-ROOT-CA.crt]] and import into Firefox like (instructions copied from [[https://docs.titanhq.com/en/3834-importing-ssl-certificate-in-mozilla-firefox.html|here]]) - top right hamberger menu - options - scroll to ''Privacy & Security'' 's ''Certificates'' Section - Click ''View Certificates...'' - ''Authorities'' and ''Import'' ===== Terminal ===== for CLI and terminal programs, you can accept the certificate across the system. To allow UPMC's cert in the SSL chain on debian, run: # as root cd /usr/local/share/ca-certificates/ cert_loc=http://upmccrl.upmc.com/CDP/ for crt in UPMC-CA23 UPMC-CA20 UPMC-ROOT-CA; do wget "$cert_loc/$crt.crt" -O "$crt.crt-der" # added 20230707 openssl x509 -in $crt.crt-der -out $crt.crt -outform PEM done update-ca-certificates ===== Legacy ===== Newer (2023) ssl libraries packaged in debian are ahead of what UPMC's certs/network supports. > ss1.SSLError: [SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled See https://stackoverflow.com/questions/71603314/ssl-error-unsafe-legacy-renegotiation-disabled Downgrade security with a custom SSL config: export OPENSSL_CONF="/opt/ni_tools/slacktheme_bot/openssl.conf" where conf looks like openssl_conf = openssl_init [openssl_init] ssl_conf = ssl_sect [ssl_sect] system_default = system_default_sect [system_default_sect] Options = UnsafeLegacyRenegotiation ==== Python ==== newer ''urllib3'' may also cause problems with legacy certs. (UNCONFIRMED 20240117) pip install urllib3==1.26.12 For python virtual enviornments, you may also want to manually append certificates to ''cacert.pem'' bundled with ''certifi'' pycert=$(python -c 'import certifi,os; print(os.readlink(os.path.dirname(certifi.__file__)+"/cacert.pem"))') cat $newcert_pem >> $pycert (Will note: ''cirtifi'' munged also useful for mitmproxy)