From ea2e2cdee8cff1e4cad86d0310680538c604b1ac Mon Sep 17 00:00:00 2001 From: Christoph Haas Date: Sat, 22 Apr 2017 18:24:53 +0200 Subject: [PATCH] Docs added on authentication and nginx for development --- app/views/layouts/_topbar.slim | 2 +- doc/README.rdoc | 69 +++++++++++++++++++++- nginx/debsso.crl | 71 +++++++++++------------ nginx/nginx.conf | 15 ++--- nginx/screenshots.debian.net.crt | 98 -------------------------------- nginx/screenshots.debian.net.key | 28 --------- 6 files changed, 110 insertions(+), 173 deletions(-) delete mode 100644 nginx/screenshots.debian.net.crt delete mode 100644 nginx/screenshots.debian.net.key diff --git a/app/views/layouts/_topbar.slim b/app/views/layouts/_topbar.slim index ba559ec..2b3b571 100644 --- a/app/views/layouts/_topbar.slim +++ b/app/views/layouts/_topbar.slim @@ -27,7 +27,7 @@ nav.top-bar a href="/about" About // Add link if user has uploaded screenshots - if @current_users_screenshots and @current_users_screenshots.any? - li class=('active' if controller_name=='packages' and action_name=='my_uploads') + li class=('active' if controller_name=='my' and action_name=='uploads') = link_to my_uploads_path ' My uploads span.badge.secondary diff --git a/doc/README.rdoc b/doc/README.rdoc index 56f7669..7a243f6 100644 --- a/doc/README.rdoc +++ b/doc/README.rdoc @@ -15,8 +15,6 @@ _(If you get "command not found" then run "hash -r" or "rehash" in your shell and try again.)_ - - # Installing debshots the manual way ## Prepare PostgreSQL database server and user (ident-based authentication) @@ -382,3 +380,70 @@ Parse Nginx access logs to count the number of visits of each package: As a cron job: 41 9 * * * cd $HOME/debshots ; RAILS_ENV=production /home/debshots/.rbenv/shims/bundle exec rake debshots:accesslog2visits[/var/log/nginx/cache-access.log.1] + + +# Authentication + +This web application tries to avoid to create yet another directory +of user accounts. So it leverages other common web sites like StackExchange, +Debian SSO (using browser/client certificates) or GitHub as single-sign-on +services. It is still possible to create local user accounts for administrators +but registration is disabled. + +Anonymous uploads are possible but they have to be moderated by an administrator. + +# Authorization + +A user can have one of these access levels. + +## Anonymous + +Without authentication all user actions are moderated. Such users can upload +screenshots or report existing/published screenshots as inappropriate. However +a user with level 'admin' will have to approve that action. + +## Authenticated by single-sign-login (SSO) + +Users can use different authentication services to login - like Github or +StackExchange. Such users internally get an account with a random password +created but they will keep logging in via SSO. + +The first upload will have to be moderated. Subsequent uploads will be +approved automatically. + +## Authenticated by Debian signle-sign-login (SSO) + +If a user authenticates using a Debian SSO client certificate they will be +able to upload screenshots without moderation. +(Anohter idea was to restrict them to uploading only screenshots for the +packages they maintain. But that may be reliable and is not implemented at +this time.) + +## Administrator + +Such a user has an internal user account. The database record has the +'admin' field set to 1. Admins can freely upload, moderate and delete +screenshots. They can also read the log files. + + +# Nginx during development + +During development it is advised to run Nginx to proxy ports 3000 (HTTP) +and 3001 (HTTPS) to the rails application. + + cd nginx + nginx -c `pwd`/nginx.conf + +The SSL certitificate is just a self-signed certificate with the +common name "localhost". It was generated using: + + openssl req -x509 -newkey 4096 -nodes -keyout localhost.key -out localhost.crt -days 3650 + +Run "rails s" in another window. That will use the built-in Ruby 'Puma' +application server that can also be used in production. It requires less +configuration than Phusion Passenger but may be slower in regard to +performance and multi-threading / multi-core support. + +If you get "400 Bad Request / The SSL certificate error" in the browser then +please check the error log (/tmp/error*). Once cause is that the CRL of +the Debian SSO has expired and needs to be updated. diff --git a/nginx/debsso.crl b/nginx/debsso.crl index feca8ce..d0305d3 100644 --- a/nginx/debsso.crl +++ b/nginx/debsso.crl @@ -1,7 +1,7 @@ -----BEGIN X509 CRL----- -MIINXzCCDEcwDQYJKoZIhvcNAQELBQAwRDEaMBgGA1UEAxMRU1NPIENBIDIwMTUt +MIINnjCCDIYwDQYJKoZIhvcNAQELBQAwRDEaMBgGA1UEAxMRU1NPIENBIDIwMTUt MDgtMjExJjAkBgNVBAoTHURlYmlhbiBTU08gY2xpZW50IGNlcnRpZmljYXRlFw0x -NzA0MTcxMjAwMDFaFw0xNzA0MjAxMjAwMDFaMIIL0DATAgIQABcNMTUwODIxMjEy +NzA0MjIxNDU1MDJaFw0xNzA0MjUxNDU1MDJaMIIMDzATAgIQABcNMTUwODIxMjEy NTI4WjATAgIQARcNMTUwODIxMjA1MDUxWjATAgIQAhcNMTUwODIxMjEwNjQ3WjAT AgIQAxcNMTUwODIxMjEwNjQ5WjATAgIQBBcNMTUwODI0MTMwMjQyWjATAgIQBRcN MTUwODIxMjEyNTMzWjATAgIQERcNMTYwMzE0MTQxMTAzWjATAgIQEhcNMTUwODI2 @@ -38,37 +38,38 @@ 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 -dZJOfdUZhmtxop0YahWKyDsdYw== +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 -----END X509 CRL----- diff --git a/nginx/nginx.conf b/nginx/nginx.conf index b8eb866..26c9eaf 100644 --- a/nginx/nginx.conf +++ b/nginx/nginx.conf @@ -3,24 +3,20 @@ events { } pid /tmp/nginx.pid; -error_log /tmp/error; +error_log /tmp/error info; http { include mime.types; default_type application/octet-stream; - ssl_dhparam dhparams.pem; + ssl_dhparam dhparams.pem; ## # Logging Settings ## access_log /tmp/access-main; - - - #passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini; - #passenger_ruby /home/debshots/.rbenv/versions/2.3.1/bin/ruby; - + error_log /tmp/error-main info; ## # Gzip Settings @@ -30,8 +26,8 @@ http { server { listen *:3001 ssl; - ssl_certificate screenshots.debian.net.crt; - ssl_certificate_key screenshots.debian.net.key; + ssl_certificate localhost.crt; + ssl_certificate_key localhost.key; ssl_client_certificate debsso.crt; ssl_crl debsso.crl; ssl_verify_client optional; @@ -41,6 +37,7 @@ http { root ../public; server_name _; access_log /tmp/access-front; + error_log /tmp/error-front info; # Tell the backend if the protocol used was HTTPS. Otherwise you get an infinite # redirection loop because the backend assumes that HTTP was spoken behind the diff --git a/nginx/screenshots.debian.net.crt b/nginx/screenshots.debian.net.crt deleted file mode 100644 index b5460bd..0000000 --- a/nginx/screenshots.debian.net.crt +++ /dev/null @@ -1,98 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFEjCCA/qgAwIBAgIRAL/YYnl8IOX8JwWB+NpqTN4wDQYJKoZIhvcNAQELBQAw -XzELMAkGA1UEBhMCRlIxDjAMBgNVBAgTBVBhcmlzMQ4wDAYDVQQHEwVQYXJpczEO -MAwGA1UEChMFR2FuZGkxIDAeBgNVBAMTF0dhbmRpIFN0YW5kYXJkIFNTTCBDQSAy -MB4XDTE1MDExMzAwMDAwMFoXDTE3MDMxMjIzNTk1OVowYTEhMB8GA1UECxMYRG9t -YWluIENvbnRyb2wgVmFsaWRhdGVkMRswGQYDVQQLExJHYW5kaSBTdGFuZGFyZCBT -U0wxHzAdBgNVBAMTFnNjcmVlbnNob3RzLmRlYmlhbi5uZXQwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQC0QybbIT5MMZgmDONX2hY/oezY5pz9p3CfcQkc -I4y5GcWRtTKDn46y+gmcQA9wHZTHKMT7tEsGAx7/55KaG2TtNqoZnhmyRYG7MDIg -bztbdYA0/RwlVp/iVmqsc5Wsq7/ZmU/aIB2WDH6V2cWJgJoJ0LQMj/nCBRqS4n3+ -YZxSr0fTrmBROHjw6pIp7AouVJ0NVeG8lnkhYXlqBpK+qmCyhj54UpvXVAYeoiS5 -Qbld8kpQKZYvUdOnJyY2xUIaeGbIrQFRS6QAkSgi7B+ZkJkt06mGKwB6hLH6M2kL -UlKANIIEYVuMEYk2jYQL+pIdBDRlHpp5r3H6F11ZPctYP+INAgMBAAGjggHFMIIB -wTAfBgNVHSMEGDAWgBSzkKfYya9OzWE8n3ytXX9B/Wkw6jAdBgNVHQ4EFgQUxfoL -wPdHyJb6SwhYF0uesh28NlwwDgYDVR0PAQH/BAQDAgWgMAwGA1UdEwEB/wQCMAAw -HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMEsGA1UdIAREMEIwNgYLKwYB -BAGyMQECAhowJzAlBggrBgEFBQcCARYZaHR0cHM6Ly9jcHMudXNlcnRydXN0LmNv -bTAIBgZngQwBAgEwQQYDVR0fBDowODA2oDSgMoYwaHR0cDovL2NybC51c2VydHJ1 -c3QuY29tL0dhbmRpU3RhbmRhcmRTU0xDQTIuY3JsMHMGCCsGAQUFBwEBBGcwZTA8 -BggrBgEFBQcwAoYwaHR0cDovL2NydC51c2VydHJ1c3QuY29tL0dhbmRpU3RhbmRh -cmRTU0xDQTIuY3J0MCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC51c2VydHJ1c3Qu -Y29tMD0GA1UdEQQ2MDSCFnNjcmVlbnNob3RzLmRlYmlhbi5uZXSCGnd3dy5zY3Jl -ZW5zaG90cy5kZWJpYW4ubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQAtcPKcIeq6iFap -EaEuVIOpbfPQn1sF3tsKWGb9waHFBZX35BSXoie/IoxJk5m+MIu8UH+PTgcXPIGc -95eNxbLa+59RjTd3GRyLr7Gscfl1JuR1HzpBiW77q4nJUQoh+kNaeOmqHESi8kGv -2Fe6mVINlkyWyK2Gx337kUvQYKuowgqprVsrHNi9YI1H7d8VhaAiWQeD1AyAvi8W -roF9FiMmkOkTtAkoo28D2L1OkBW7PLgAT2J/zSI4Nf26duZmvETNn85NfLicGuTh -z3z+p6RVI6Rl7LitFvbnuaVCe7xysseCuXYg8uZAjQq+mN1LkdrDKbY+5e1/9ghl -yeR6Uwhu ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIF6TCCA9GgAwIBAgIQBeTcO5Q4qzuFl8umoZhQ4zANBgkqhkiG9w0BAQwFADCB -iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl -cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV -BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQw -OTEyMDAwMDAwWhcNMjQwOTExMjM1OTU5WjBfMQswCQYDVQQGEwJGUjEOMAwGA1UE -CBMFUGFyaXMxDjAMBgNVBAcTBVBhcmlzMQ4wDAYDVQQKEwVHYW5kaTEgMB4GA1UE -AxMXR2FuZGkgU3RhbmRhcmQgU1NMIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IB -DwAwggEKAoIBAQCUBC2meZV0/9UAPPWu2JSxKXzAjwsLibmCg5duNyj1ohrP0pIL -m6jTh5RzhBCf3DXLwi2SrCG5yzv8QMHBgyHwv/j2nPqcghDA0I5O5Q1MsJFckLSk -QFEW2uSEEi0FXKEfFxkkUap66uEHG4aNAXLy59SDIzme4OFMH2sio7QQZrDtgpbX -bmq08j+1QvzdirWrui0dOnWbMdw+naxb00ENbLAb9Tr1eeohovj0M1JLJC0epJmx -bUi8uBL+cnB89/sCdfSN3tbawKAyGlLfOGsuRTg/PwSWAP2h9KK71RfWJ3wbWFmV -XooS/ZyrgT5SKEhRhWvzkbKGPym1bgNi7tYFAgMBAAGjggF1MIIBcTAfBgNVHSME -GDAWgBRTeb9aqitKz1SA4dibwJ3ysgNmyzAdBgNVHQ4EFgQUs5Cn2MmvTs1hPJ98 -rV1/Qf1pMOowDgYDVR0PAQH/BAQDAgGGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYD -VR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMCIGA1UdIAQbMBkwDQYLKwYBBAGy -MQECAhowCAYGZ4EMAQIBMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwudXNl -cnRydXN0LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNy -bDB2BggrBgEFBQcBAQRqMGgwPwYIKwYBBQUHMAKGM2h0dHA6Ly9jcnQudXNlcnRy -dXN0LmNvbS9VU0VSVHJ1c3RSU0FBZGRUcnVzdENBLmNydDAlBggrBgEFBQcwAYYZ -aHR0cDovL29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0BAQwFAAOCAgEAWGf9 -crJq13xhlhl+2UNG0SZ9yFP6ZrBrLafTqlb3OojQO3LJUP33WbKqaPWMcwO7lWUX -zi8c3ZgTopHJ7qFAbjyY1lzzsiI8Le4bpOHeICQW8owRc5E69vrOJAKHypPstLbI -FhfFcvwnQPYT/pOmnVHvPCvYd1ebjGU6NSU2t7WKY28HJ5OxYI2A25bUeo8tqxyI -yW5+1mUfr13KFj8oRtygNeX56eXVlogMT8a3d2dIhCe2H7Bo26y/d7CQuKLJHDJd -ArolQ4FCR7vY4Y8MDEZf7kYzawMUgtN+zY+vkNaOJH1AQrRqahfGlZfh8jjNp+20 -J0CT33KpuMZmYzc4ZCIwojvxuch7yPspOqsactIGEk72gtQjbz7Dk+XYtsDe3CMW -1hMwt6CaDixVBgBwAc/qOR2A24j3pSC4W/0xJmmPLQphgzpHphNULB7j7UTKvGof -KA5R2d4On3XNDgOVyvnFqSot/kGkoUeuDcL5OWYzSlvhhChZbH2UF3bkRYKtcCD9 -0m9jqNf6oDP6N8v3smWe2lBvP+Sn845dWDKXcCMu5/3EFZucJ48y7RetWIExKREa -m9T8bJUox04FB6b9HbwZ4ui3uRGKLXASUoWNjDNKD/yZkuBjcNqllEdjB+dYxzFf -BT02Vf6Dsuimrdfp5gJ0iHRc2jTbkNJtUQoj1iM= ------END CERTIFICATE----- - ------BEGIN CERTIFICATE----- -MIIFdzCCBF+gAwIBAgIQE+oocFv07O0MNmMJgGFDNjANBgkqhkiG9w0BAQwFADBv -MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk -ZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF -eHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFow -gYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpOZXcgSmVyc2V5MRQwEgYDVQQHEwtK -ZXJzZXkgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMS4wLAYD -VQQDEyVVU0VSVHJ1c3QgUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjAN -BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAgBJlFzYOw9sIs9CsVw127c0n00yt -UINh4qogTQktZAnczomfzD2p7PbPwdzx07HWezcoEStH2jnGvDoZtF+mvX2do2NC -tnbyqTsrkfjib9DsFiCQCT7i6HTJGLSR1GJk23+jBvGIGGqQIjy8/hPwhxR79uQf -jtTkUcYRZ0YIUcuGFFQ/vDP+fmyc/xadGL1RjjWmp2bIcmfbIWax1Jt4A8BQOujM -8Ny8nkz+rwWWNR9XWrf/zvk9tyy29lTdyOcSOk2uTIq3XJq0tyA9yn8iNK5+O2hm -AUTnAU5GU5szYPeUvlM3kHND8zLDU+/bqv50TmnHa4xgk97Exwzf4TKuzJM7UXiV -Z4vuPVb+DNBpDxsP8yUmazNt925H+nND5X4OpWaxKXwyhGNVicQNwZNUMBkTrNN9 -N6frXTpsNVzbQdcS2qlJC9/YgIoJk2KOtWbPJYjNhLixP6Q5D9kCnusSTJV882sF -qV4Wg8y4Z+LoE53MW4LTTLPtW//e5XOsIzstAL81VXQJSdhJWBp/kjbmUZIO8yZ9 -HE0XvMnsQybQv0FfQKlERPSZ51eHnlAfV1SoPv10Yy+xUGUJ5lhCLkMaTLTwJUdZ -+gQek9QmRkpQgbLevni3/GcV4clXhB4PY9bpYrrWX1Uu6lzGKAgEJTm4Diup8kyX -HAc/DVL17e8vgg8CAwEAAaOB9DCB8TAfBgNVHSMEGDAWgBStvZh6NLQm9/rEJlTv -A73gJMtUGjAdBgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/ -BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0gBAowCDAGBgRVHSAAMEQGA1Ud -HwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9BZGRUcnVzdEV4 -dGVybmFsQ0FSb290LmNybDA1BggrBgEFBQcBAQQpMCcwJQYIKwYBBQUHMAGGGWh0 -dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZIhvcNAQEMBQADggEBAJNl9jeD -lQ9ew4IcH9Z35zyKwKoJ8OkLJvHgwmp1ocd5yblSYMgpEg7wrQPWCcR23+WmgZWn -RtqCV6mVksW2jwMibDN3wXsyF24HzloUQToFJBv2FAY7qCUkDrvMKnXduXBBP3zQ -YzYhBx9G/2CkkeFnvN4ffhkUyWNnkepnB2u0j4vAbkN9w6GAbLIevFOFfdyQoaS8 -Le9Gclc1Bb+7RrtubTeZtv8jkpHGbkD4jylW6l/VXxRTrPBPYer3IsynVgviuDQf -Jtl7GQVoP7o81DgGotPmjw7jtHFtQELFhLRAlSv0ZaBIefYdgWOWnU914Ph85I6p -0fKtirOMxyHNwu8= ------END CERTIFICATE----- - diff --git a/nginx/screenshots.debian.net.key b/nginx/screenshots.debian.net.key deleted file mode 100644 index f1476b2..0000000 --- a/nginx/screenshots.debian.net.key +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC0QybbIT5MMZgm -DONX2hY/oezY5pz9p3CfcQkcI4y5GcWRtTKDn46y+gmcQA9wHZTHKMT7tEsGAx7/ -55KaG2TtNqoZnhmyRYG7MDIgbztbdYA0/RwlVp/iVmqsc5Wsq7/ZmU/aIB2WDH6V -2cWJgJoJ0LQMj/nCBRqS4n3+YZxSr0fTrmBROHjw6pIp7AouVJ0NVeG8lnkhYXlq -BpK+qmCyhj54UpvXVAYeoiS5Qbld8kpQKZYvUdOnJyY2xUIaeGbIrQFRS6QAkSgi -7B+ZkJkt06mGKwB6hLH6M2kLUlKANIIEYVuMEYk2jYQL+pIdBDRlHpp5r3H6F11Z -PctYP+INAgMBAAECggEAdU+GR/EYc8mKtKiKgy/AbuTYGEfsPv7qwjhzr0ZLXGKz -OqHrH9GEsmEaQ/9EjLgTjJCxsQSiFmWNlQiFVZkiU2XRyR4kpumpBcLVvFnnDRwo -tVNLL9lx74BBp70I2PhkwB2P4+omlvHGp4qzjUqN9HlH0y0XYvajVpfjWtr3Oq8S -8WlIE25fi0l8NGeMZg/pvX9I42+Os46kH/Cpmw+wZY2wptTosMe2IUFwTkMUyEuT -I3oJnz3VQ24d7Q01rQdllkRpg68HBtv99k7fIPs2pSwhiBXpM39jneeFfdY7GdKB -spyAipfmOkw8COuhXNbaewl+GBAkugNT9Bbgc+XmwQKBgQDnj5GNEJv9RgXQasYY -5opNCZhlPsfOVlyhqYc/niatnMRK6L6PRgDswbfNixa3bbymMCkjgTip7U0XsbWc -8ueq+b3CnutrM5p8R9LceStDdU4oB+Tt4egqH1VkezwqD9s9OgbPYnCRTjJ1JDXH -HtjY87XhSDABSoue3R+XVAb+WQKBgQDHSZLJTuf5htltbShc1TEP11ER01Bjlid6 -bIs5XdnDsShl8DsPqrAnaiWrnHJegp3YYAcXi3fRIsO1Nbow/uk6fu9wNBt3fWPu -3T4Vf2MLUDtrsQJGQYB7JW79dbzo02Cz1tA4+b1LZil9JkRjmwub33G4Ww5+zWOi -+TzlW2wS1QKBgQDThDkX+gwDFmtJLb82D6BVLmaeVPJ+cDS9FvYMDpKWE5TaOC+Z -AADoQyt5/YsKkpq301ZAsFDqJ3E8K4ARlXA4pVfI5xF0IvcCfzkFW0lBnW1+83cS -NEC1+VkvJ8KVSVaiXtbJqMnacOt2RVU6Rdsekb+ZwS7Yfxd6TdIFkSOyQQKBgANc -MTZltzGU3Xuj2IdgLNiYh8xmJLfZI0dEJ0DLXU2YYhb96vEDrr6rYoE3PRJs315z -mAsElfuXu3cFteL3mVUcKMtahZAJNDMl1dMk97WMH8RcEq6+kf0Bj5KEdq/ySHIf -0Bj11QQ9b7uldoe7aIGzTcaO+nqW2fQ4gZdYaEUVAoGBAK5SPXvZPTPeloTrTT6T -ialF4hH8+8oibHqIac91tKFjHvP2eyJKreJ5DnLa/qGki8WCcc5BWvZtGwlc+2JV -0o9rqurSIsztr+nbXye1rdwG82pTdud50m0YM0VtXOEJ16l+d+hd9muB0ZaHp3t/ -L3FxwwYVzwm+5QfHADevnvMN ------END PRIVATE KEY-----