Просмотр исходного кода

Add HTTPS server configuration example and create new demo certificates

bel2125 7 лет назад
Родитель
Сommit
9f0374c4f0

+ 2 - 0
README.md

@@ -130,6 +130,8 @@ Please read the [documentation](https://github.com/civetweb/civetweb/blob/master
 and have a look at the [examples](https://github.com/civetweb/civetweb/blob/master/examples/).
 More information may be found on the [mailing list](https://groups.google.com/d/forum/civetweb).
 
+Note: I do not take any liability or warranty for any linked contents.  Visit these pages and try the community support suggestions at your own risk.
+
 
 Contributions
 ---------------

+ 2 - 0
RELEASE_NOTES.md

@@ -5,6 +5,8 @@ Release Notes v1.10 (work in progress)
 Changes
 -------
 
+- Add HTTPS server configuration example
+- Lua Pages: mg.include should support absolute, relative and virtual path types
 - Add API function for HTTP digest authentication
 - Improved interface documentation
 - Support parameters for Lua background scripts

+ 5 - 0
examples/README.md

@@ -5,4 +5,9 @@ Examples
 These examples show how to embed civetweb into a C ([embedded_c](https://github.com/civetweb/civetweb/tree/master/examples/embedded_c)) or a C++ ([embedded_cpp](https://github.com/civetweb/civetweb/tree/master/examples/embedded_cpp)) application.
 The C++ wrapper only offers a subset of the full C API, thus the C example is more complete than the C++ example.
 
+In addition, there is one example how to configure a HTTPS server, to comply with modern security standards ([https](https://github.com/civetweb/civetweb/tree/master/examples/https)). It does not hold any source, but only a configuration file and some documentation how to use it.
+
 Some no longer maintained examples can be found in the ["obsolete"](https://github.com/civetweb/civetweb/tree/master/examples/_obsolete) folder. It is not guaranteed that they work in the current version - they are kept for reference, but might be removed in the future.
+
+All examples are subject to the MIT license (unless noted otherwise) - it comes without warranty of any kind.
+

+ 15 - 0
examples/https/README.md

@@ -0,0 +1,15 @@
+HTTPS Server configuration example
+====
+
+This directory contains an example [`civetweb.conf`](civetweb.conf) configuration file for a secure HTTPS server.  You can run a HTTPS server without most of the options there - only `ssl_certificate` and one port (e.g., `443s`) in `listening_ports` is required.  The default settings will work, but not comply with up to date security standards.  It is somewhat debatable what "up to date security" means - you can use the following web sites to run tests:
+
+- https://securityheaders.io
+- https://www.htbridge.com/ssl
+- https://www.htbridge.com/websec
+- https://www.ssllabs.com/ssltest/analyze.html / https://www.qualys.com/forms/freescan/
+- probably there are some more ... let me know!
+
+Instructions to run the test and to adapt the configuration can be found [`civetweb.conf`](civetweb.conf).  You can test this configuration directly with the standalone server, or you can take the settings and add it into your embedding code.
+
+Note: I do not take any warranty or liability for this configuration, or for the content of any linked web site.
+

+ 82 - 0
examples/https/civetweb.conf

@@ -0,0 +1,82 @@
+# Instructions to run (on Linux) to reproduce test results:
+# 
+# 1) copy civetweb executable here (examples/https directory)
+# 2) sudo ./civetweb
+#
+# Instructions to adapt to your own server:
+#
+# 1) generate your own server cert
+# 2) generate at least one backup server cert
+#    in case you want a self signed cert, you can use the script
+#    in resources/cert for both steps
+# 3) copy the content of the *.pin files into the Public-Key-Pins
+#    header config (the base64 encoded certificate hash)
+# 4) set the document root, and all other required http server settings
+# 5) Run the tests from the three websites below. They will tell you
+#    also what clients are compatible with your settings. The settings
+#    here are very strict and lock out most older clients/browsers.
+#    You will find some hints for fine tuning there as well.
+# 6) If you know all your clients, and give them client certificates in
+#    advance, you can significantly improve security by setting
+#    "ssl_verify_peer" to "yes" and specifying a client cert (directory)
+#    using "ssl_ca_file/path". This will lock out all clients without a
+#    proper certificate. Don't use it for your public home page, but
+#    consider it for your private remote access server.
+# 7) run civetweb, like above - or better create your own start script
+# You are welcome to share your thoughts and experience on GitHub 
+# (or Google groups) - see README.md in CivetWeb main directory
+
+# Don't run as super user, switch back to a regular user
+run_as_user user
+
+# The standard HTTP port 80 should redirect to the standard HTTPS port 443
+listening_ports 80r,443s
+
+# Don't forget to set the document root and domain
+#document_root tdb
+#authentication_domain mydomain.com
+
+# Set the a certificate
+ssl_certificate ../../resources/cert/server.pem
+
+# Require a client cert for your private server (see above)
+#ssl_verify_peer yes
+#ssl_ca_file ../../resources/cert/client.pem
+
+# Enforce TLS1.2 and some strong cipher(s)
+ssl_protocol_version 4
+ssl_cipher_list ECDH+AESGCM+AES256:!aNULL:!MD5:!DSS
+
+# Tell all browsers to access this site only as HTTPS for the next 180 days
+strict_transport_security_max_age 15552000                                  
+
+# Set some HTTP security header, see https://securityheaders.io
+additional_header Content-Security-Policy: script-src 'self'
+additional_header X-Frame-Options: SAMEORIGIN
+additional_header X-Xss-Protection: 1; mode=block
+additional_header X-Content-Type-Options: nosniff
+additional_header Referrer-Policy: same-origin
+additional_header Public-Key-Pins: pin-sha256="uz1UTAPen+xb+UoQqkVlEx4H653LbMjfRJcZx5OrjbI="; pin-sha256="pf3px1MBPmlTGAPoiHWqaSJ9L9Z+DKfwgsU7LfLnmsk="; max-age=7776000
+#additional_header Expect-CT: max-age=86400,report-uri="https://mydomain.com/report"
+
+
+# Ratings from 2017-09-03 (tests performed later may require more
+# strict security settings)
+#
+# Headers rated A+ from https://securityheaders.io/ 
+#
+# SSL rated B from https://www.htbridge.com/ssl when using a self signed
+# certificate, but no other weaknesses for modern browsers.
+# Site remarks some older TLS versions and some weaker ciphers are not
+# supported (but that's accessibility, not security).
+#
+# HTTPS rated A+ from https://www.htbridge.com/websec/ when using a self
+# signed certificate, generated with make_certs.sh in resources/cert/
+# and adding the server.pin and server_bkup.pin content into the
+# Public-Key-Pins header above.
+#
+# A rating of "T / If trust issues are ignored: A" (ignoring self-signed cert)
+# from https://www.ssllabs.com/ssltest/, https://www.qualys.com/forms/freescan/
+# (Note: this test is runs with reverse DNS name, while all others use the
+# IP address). 
+

+ 17 - 12
resources/cert/client.crt

@@ -1,14 +1,19 @@
 -----BEGIN CERTIFICATE-----
-MIICOTCCAaICCQCXNPrLNIw8IDANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQGEwJ4
-eDELMAkGA1UECAwCeHgxCzAJBgNVBAcMAnh4MQswCQYDVQQKDAJ4eDELMAkGA1UE
-CwwCeHgxCzAJBgNVBAMMAnh4MREwDwYJKoZIhvcNAQkBFgJ4eDAeFw0xNTEwMjUy
-MzMxNDJaFw0yNTEwMjIyMzMxNDJaMGExCzAJBgNVBAYTAnh4MQswCQYDVQQIDAJ4
-eDELMAkGA1UEBwwCeHgxCzAJBgNVBAoMAnh4MQswCQYDVQQLDAJ4eDELMAkGA1UE
-AwwCeHgxETAPBgkqhkiG9w0BCQEWAnh4MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
-iQKBgQDGwWIIU2KUEufa0Ga5lnm7I8cX4LPRIFX4zL3g1Kuw27eRaJWJLz3Y97oi
-m0fUmhhKJoEFDxj9U4UbXZWMxzH5F8RfupUu+9yDqTWjTRaUQiM/C7dSPEevfqNP
-zBoERPrMzm9W5d8Ke04vpUzk0duoE6vyNQVECroNlHY7R4zQjwIDAQABMA0GCSqG
-SIb3DQEBCwUAA4GBAKZiZ2+sYJWFnQcfqcDJBwrbTo98SSxfryPmeVQSuM8AXC4I
-baX+fqkatdFidDBl96Aq8pDfqeAz+gqRoJ+Dx7opn5/b0WcB0lD+v25x+nO8g4z7
-HBzpVtvRTkC7dGase72csnqvyWm1xTSiHNRIghl0kZy8wb6V9GmJsHxBoKWN
+MIIDBjCCAe4CCQCFpskbTEyGpTANBgkqhkiG9w0BAQsFADBFMQswCQYDVQQGEwJB
+VTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0
+cyBQdHkgTHRkMB4XDTE3MDkwMzE5MjIwNVoXDTI3MDkwMTE5MjIwNVowRTELMAkG
+A1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0
+IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+ANyFUuYxv/uexSr/K9aSmcnEcylNH4S3NdlvMwFvW3XFqAV05tV6HnPnSELEk6t3
+8aMDUGKDBrrjwsVK6+S7OyrkioXeB9dWldHbqD7o3MkIM3sUxUtaR6x0RMZ+sIX4
+XpE0xULcip1bG0etP4Z2frEP2IOOValQcm4SCnKYZJyTr/oR31NmlIPU/47s74U6
+rqwwUE92bzvf1jGeUHEn7IAgSJNIUBNsOIdRQAMBuTJIAmG2qawXaetjLi/NBwNS
+d0OX2v3o9SrA+ZhQYpPG5xp3B3ncHgVvmhmp7hUdlYbiemcUHn18hZjxPVZLbtY8
+gQldrWyMZkVabSZjuIH3IKcCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAUZsxxYVK
+l0tH8E0FCnRJTvG6gjOeiqJRIk7Mmg+hfFZK/ewqBixxg1OBM/xmPXfnI/ULRz74
+UMXnyDIsGakzrFDqWqPt3xots35yHHo2ZkVao6gV4qx0Reu86qeN5iRvG0EjoGMD
+7XRaw56E0XhvMBJW1CiUg944HSw4ptJli0dJCYa+P9s1Fop3lA0d9+dwKMKUyCDr
+yBz4XjyO9jXSQC/t0fkxC4gHhdH/ZaAq0Lem6Xxc40ZwoVc1+dHWFxn8d6L/RYvb
+16gOuw6s2Xt9h2K8OFKzehOgNZAkI2oUELRFUx9Wc8/Bcl6uEkBmPHRqeX5l35jo
+ztBrpAEsCy0cGg==
 -----END CERTIFICATE-----

+ 14 - 9
resources/cert/client.csr

@@ -1,11 +1,16 @@
 -----BEGIN CERTIFICATE REQUEST-----
-MIIBoTCCAQoCAQAwYTELMAkGA1UEBhMCeHgxCzAJBgNVBAgMAnh4MQswCQYDVQQH
-DAJ4eDELMAkGA1UECgwCeHgxCzAJBgNVBAsMAnh4MQswCQYDVQQDDAJ4eDERMA8G
-CSqGSIb3DQEJARYCeHgwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMbBYghT
-YpQS59rQZrmWebsjxxfgs9EgVfjMveDUq7Dbt5FolYkvPdj3uiKbR9SaGEomgQUP
-GP1ThRtdlYzHMfkXxF+6lS773IOpNaNNFpRCIz8Lt1I8R69+o0/MGgRE+szOb1bl
-3wp7Ti+lTOTR26gTq/I1BUQKug2UdjtHjNCPAgMBAAGgADANBgkqhkiG9w0BAQsF
-AAOBgQCVJKEisDii5qFbV75rOGF+tTChv3c051pWerl8U42s/MQ3jhzNb8+i7f2n
-Kn4yZU3u91xtAruAoKFPSnFpgQKyBRv57g5eM03nrUUImZcRT5Kkf4YsqRMsZ2yH
-MYk6QbTrJwibUoqEUUFgv0n5ONUBoEvhzZr0K9KZ3DLyIg1rpQ==
+MIICijCCAXICAQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUx
+ITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcN
+AQEBBQADggEPADCCAQoCggEBANyFUuYxv/uexSr/K9aSmcnEcylNH4S3NdlvMwFv
+W3XFqAV05tV6HnPnSELEk6t38aMDUGKDBrrjwsVK6+S7OyrkioXeB9dWldHbqD7o
+3MkIM3sUxUtaR6x0RMZ+sIX4XpE0xULcip1bG0etP4Z2frEP2IOOValQcm4SCnKY
+ZJyTr/oR31NmlIPU/47s74U6rqwwUE92bzvf1jGeUHEn7IAgSJNIUBNsOIdRQAMB
+uTJIAmG2qawXaetjLi/NBwNSd0OX2v3o9SrA+ZhQYpPG5xp3B3ncHgVvmhmp7hUd
+lYbiemcUHn18hZjxPVZLbtY8gQldrWyMZkVabSZjuIH3IKcCAwEAAaAAMA0GCSqG
+SIb3DQEBCwUAA4IBAQB/bapQm4nxXA01msL6nkjiVaeh/mj8Cr8sPFtQXVu+hxl9
+mjbisxDXwPhiFOiTlokQkINf+RMxQsVNr2y/sGZrSMimabwODDXnPpyir4b2WOWp
+VQQWbgnMVnvgKsjBpLLDr8VnLBiQ3mED+2QV0bxxJSgvvEuiZx/BlCgiu77D/8kj
+XUY/CXIBi00fIYigpRRdv2WtMQjtQe2fCSZZKOWu2ZWu2o24kEk28x5LO/WaJ4Ft
+lUHFOIp/wkKz/US4mbdQaD0bsg7MirAyGrCmZIHqQDhdDWq+o/brI7N/8yOk3qwc
+qPGkr9PYIPnuzZwStLJlPxKGXjCA40HpdmWA0kyc
 -----END CERTIFICATE REQUEST-----

+ 25 - 13
resources/cert/client.key

@@ -1,15 +1,27 @@
 -----BEGIN RSA PRIVATE KEY-----
-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
+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
 -----END RSA PRIVATE KEY-----

+ 26 - 14
resources/cert/client.key.orig

@@ -1,18 +1,30 @@
 -----BEGIN RSA PRIVATE KEY-----
 Proc-Type: 4,ENCRYPTED
-DEK-Info: DES-EDE3-CBC,74B669EA97409DB5
+DEK-Info: DES-EDE3-CBC,161D2DE9FC3C5EE4
 
-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
+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
 -----END RSA PRIVATE KEY-----

+ 42 - 25
resources/cert/client.pem

@@ -1,29 +1,46 @@
 -----BEGIN CERTIFICATE-----
-MIICOTCCAaICCQCXNPrLNIw8IDANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQGEwJ4
-eDELMAkGA1UECAwCeHgxCzAJBgNVBAcMAnh4MQswCQYDVQQKDAJ4eDELMAkGA1UE
-CwwCeHgxCzAJBgNVBAMMAnh4MREwDwYJKoZIhvcNAQkBFgJ4eDAeFw0xNTEwMjUy
-MzMxNDJaFw0yNTEwMjIyMzMxNDJaMGExCzAJBgNVBAYTAnh4MQswCQYDVQQIDAJ4
-eDELMAkGA1UEBwwCeHgxCzAJBgNVBAoMAnh4MQswCQYDVQQLDAJ4eDELMAkGA1UE
-AwwCeHgxETAPBgkqhkiG9w0BCQEWAnh4MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
-iQKBgQDGwWIIU2KUEufa0Ga5lnm7I8cX4LPRIFX4zL3g1Kuw27eRaJWJLz3Y97oi
-m0fUmhhKJoEFDxj9U4UbXZWMxzH5F8RfupUu+9yDqTWjTRaUQiM/C7dSPEevfqNP
-zBoERPrMzm9W5d8Ke04vpUzk0duoE6vyNQVECroNlHY7R4zQjwIDAQABMA0GCSqG
-SIb3DQEBCwUAA4GBAKZiZ2+sYJWFnQcfqcDJBwrbTo98SSxfryPmeVQSuM8AXC4I
-baX+fqkatdFidDBl96Aq8pDfqeAz+gqRoJ+Dx7opn5/b0WcB0lD+v25x+nO8g4z7
-HBzpVtvRTkC7dGase72csnqvyWm1xTSiHNRIghl0kZy8wb6V9GmJsHxBoKWN
+MIIDBjCCAe4CCQCFpskbTEyGpTANBgkqhkiG9w0BAQsFADBFMQswCQYDVQQGEwJB
+VTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0
+cyBQdHkgTHRkMB4XDTE3MDkwMzE5MjIwNVoXDTI3MDkwMTE5MjIwNVowRTELMAkG
+A1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0
+IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+ANyFUuYxv/uexSr/K9aSmcnEcylNH4S3NdlvMwFvW3XFqAV05tV6HnPnSELEk6t3
+8aMDUGKDBrrjwsVK6+S7OyrkioXeB9dWldHbqD7o3MkIM3sUxUtaR6x0RMZ+sIX4
+XpE0xULcip1bG0etP4Z2frEP2IOOValQcm4SCnKYZJyTr/oR31NmlIPU/47s74U6
+rqwwUE92bzvf1jGeUHEn7IAgSJNIUBNsOIdRQAMBuTJIAmG2qawXaetjLi/NBwNS
+d0OX2v3o9SrA+ZhQYpPG5xp3B3ncHgVvmhmp7hUdlYbiemcUHn18hZjxPVZLbtY8
+gQldrWyMZkVabSZjuIH3IKcCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAUZsxxYVK
+l0tH8E0FCnRJTvG6gjOeiqJRIk7Mmg+hfFZK/ewqBixxg1OBM/xmPXfnI/ULRz74
+UMXnyDIsGakzrFDqWqPt3xots35yHHo2ZkVao6gV4qx0Reu86qeN5iRvG0EjoGMD
+7XRaw56E0XhvMBJW1CiUg944HSw4ptJli0dJCYa+P9s1Fop3lA0d9+dwKMKUyCDr
+yBz4XjyO9jXSQC/t0fkxC4gHhdH/ZaAq0Lem6Xxc40ZwoVc1+dHWFxn8d6L/RYvb
+16gOuw6s2Xt9h2K8OFKzehOgNZAkI2oUELRFUx9Wc8/Bcl6uEkBmPHRqeX5l35jo
+ztBrpAEsCy0cGg==
 -----END CERTIFICATE-----
 -----BEGIN RSA PRIVATE KEY-----
-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
+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
 -----END RSA PRIVATE KEY-----

BIN
resources/cert/client.pfx


+ 0 - 31
resources/cert/make_certs

@@ -1,31 +0,0 @@
-#using "pass" for every password
-
-openssl genrsa -des3 -out client.key 1024
-openssl req -new -key client.key -out client.csr
-
-cp client.key client.key.orig
-
-openssl rsa -in client.key.orig -out client.key
-
-openssl x509 -req -days 3650 -in client.csr -signkey client.key -out client.crt
-
-cp client.crt client.pem
-cat client.key >> client.pem
-
-openssl pkcs12 -export -inkey client.key -in client.pem -name ClientName -out client.pfx
-
-
-
-openssl genrsa -des3 -out server.key 1024
-openssl req -new -key server.key -out server.csr
-
-cp server.key server.key.orig
-
-openssl rsa -in server.key.orig -out server.key
-
-openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
-
-cp server.crt server.pem
-cat server.key >> server.pem
-
-openssl pkcs12 -export -inkey server.key -in server.pem -name ServerName -out server.pfx

+ 0 - 0
resources/cert/make_cert.bat → resources/cert/make_certs.bat


+ 64 - 0
resources/cert/make_certs.sh

@@ -0,0 +1,64 @@
+#!/bin/sh
+#using "pass" for every password
+
+echo "Generating client certificate ..."
+
+openssl genrsa -des3 -out client.key 2048
+openssl req -new -key client.key -out client.csr
+
+cp client.key client.key.orig
+
+openssl rsa -in client.key.orig -out client.key
+
+openssl x509 -req -days 3650 -in client.csr -signkey client.key -out client.crt
+
+cp client.crt client.pem
+cat client.key >> client.pem
+
+openssl pkcs12 -export -inkey client.key -in client.pem -name ClientName -out client.pfx
+
+
+echo "Generating first server certificate ..."
+
+openssl genrsa -des3 -out server.key 2048
+openssl req -new -key server.key -out server.csr
+
+cp server.key server.key.orig
+
+openssl rsa -in server.key.orig -out server.key
+
+openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
+
+cp server.crt server.pem
+cat server.key >> server.pem
+
+openssl pkcs12 -export -inkey server.key -in server.pem -name ServerName -out server.pfx
+
+echo "First server certificate hash for Public-Key-Pins header:"
+
+openssl x509 -pubkey < server.crt | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | base64 > server.pin
+
+cat server.pin
+
+echo "Generating backup server certificate ..."
+
+openssl genrsa -des3 -out server_bkup.key 2048
+openssl req -new -key server_bkup.key -out server_bkup.csr
+
+cp server_bkup.key server_bkup.key.orig
+
+openssl rsa -in server_bkup.key.orig -out server_bkup.key
+
+openssl x509 -req -days 3650 -in server_bkup.csr -signkey server_bkup.key -out server_bkup.crt
+
+cp server_bkup.crt server_bkup.pem
+cat server_bkup.key >> server_bkup.pem
+
+openssl pkcs12 -export -inkey server_bkup.key -in server_bkup.pem -name ServerName -out server_bkup.pfx
+
+echo "Backup server certificate hash for Public-Key-Pins header:"
+
+openssl x509 -pubkey < server_bkup.crt | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | base64 > server_bkup.pin
+
+cat server_bkup.pin
+

+ 17 - 27
resources/cert/server.crt

@@ -1,29 +1,19 @@
 -----BEGIN CERTIFICATE-----
-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
+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
+dFIuUv3YzfenfA==
 -----END CERTIFICATE-----

+ 14 - 25
resources/cert/server.csr

@@ -1,27 +1,16 @@
 -----BEGIN CERTIFICATE REQUEST-----
-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
+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
 -----END CERTIFICATE REQUEST-----

+ 25 - 49
resources/cert/server.key

@@ -1,51 +1,27 @@
 -----BEGIN RSA PRIVATE KEY-----
-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
+MIIEpAIBAAKCAQEAtSYcSglx5uRQ7KoQCEfY50S5NOTwDGONW+r0HV1eOV/92/Ea
+dlfYidJwYIkD1TKQ7VcjyctcoAaXo4v2MO3/Qrf+gUt50Mu1l/WoT6QQG5qoCAv5
+VUA+rC1BlzIKgj3PHvvsjW09Q6XVDVqyzdPuVixM3xAAOZbnOMmfgwk8xDnmqhBQ
+vsdVBHhUn8QsBe7EaRCUkUFjmrRCrpu43XTYPa6k0pcqkNhg9zQ6DInvd9Hb6vNB
+qlznZAPg6HpxsPwWHlWH+oY0xySHVxCxWbp9G2WShSrEA1mTnyuqQTA66TTinu+W
+dW9lOJ06eDsbadbWfthBcLJwj4mGh8Ko6pP3HwIDAQABAoIBAGgaacGGogW+Cl+n
+8CTCHX3y+bjTJL0J7S/426eQg9jXOI3QhpOiMlgqLtjbhO9d6vnqzS9oBmgUwcqE
+YcyGyd5u3P0zAeOjXk3hKIP0Vil2/L/7GaQLkrjiHUKlyHJG0SQORUiVkdKxl7nf
++Mfe1qaBOQAsMuTluyXggSIOCfT+FdHoi6nr/+Nugyx7e/UrZ3GWHVbh8KXOlvHh
+kETfcI6KUkWKtE+YJx9w89Bjh8TBvU0nkOntR11T2SMNllyIS9nND8pqa7QPz3N0
+Ag/iN4Wh8S5f4Nn4GccAOtIORuYuw9Pmt1E9dFWEna1fGztBHlClFQPOLUhZ+/zR
+MfQV5bkCgYEA3pQTLZ5ldX1Kvg5sYw63wwewr147R0pav6AoJ8HTnWGqi5y485CX
+uKE/IcJseidG9FmkO7rfexQaBtW9eW0GCVru416VSP9g2r1iUu0ViaqctYt7ZacE
+UEI+g4FmaXHyn1CKTjJXgUAdoDbtlyHwLmLmNt+B3zKGa1lPIb5MwdMCgYEA0Fl7
+VCTnmdyFH8m/bK76uW7SgkYmKYd5AvDr2QFCSqY3tdZh2VIukoUPmheCFq0kpDc0
++eT680rF/m6CCu+00nM6v/3TNARRANeQ2G73kTPpyiphE+ttKCBQ/tke3TcHQA85
+7cI6bfkMonyKi0JRdLs4QEWf86Avr6p6JKdQWgUCgYEA3oAT8+SF9D89umRcwWFz
+HcnQPF7sz0VrFmiZ+7RtQMTjYhFXalQ+91hp7euX2TzuV1JNNVCIG1dq9S4x7PKp
+uCxo5m4kugZg4gm0AsXyY95kLa+zuViOnVS7fWab5Aj+y3gN6kG07AYWF5URSaWp
+nhVLocso3uB5M1LiIg9EV/UCgYBNrN6Wyz9xFE6pQDzWlxGwakme+eomV3RdDVbQ
+S3DchcWFTEykicgFJghgCV2deKWNd2uPsreAVqMkLSzcSOuf/gesJkREQ0uzxaoh
+lpVDlBgYH96bX40NhabMrEOec3KHhmWxZ1UDRPNZ7JZ2Pp5Bp77b71knqdO9aRAq
+dBo3xQKBgQCnxheQbozuzPO/6nixAng1GP1GuuB2bVb4e5Z0+0dt2RfI8+MSqnSL
+q9Yr2+p/fJFkVthrOUYwJkMf7ujhK2uNCJ7aKmwHPSIRztNV3UDGFd9wgpj3Pebx
+36ahCvDzidTEG+EEra6zPJ1An3KEbPsfXwcy1NVEZ/kFQyzczL0AOw==
 -----END RSA PRIVATE KEY-----

+ 26 - 50
resources/cert/server.key.orig

@@ -1,54 +1,30 @@
 -----BEGIN RSA PRIVATE KEY-----
 Proc-Type: 4,ENCRYPTED
-DEK-Info: DES-EDE3-CBC,268D072E47DD85BF
+DEK-Info: DES-EDE3-CBC,9D77FEDB1409D1BC
 
-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
+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
 -----END RSA PRIVATE KEY-----

+ 42 - 76
resources/cert/server.pem

@@ -1,80 +1,46 @@
 -----BEGIN CERTIFICATE-----
-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
+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
+dFIuUv3YzfenfA==
 -----END CERTIFICATE-----
 -----BEGIN RSA PRIVATE KEY-----
-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
+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
 -----END RSA PRIVATE KEY-----

+ 1 - 0
resources/cert/server.pin

@@ -0,0 +1 @@
+uz1UTAPen+xb+UoQqkVlEx4H653LbMjfRJcZx5OrjbI=

+ 19 - 0
resources/cert/server_bkup.crt

@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDBjCCAe4CCQCFKfFGF1i10TANBgkqhkiG9w0BAQsFADBFMQswCQYDVQQGEwJB
+VTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0
+cyBQdHkgTHRkMB4XDTE3MDkwMzE5MjI1MVoXDTI3MDkwMTE5MjI1MVowRTELMAkG
+A1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0
+IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+AKTJr3PzWOR1Hrjfk9bBA7TptI1hNYVn/Xvi2GSferhJaWg69b2Li4t5/JxElESR
+8fy0lBMzQ/yaFiQb51y7Q1c+Z6xWLxk322rfy3WhU3DYiFL2sJndrDvAhmso122Z
+xVADA0cQwo520MgFYpHNBF8BcFV2IRukzVX+/nVkki05XcwfbI2y6gqCRpOSXdE9
+gCDVan3tSRbtrwKu7IHy88mL6057o82Uezpl0KesoCwb4f5oqs2vThUmXKuxu8GO
+WpZNK4JFWnTgDOJrubZvKxzzL9E85DS9aXLk6dNKBJVKPCETnYw+2ArMgXzs+JuA
+C4AhV0e6unLX9DcavZ6j7JcCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAJJWqVuQs
+guFZG/LZPeeh1WtZr9S6R5BT4+b+PH2teVyGtClXV6KpwcLNEVWzY3qPtrFFPQI1
+uEg6cY8w1JOiCmj/IWKsiHd+IdsqsFVKL+Bmvthm3HSgA6p6ZiVCG4E67p8xwiJP
+p5EwtMM/7BdS/tHLUOe1OpNZ8XtHRVUNbzy/+JV0So7WLP9ksGb6COL/9MF0/qG4
+4XrrvpZ9FAgRC9/22QyYiQqoaegGEy4E+KHOBxRmipInsU2H8aQA2sZzQ49Zew9E
+QI2jSJTC7EeuZ0OcZawKkJY1ZtIGmOo/Q956keOLdG8cxyq6pXW3gmq1X5QBxy1M
+pZYi5eIENGE63g==
+-----END CERTIFICATE-----

+ 16 - 0
resources/cert/server_bkup.csr

@@ -0,0 +1,16 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIICijCCAXICAQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUx
+ITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcN
+AQEBBQADggEPADCCAQoCggEBAKTJr3PzWOR1Hrjfk9bBA7TptI1hNYVn/Xvi2GSf
+erhJaWg69b2Li4t5/JxElESR8fy0lBMzQ/yaFiQb51y7Q1c+Z6xWLxk322rfy3Wh
+U3DYiFL2sJndrDvAhmso122ZxVADA0cQwo520MgFYpHNBF8BcFV2IRukzVX+/nVk
+ki05XcwfbI2y6gqCRpOSXdE9gCDVan3tSRbtrwKu7IHy88mL6057o82Uezpl0Kes
+oCwb4f5oqs2vThUmXKuxu8GOWpZNK4JFWnTgDOJrubZvKxzzL9E85DS9aXLk6dNK
+BJVKPCETnYw+2ArMgXzs+JuAC4AhV0e6unLX9DcavZ6j7JcCAwEAAaAAMA0GCSqG
+SIb3DQEBCwUAA4IBAQBvbql7sAA8XOwsszRUzOCLkFxfDsWJ0l5re2mGgHTEd5hc
+eDfM+Vdy8SVZX9OySdioVD6ACTse3rc1ULYn8jj1wvOd3/z/J9aUBcBACJG5D1Dl
++j+xvfhvgAGCEQn7ZMaWLFWrLs++aQ+EKbl0SypEI2rTJkyZlYSDVpa+LhqX4UOa
++RNlq1CX+85HCjBn0sWBNzhjrf3gwERRn5NfTab4FqwqGp2+s4GvbOJHrm8saMWu
+BlhcTzGGLBRKCQUHo5i9393b3oBOqtcpWPcZGhyAF1NUbYL7USnsiH6lkGReeaFi
+xy7vYmUn9j//vT64SmASG0oF+ecUF0q2W42sSqnU
+-----END CERTIFICATE REQUEST-----

+ 27 - 0
resources/cert/server_bkup.key

@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEogIBAAKCAQEApMmvc/NY5HUeuN+T1sEDtOm0jWE1hWf9e+LYZJ96uElpaDr1
+vYuLi3n8nESURJHx/LSUEzND/JoWJBvnXLtDVz5nrFYvGTfbat/LdaFTcNiIUvaw
+md2sO8CGayjXbZnFUAMDRxDCjnbQyAVikc0EXwFwVXYhG6TNVf7+dWSSLTldzB9s
+jbLqCoJGk5Jd0T2AINVqfe1JFu2vAq7sgfLzyYvrTnujzZR7OmXQp6ygLBvh/miq
+za9OFSZcq7G7wY5alk0rgkVadOAM4mu5tm8rHPMv0TzkNL1pcuTp00oElUo8IROd
+jD7YCsyBfOz4m4ALgCFXR7q6ctf0Nxq9nqPslwIDAQABAoIBAE/B7lHIrnWk2kHQ
+tNV0hj7B/smPC0COnHmhyeqp5dPcdFAmeVpMeDYBzOo1py2pFd6h6CmC3p0cVysS
+9mBDosxPQA6BiDpEdsa7mtZMRv6PTywYilFuoTYqcOTc16gMjRu02ZlD22boyxSE
+xria6kqxf5Vdn5ipo1jEGpTnIHkSS+Y8CetCaYgcezLaXlXN3RyjF6tCHMeS3iLl
+/zY2O4avG2BM+vvDGDW2FWtZg+hN+5Yk90Qt8dFTwvWRCfYaSWfi7id91p5X0rnL
+x1G07qw18LziKJj4HZiueqbDcDOYhfcA6sd0OHcvtXfGIoeqkXxi54cIOReRhN2/
+7ib3iUECgYEA2DNH5aiwc5uqTAL9RHTnuuFwQe46onJwnBkho+xEvvdsp2Q2f7VR
+c5M17fL+Rb5gq0O4vzeegKiYpo8gKjFp3Duv9Gdc/TB9sLEEt4NQMD4shV7ihBwC
+Rjsflww45dt0mccFZp1ncDYKWHDFzdhO+WB828FPFh/5dl6S+v4Q9bUCgYEAwx+G
+XhheTMSqoKGVJ283+4bNZWUSE99wcAhx9J3FkJera030mh0OHoCn0myBjRjxOSY/
+eBH8/0YoLkGYvTdEU/tYiLIWJ/ehC0eweXiwDehb5meco6u9WCeYvyPMLErXbe3K
+BQVyfcFzva4eC3dZ7lzxmyVyKXVTYgY0Hf7biJsCgYBKHdJg/eJ3z36jDkdK55Tl
+cRFt2MCLHhZSvR7WNlIe8W1zORyhzUP+DhJn32yh9jDnpZC5JNUWoDWsq9ZIAKac
+1G1uqNytA6mjIBxQ2RhtYXMbybp3ta5l6zDaNFtxGTmw2hSU6BMk2bHUPdzhw2zX
+eudy4qM9H3sCxEs49k5UHQKBgDz7I0FRGFehtznQhg73AWYIsTSZK9cuI7O/z+2F
+SXNxE0/L40AvCHSb/NcUtkBkpS8ZNwjNhmY5hOE/+v5XwXEFwpumHKqNB7XAx/SO
+tWcDUYVmqFu2lsxwQ5qpE2xcT4u5n0OGeku3I/cJ7bXjrSWDwracM1uloVOnYK5n
+MjE1AoGAeM6Wrb0VXRq025+OEfoFis3P9S0REkkkabM9+VLRSWi63uxg2cyipxUg
+qJUThbUm1aSS1F+XWjG7vrDjWT/GQTYj9/CH3mZRflZgLUltVHEZesLwWqn15Gl/
+BDwaV6RN7F3BCSzgEfCutrfGJqxA0tx5TTcupOgwpZVakN+hm3c=
+-----END RSA PRIVATE KEY-----

+ 30 - 0
resources/cert/server_bkup.key.orig

@@ -0,0 +1,30 @@
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,E700A7E4CCCF78FC
+
+1/jqqjzwHWxdTvayJ+y//FTMuxZbIOT8hl4h+4zzh+/o45RHUa8n6nTI3mLSIK/i
+6yZqSaPaCiBINcLWmijbeDN73OhVL3rrum1VotcTUTA2LU0M+kLWpmcJrY5lsku2
+2voulXmLoCniup+nhnGXDWOk3jaLsMBOn3kYyVBgphwzGzKinFQnqzo/w6/2pJ/C
+iKb/GWNEuXwHkoTz7A4o1ZVVOQyx8h0klWbwjBEPB+cPE3h/bRTkJWTTy2yfCeUC
+nyRQ1BkWC6I5LLesC7gG0jsw3rcGkJnu+zNkxG43N9CkU74S/jNwktjqzKiSbO14
+SYu/NiaVLCtQTeaTeh39X8OGW4RzFbO32PVBl0jL5d8h3DpvTufbtC9BS9dADM0o
+pwCUVWiKKgApmqhFDyUpQB8ptfLewmp5ksB93NzdlPLV8vojJ7nBOrppaueXKQ6Z
+f380J3xCrVN7pTt/yT3mlvCnmb0gNhL6jAE53C112Upjmu40OBhwjGDjDXsOZBmZ
+NH0KEsLecIPgbx0W27h0j4JDdXGtI4mjFHHEnFj75We73BZ8BIlyRt7nxS+iFYNH
+hpbwuNc4dX953jwPy7CIxyms5cy4BigTv/rsgFWCxWxFcTqYkp6L3z8IC6apJDSp
+htKLzhFKjlXqP3vcwZYrAF26eOl6Pxn74853dRskAZNY5F40/7IjVb8l71tedWof
+WE5wpuXrZJd+GBeIM+plbPCnBiNSHuRzJPhLU3tsT3X70WfDxgIgM38P5uOOBLma
+hU/0wcL8+Q3HESPx5ju+5lYZBmozs5ANwMggXv0a1vBptI/kA0HeMQx52G4m1F+9
+aYRrNc+Exl901Yjn120Y6NllIk5EolsqNifDsems9sTiC91Fvh7yiYI5Pd7qCwoR
+2ssLbWda/+bgqtDXjmv4x1btWhWmbInBpCrp1YEwILlyNN6FQ/sQ8pvHtyC9+FcB
+xQ7wI0JnsCpj8E+P5C08EEgpTiUfelwYyTZLarAFMRe5HWZjgQW7+JvbiQ4Q3ZXM
+/DaYh6zGXvR4OomTqKN63i6iAckS7Uh3/XzaWbjOAxvMIgKhU7OBqDAlPvgXJh1y
+sDig2zTR603AURkWZir2OOr7XKZcqNj8lxt+BG+E6bwxdeIeEQn7f8Ef5oUmFNXQ
+o5zQwI12RDQXaBRDG/wTONrUhvc8TEM04jNGKMRPU6FlZSEF2zlTSU8/QtO56FwR
+MwhPlNUSgWgvqzFWoA4W7XWjAfYqvoVRcLjcZF2WBUJwYq4ZODNqBH+j3+Ftge9l
+wKc/9KjcurpAWbg7gq9XtwgiT8bYHcM3NSOwgnrOJ4wtukuwbLq2JjMLgFQeDAev
+NFJfbYoZ0iTyIq1WRS0MlhAwDKujDOoQLqkF41LC5Ac6RpMeR689xN18YE6b6iXp
+f93tHI+6Ru1I+2ZoGbvCPmasv3jk69C8A/StmUEcFfxmOr5qhQEVR2pIXfXKeqbE
+KCUoR4Wax42q/bDhgIOOmq+E9YsTuy4Iq5J25WDIbgWN35s0qXDm91s+aY0KtDUu
+fxGdOIHQHx10ARHUKZ6AhXSF+q5QQFy4ejlgiTMorvT0XUHmIQ82hw==
+-----END RSA PRIVATE KEY-----

+ 46 - 0
resources/cert/server_bkup.pem

@@ -0,0 +1,46 @@
+-----BEGIN CERTIFICATE-----
+MIIDBjCCAe4CCQCFKfFGF1i10TANBgkqhkiG9w0BAQsFADBFMQswCQYDVQQGEwJB
+VTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0
+cyBQdHkgTHRkMB4XDTE3MDkwMzE5MjI1MVoXDTI3MDkwMTE5MjI1MVowRTELMAkG
+A1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0
+IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+AKTJr3PzWOR1Hrjfk9bBA7TptI1hNYVn/Xvi2GSferhJaWg69b2Li4t5/JxElESR
+8fy0lBMzQ/yaFiQb51y7Q1c+Z6xWLxk322rfy3WhU3DYiFL2sJndrDvAhmso122Z
+xVADA0cQwo520MgFYpHNBF8BcFV2IRukzVX+/nVkki05XcwfbI2y6gqCRpOSXdE9
+gCDVan3tSRbtrwKu7IHy88mL6057o82Uezpl0KesoCwb4f5oqs2vThUmXKuxu8GO
+WpZNK4JFWnTgDOJrubZvKxzzL9E85DS9aXLk6dNKBJVKPCETnYw+2ArMgXzs+JuA
+C4AhV0e6unLX9DcavZ6j7JcCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAJJWqVuQs
+guFZG/LZPeeh1WtZr9S6R5BT4+b+PH2teVyGtClXV6KpwcLNEVWzY3qPtrFFPQI1
+uEg6cY8w1JOiCmj/IWKsiHd+IdsqsFVKL+Bmvthm3HSgA6p6ZiVCG4E67p8xwiJP
+p5EwtMM/7BdS/tHLUOe1OpNZ8XtHRVUNbzy/+JV0So7WLP9ksGb6COL/9MF0/qG4
+4XrrvpZ9FAgRC9/22QyYiQqoaegGEy4E+KHOBxRmipInsU2H8aQA2sZzQ49Zew9E
+QI2jSJTC7EeuZ0OcZawKkJY1ZtIGmOo/Q956keOLdG8cxyq6pXW3gmq1X5QBxy1M
+pZYi5eIENGE63g==
+-----END CERTIFICATE-----
+-----BEGIN RSA PRIVATE KEY-----
+MIIEogIBAAKCAQEApMmvc/NY5HUeuN+T1sEDtOm0jWE1hWf9e+LYZJ96uElpaDr1
+vYuLi3n8nESURJHx/LSUEzND/JoWJBvnXLtDVz5nrFYvGTfbat/LdaFTcNiIUvaw
+md2sO8CGayjXbZnFUAMDRxDCjnbQyAVikc0EXwFwVXYhG6TNVf7+dWSSLTldzB9s
+jbLqCoJGk5Jd0T2AINVqfe1JFu2vAq7sgfLzyYvrTnujzZR7OmXQp6ygLBvh/miq
+za9OFSZcq7G7wY5alk0rgkVadOAM4mu5tm8rHPMv0TzkNL1pcuTp00oElUo8IROd
+jD7YCsyBfOz4m4ALgCFXR7q6ctf0Nxq9nqPslwIDAQABAoIBAE/B7lHIrnWk2kHQ
+tNV0hj7B/smPC0COnHmhyeqp5dPcdFAmeVpMeDYBzOo1py2pFd6h6CmC3p0cVysS
+9mBDosxPQA6BiDpEdsa7mtZMRv6PTywYilFuoTYqcOTc16gMjRu02ZlD22boyxSE
+xria6kqxf5Vdn5ipo1jEGpTnIHkSS+Y8CetCaYgcezLaXlXN3RyjF6tCHMeS3iLl
+/zY2O4avG2BM+vvDGDW2FWtZg+hN+5Yk90Qt8dFTwvWRCfYaSWfi7id91p5X0rnL
+x1G07qw18LziKJj4HZiueqbDcDOYhfcA6sd0OHcvtXfGIoeqkXxi54cIOReRhN2/
+7ib3iUECgYEA2DNH5aiwc5uqTAL9RHTnuuFwQe46onJwnBkho+xEvvdsp2Q2f7VR
+c5M17fL+Rb5gq0O4vzeegKiYpo8gKjFp3Duv9Gdc/TB9sLEEt4NQMD4shV7ihBwC
+Rjsflww45dt0mccFZp1ncDYKWHDFzdhO+WB828FPFh/5dl6S+v4Q9bUCgYEAwx+G
+XhheTMSqoKGVJ283+4bNZWUSE99wcAhx9J3FkJera030mh0OHoCn0myBjRjxOSY/
+eBH8/0YoLkGYvTdEU/tYiLIWJ/ehC0eweXiwDehb5meco6u9WCeYvyPMLErXbe3K
+BQVyfcFzva4eC3dZ7lzxmyVyKXVTYgY0Hf7biJsCgYBKHdJg/eJ3z36jDkdK55Tl
+cRFt2MCLHhZSvR7WNlIe8W1zORyhzUP+DhJn32yh9jDnpZC5JNUWoDWsq9ZIAKac
+1G1uqNytA6mjIBxQ2RhtYXMbybp3ta5l6zDaNFtxGTmw2hSU6BMk2bHUPdzhw2zX
+eudy4qM9H3sCxEs49k5UHQKBgDz7I0FRGFehtznQhg73AWYIsTSZK9cuI7O/z+2F
+SXNxE0/L40AvCHSb/NcUtkBkpS8ZNwjNhmY5hOE/+v5XwXEFwpumHKqNB7XAx/SO
+tWcDUYVmqFu2lsxwQ5qpE2xcT4u5n0OGeku3I/cJ7bXjrSWDwracM1uloVOnYK5n
+MjE1AoGAeM6Wrb0VXRq025+OEfoFis3P9S0REkkkabM9+VLRSWi63uxg2cyipxUg
+qJUThbUm1aSS1F+XWjG7vrDjWT/GQTYj9/CH3mZRflZgLUltVHEZesLwWqn15Gl/
+BDwaV6RN7F3BCSzgEfCutrfGJqxA0tx5TTcupOgwpZVakN+hm3c=
+-----END RSA PRIVATE KEY-----

+ 1 - 0
resources/cert/server_bkup.pin

@@ -0,0 +1 @@
+pf3px1MBPmlTGAPoiHWqaSJ9L9Z+DKfwgsU7LfLnmsk=