Über das Internet erreichbar gemacht

Dieser Commit ist enthalten in:
2025-06-07 19:08:14 +02:00
Ursprung a37d68838a
Commit 94148f10a8
21 geänderte Dateien mit 933 neuen und 55 gelöschten Zeilen

21
v2_nginx/Dockerfile Normale Datei
Datei anzeigen

@@ -0,0 +1,21 @@
FROM nginx:alpine
# SSL-Verzeichnis erstellen
RUN mkdir -p /etc/nginx/ssl
# Default config entfernen
RUN rm -f /etc/nginx/conf.d/default.conf
# Nginx-Konfiguration kopieren
COPY nginx.conf /etc/nginx/nginx.conf
# SSL-Zertifikate kopieren
COPY ssl/fullchain.pem /etc/nginx/ssl/
COPY ssl/privkey.pem /etc/nginx/ssl/
# Berechtigungen setzen
RUN chmod 600 /etc/nginx/ssl/privkey.pem
EXPOSE 80 443
CMD ["nginx", "-g", "daemon off;"]

Datei anzeigen

@@ -0,0 +1,21 @@
FROM nginx:alpine
# Certbot für Let's Encrypt installieren
RUN apk add --no-cache certbot certbot-nginx
# SSL-Verzeichnis erstellen
RUN mkdir -p /etc/nginx/ssl
# Default config entfernen
RUN rm -f /etc/nginx/conf.d/default.conf
# Nginx-Konfiguration kopieren
COPY nginx.conf /etc/nginx/nginx.conf
# Entrypoint für Certbot
COPY entrypoint-letsencrypt.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
EXPOSE 80 443
ENTRYPOINT ["/entrypoint.sh"]

Datei anzeigen

@@ -0,0 +1,47 @@
#!/bin/sh
# Temporäre Nginx config für Let's Encrypt Challenge
cat > /etc/nginx/conf.d/default.conf << EOF
server {
listen 80;
server_name admin-panel-undso.z5m7q9dk3ah2v1plx6ju.com api-software-undso.z5m7q9dk3ah2v1plx6ju.com;
location /.well-known/acme-challenge/ {
root /var/www/certbot;
}
location / {
return 301 https://\$host\$request_uri;
}
}
EOF
# Nginx starten
nginx
# Let's Encrypt Zertifikate holen
echo "Requesting Let's Encrypt certificates..."
certbot certonly --webroot -w /var/www/certbot \
-d admin-panel-undso.z5m7q9dk3ah2v1plx6ju.com \
-d api-software-undso.z5m7q9dk3ah2v1plx6ju.com \
--non-interactive \
--agree-tos \
--email admin@z5m7q9dk3ah2v1plx6ju.com \
--no-eff-email
# Prüfen ob erfolgreich
if [ $? -eq 0 ]; then
echo "Certificates obtained successfully!"
# Nginx stoppen
nginx -s stop
# Kopiere die echte config
cp /etc/nginx/nginx.conf.real /etc/nginx/nginx.conf
# Nginx mit SSL starten
nginx -g "daemon off;"
else
echo "Failed to obtain certificates"
nginx -g "daemon off;"
fi

30
v2_nginx/entrypoint.sh Normale Datei
Datei anzeigen

@@ -0,0 +1,30 @@
#!/bin/sh
# Nginx im Hintergrund starten
nginx
# Warte bis Nginx läuft
sleep 5
# Versuche Let's Encrypt Zertifikate zu holen (nur in Produktion)
if [ "$LETSENCRYPT_ENABLED" = "true" ]; then
echo "Requesting Let's Encrypt certificates..."
# Admin Panel Zertifikat
certbot --nginx -d admin-panel-undso.z5m7q9dk3ah2v1plx6ju.com \
--non-interactive --agree-tos --email ${LETSENCRYPT_EMAIL} \
--redirect --expand --no-eff-email
# API Server Zertifikat
certbot --nginx -d api-software-undso.z5m7q9dk3ah2v1plx6ju.com \
--non-interactive --agree-tos --email ${LETSENCRYPT_EMAIL} \
--redirect --expand --no-eff-email
# Auto-renewal einrichten
echo "0 0,12 * * * root certbot renew --quiet" >> /etc/crontabs/root
crond
fi
# Nginx im Vordergrund halten
nginx -s stop
nginx -g "daemon off;"

71
v2_nginx/nginx.conf Normale Datei
Datei anzeigen

@@ -0,0 +1,71 @@
events {
worker_connections 1024;
}
http {
# SSL-Einstellungen
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# Admin Panel
server {
listen 80;
server_name admin-panel-undso.z5m7q9dk3ah2v1plx6ju.com;
# Redirect HTTP to HTTPS
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name admin-panel-undso.z5m7q9dk3ah2v1plx6ju.com;
# SSL-Zertifikate (echte Zertifikate)
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
# Proxy-Einstellungen
location / {
proxy_pass https://admin-panel:443;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# WebSocket support (falls benötigt)
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# SSL-Verifizierung für selbstsignierte Zertifikate deaktivieren
proxy_ssl_verify off;
}
}
# API Server (für später)
server {
listen 80;
server_name api-software-undso.z5m7q9dk3ah2v1plx6ju.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name api-software-undso.z5m7q9dk3ah2v1plx6ju.com;
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
location / {
proxy_pass https://license-server:8443;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_ssl_verify off;
}
}
}

112
v2_nginx/ssl/fullchain.pem Normale Datei
Datei anzeigen

@@ -0,0 +1,112 @@
-----BEGIN CERTIFICATE-----
MIIGqDCCBRCgAwIBAgIRAP++iWUqjw7yOtqdDe3DXdcwDQYJKoZIhvcNAQEMBQAw
YDELMAkGA1UEBhMCR0IxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDE3MDUGA1UE
AxMuU2VjdGlnbyBQdWJsaWMgU2VydmVyIEF1dGhlbnRpY2F0aW9uIENBIERWIFIz
NjAeFw0yNTA2MDcwMDAwMDBaFw0yNjA2MDcyMzU5NTlaMCUxIzAhBgNVBAMMGiou
ejVtN3E5ZGszYWgydjFwbHg2anUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
MIIBCgKCAQEAqmWkzm5LZrm74xZv04oKnuVso1bBn5n2qp2fECbS9N6LM1w90MkY
/H3z5JBX4QN/L6Lrp2rJwPZb4JA7Ci9jH11w53+duuUNkw8s1sl7KjZkis/G7+EJ
lYWwzodbOzzhxsJ3NSAzS0KFMM/l9L+0XcmrU7vYyiegq3+bvBXiCh/osKwSqSQ9
SGLNMkw5y+jpbmdnGkTKvraFXpREIx2IDYLv7R+kKwqO10By475OhnzwsnLcpW6k
wkst2Mm/nV4unhhEJ2xseCkWpNTulAgV8k1GkBTQQ2Ja7JVG1QXHI1Tj2+XrU4Ct
iETl7JMogO0jjJfL1YPFxKMsDJsMkVFSSQIDAQABo4IDFjCCAxIwHwYDVR0jBBgw
FoAUaMASFhgOr872h6YyV6NGUV3LBycwHQYDVR0OBBYEFD2tx0mT4AtPU2ISB5ui
xdaBPrXKMA4GA1UdDwEB/wQEAwIFoDAMBgNVHRMBAf8EAjAAMB0GA1UdJQQWMBQG
CCsGAQUFBwMBBggrBgEFBQcDAjBJBgNVHSAEQjBAMDQGCysGAQQBsjEBAgIHMCUw
IwYIKwYBBQUHAgEWF2h0dHBzOi8vc2VjdGlnby5jb20vQ1BTMAgGBmeBDAECATCB
hAYIKwYBBQUHAQEEeDB2ME8GCCsGAQUFBzAChkNodHRwOi8vY3J0LnNlY3RpZ28u
Y29tL1NlY3RpZ29QdWJsaWNTZXJ2ZXJBdXRoZW50aWNhdGlvbkNBRFZSMzYuY3J0
MCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5zZWN0aWdvLmNvbTCCAX4GCisGAQQB
1nkCBAIEggFuBIIBagFoAHcAlpdkv1VYl633Q4doNwhCd+nwOtX2pPM2bkakPw/K
qcYAAAGXSz80dwAABAMASDBGAiEAwqN1tMQQth342Rir/V/0PdCs2MH0OmuoT2xZ
8tiwaikCIQCnKukR44Tt6ZJaZ+hcleqT77ug7XRIXpgEtei6avNbLgB2ABmG1Mco
qm/+ugNveCpNAZGqzi1yMQ+uzl1wQS0lTMfUAAABl0s/Mm4AAAQDAEcwRQIgEifW
JKtue9T6SyDo21oG3kX3BWzFS3b+EA0aBpe7+8YCIQC8dXbuLYzaOinK7JDtLwWT
QSveqzYirRlHT2E9OswywQB1AA5XlLzzrqk+MxssmQez95Dfm8I9cTIl3SGpJaxh
xU4hAAABl0s/MrwAAAQDAEYwRAIgK52ai/UeJMdBo/aSkvlm6jLmVIHN4/IiidX+
AEP5A5UCIGCLtmAlmj+G3m+Qci2ex6iwW/JkpeSTCns2gCvYhcNsMD8GA1UdEQQ4
MDaCGiouejVtN3E5ZGszYWgydjFwbHg2anUuY29tghh6NW03cTlkazNhaDJ2MXBs
eDZqdS5jb20wDQYJKoZIhvcNAQEMBQADggGBAC/vgQ15loW1Sb2gEPc00aHzxL0S
QrBFyyJAhYAu1bJRnDVZTuRsrheyKJgZJUSRUMv9j7Row4EcclNRKjzdCCK0K7wv
HFK5O1npeC0WFIKu+Wescy/a0rxXV6vSadtE/2R5NI4gZW1KW7n8+g5lcB1bqBth
JuiUKtddMCi/d04UQOasJ35OK61yHi893RnVpfs52wNik++PWPDvVahdCLMqQ6KY
SngLKlmIfuYDfTmwftTJsRGnTMsw1lUI+L9D4MeqcYmakWUcqD/v3SyijcL/M7ag
lkZoyQPy8qd/Kjgoh+hs1vscU6jotP40ZhSnCBZZZ9bw7h7RvhQY6uOgLIwKfjRG
NXbG4FkQBPLhkLwFmGnC/aZui1Eholi9h1Rz4cFZ5VDqdjsN/YIjpH/t2LHMh9Lu
njibo1dOyQqNSdILZfUGo/kii5ZMI2+TRyOZOACvbLU9mZmyGjXS4l5tc4PRhjUE
2V3Apslo+pviTCIinLPng15mzTOQxlUokLf5yg==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIGTDCCBDSgAwIBAgIQOXpmzCdWNi4NqofKbqvjsTANBgkqhkiG9w0BAQwFADBf
MQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQD
Ey1TZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYw
HhcNMjEwMzIyMDAwMDAwWhcNMzYwMzIxMjM1OTU5WjBgMQswCQYDVQQGEwJHQjEY
MBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTcwNQYDVQQDEy5TZWN0aWdvIFB1Ymxp
YyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gQ0EgRFYgUjM2MIIBojANBgkqhkiG9w0B
AQEFAAOCAY8AMIIBigKCAYEAljZf2HIz7+SPUPQCQObZYcrxLTHYdf1ZtMRe7Yeq
RPSwygz16qJ9cAWtWNTcuICc++p8Dct7zNGxCpqmEtqifO7NvuB5dEVexXn9RFFH
12Hm+NtPRQgXIFjx6MSJcNWuVO3XGE57L1mHlcQYj+g4hny90aFh2SCZCDEVkAja
EMMfYPKuCjHuuF+bzHFb/9gV8P9+ekcHENF2nR1efGWSKwnfG5RawlkaQDpRtZTm
M64TIsv/r7cyFO4nSjs1jLdXYdz5q3a4L0NoabZfbdxVb+CUEHfB0bpulZQtH1Rv
38e/lIdP7OTTIlZh6OYL6NhxP8So0/sht/4J9mqIGxRFc0/pC8suja+wcIUna0HB
pXKfXTKpzgis+zmXDL06ASJf5E4A2/m+Hp6b84sfPAwQ766rI65mh50S0Di9E3Pn
2WcaJc+PILsBmYpgtmgWTR9eV9otfKRUBfzHUHcVgarub/XluEpRlTtZudU5xbFN
xx/DgMrXLUAPaI60fZ6wA+PTAgMBAAGjggGBMIIBfTAfBgNVHSMEGDAWgBRWc1hk
lfmSGrASKgRieaFAFYghSTAdBgNVHQ4EFgQUaMASFhgOr872h6YyV6NGUV3LBycw
DgYDVR0PAQH/BAQDAgGGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0lBBYwFAYI
KwYBBQUHAwEGCCsGAQUFBwMCMBsGA1UdIAQUMBIwBgYEVR0gADAIBgZngQwBAgEw
VAYDVR0fBE0wSzBJoEegRYZDaHR0cDovL2NybC5zZWN0aWdvLmNvbS9TZWN0aWdv
UHVibGljU2VydmVyQXV0aGVudGljYXRpb25Sb290UjQ2LmNybDCBhAYIKwYBBQUH
AQEEeDB2ME8GCCsGAQUFBzAChkNodHRwOi8vY3J0LnNlY3RpZ28uY29tL1NlY3Rp
Z29QdWJsaWNTZXJ2ZXJBdXRoZW50aWNhdGlvblJvb3RSNDYucDdjMCMGCCsGAQUF
BzABhhdodHRwOi8vb2NzcC5zZWN0aWdvLmNvbTANBgkqhkiG9w0BAQwFAAOCAgEA
YtOC9Fy+TqECFw40IospI92kLGgoSZGPOSQXMBqmsGWZUQ7rux7cj1du6d9rD6C8
ze1B2eQjkrGkIL/OF1s7vSmgYVafsRoZd/IHUrkoQvX8FZwUsmPu7amgBfaY3g+d
q1x0jNGKb6I6Bzdl6LgMD9qxp+3i7GQOnd9J8LFSietY6Z4jUBzVoOoz8iAU84OF
h2HhAuiPw1ai0VnY38RTI+8kepGWVfGxfBWzwH9uIjeooIeaosVFvE8cmYUB4TSH
5dUyD0jHct2+8ceKEtIoFU/FfHq/mDaVnvcDCZXtIgitdMFQdMZaVehmObyhRdDD
4NQCs0gaI9AAgFj4L9QtkARzhQLNyRf87Kln+YU0lgCGr9HLg3rGO8q+Y4ppLsOd
unQZ6ZxPNGIfOApbPVf5hCe58EZwiWdHIMn9lPP6+F404y8NNugbQixBber+x536
WrZhFZLjEkhp7fFXf9r32rNPfb74X/U90Bdy4lzp3+X1ukh1BuMxA/EEhDoTOS3l
7ABvc7BYSQubQ2490OcdkIzUh3ZwDrakMVrbaTxUM2p24N6dB+ns2zptWCva6jzW
r8IWKIMxzxLPv5Kt3ePKcUdvkBU/smqujSczTzzSjIoR5QqQA6lN1ZRSnuHIWCvh
JEltkYnTAH41QJ6SAWO66GrrUESwN/cgZzL4JLEqz1Y=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIGlTCCBH2gAwIBAgIRANJ/u8HeNZ5SFq1hSVhgmcQwDQYJKoZIhvcNAQEMBQAw
gYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpOZXcgSmVyc2V5MRQwEgYDVQQHEwtK
ZXJzZXkgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMS4wLAYD
VQQDEyVVU0VSVHJ1c3QgUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTIx
MDMyMjAwMDAwMFoXDTM4MDExODIzNTk1OVowXzELMAkGA1UEBhMCR0IxGDAWBgNV
BAoTD1NlY3RpZ28gTGltaXRlZDE2MDQGA1UEAxMtU2VjdGlnbyBQdWJsaWMgU2Vy
dmVyIEF1dGhlbnRpY2F0aW9uIFJvb3QgUjQ2MIICIjANBgkqhkiG9w0BAQEFAAOC
Ag8AMIICCgKCAgEAk77VNlJ12AEjoBxHQknuY7a3If3EldVIKyZ8FFMQ2nn9K7ct
pNQs+uoy3UnCub0PSD17WphUr55dMXRPB/xQId2kz2hPGxJjbSWZTCqZ80gwYfqB
fB6nCErcPiscHxhMcao1jK34bug7StnllALWiYQTqm3ITzPMUJY3kjPcX4jnn1TZ
SPCYQ9Zm/Z8XOEPFAVEL1+MjDxRdWxTnS77d9MjaAzfR1jmhIVEwg7Bt1zBOlluR
8HAkq79FgWRDDb0hOi886Z4NyyC1QifM2m+b7mQwkDnNk2WBITG1I1AzNyLjOO34
MTDMRf5i+dFdMnlCh99qzFYZQE3Oqrv5tXZJlPEn+JGlg+UGs2MOgNzgElWApjtm
tDmHLcjw0NEU6eQNTQ72XVdyxTscR1ad4tX7gWGMzE2AkDRbt9cUddzYBEifwMEo
iLTpHMqnsfFWt3tJTFnlIBWohAIp+jiUaZpJBo/NH3kUFxIMg3reH7GX7vmXeCik
yESS6X0mBaZYcpt5E9gRX67FOGI0aLKGMI74kGGeMmz1BzbNokxu7Io27fLmmRVE
cMN8vJw5wLTha/eDJSNX2RKA5UnwdQ/vjescm1QotCE8/HwK/+97a3X/ix2gGQWr
+vgrgULoOLq7+6r9PeDzyt9Ol5cp7fMYVumllqy9w5CYsuD5otSmR0N8bc8CAwEA
AaOCASAwggEcMB8GA1UdIwQYMBaAFFN5v1qqK0rPVIDh2JvAnfKyA2bLMB0GA1Ud
DgQWBBRWc1hklfmSGrASKgRieaFAFYghSTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T
AQH/BAUwAwEB/zAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEQYDVR0g
BAowCDAGBgRVHSAAMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwudXNlcnRy
dXN0LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDA1
BggrBgEFBQcBAQQpMCcwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnVzZXJ0cnVz
dC5jb20wDQYJKoZIhvcNAQEMBQADggIBADpvBIlq7bMU0cFDT/9P9+BsgCkRgQs0
S6Bf7vJSlWMHwby0VGvxCS0hrbi0K2BINZbEbsVsgpQq04431yyoVn3Hldorgq24
RldRDOOipEZDTFB9wC9HYt1thHF00XeG2C8KC1plwoEzKAIhPvefI/C3cT0CfTXJ
uFjUbKIgSwjNjw6YHtLgoy/hd5+JLUlLco/gzFX/qWbT7tEquOMYpsNKWZj8TLqP
q6zMiG4Na6feEZte6YPXGrMWlTWN341vDedc+yxQqSug79HJUQcOZs7KyDWztmae
QxsPE49UV/8XwrfZtZaYyrs4FpD94Z4Q8dzXGL8+qEJjxgcza7W6PROaClubavd1
VKPm8+aCW77u7SxpR2TFGL6kPdxsKyFijpcunR5V79sUyROfNdzjrAcFWZXK8sbb
9FlnwuVG677JLv+ZVTX5AxLvW5OB4zt5uS+zB62wJ/Wv+jXGAttSAcJec4iFgCWH
Rvdi/jJoSzRLa3nEzx6pFIzclSCnh0u1xCeLcUBypSiPga8W+6PkuoyQq8U9qs9E
oxG5NvrvlyshwUS9yvcZRGw7Ljlx4jJH/BhIPR8kIBCQj1vna9TziZOrw1Of8hDU
bHKFG9Pm8Dp2vbjz/2JH39qvxshPKVllGfq+5klPm7yZRUYTiCMAbqwNdL/nsqF2
Rnnyp58XRStJ
-----END CERTIFICATE-----

27
v2_nginx/ssl/privkey.pem Normale Datei
Datei anzeigen

@@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAqmWkzm5LZrm74xZv04oKnuVso1bBn5n2qp2fECbS9N6LM1w9
0MkY/H3z5JBX4QN/L6Lrp2rJwPZb4JA7Ci9jH11w53+duuUNkw8s1sl7KjZkis/G
7+EJlYWwzodbOzzhxsJ3NSAzS0KFMM/l9L+0XcmrU7vYyiegq3+bvBXiCh/osKwS
qSQ9SGLNMkw5y+jpbmdnGkTKvraFXpREIx2IDYLv7R+kKwqO10By475OhnzwsnLc
pW6kwkst2Mm/nV4unhhEJ2xseCkWpNTulAgV8k1GkBTQQ2Ja7JVG1QXHI1Tj2+Xr
U4CtiETl7JMogO0jjJfL1YPFxKMsDJsMkVFSSQIDAQABAoIBADQVXYq7q9B6dTO0
Z/oA974Z4lsK6aQfK4Z7J2OIenLeky3fxAVNcpW66hGzDSl6KCYnZmCGA6U3qF27
uFAkq+eqaBhaqZu2569LtCjy7PK6LYFAgU5ROty5QJHgTcKNmXVne4iBjywx6QRC
h8eH0VnZisTNZjZkZngFSVT0W2M8XZjzXBkAH448KhRssMLB5WzJ/jToWdTqA/zg
M4dLnhSWQfgrZyzI1TA8rUu3v3UAdd37g8KCnq9+7Vtfr0rEe6K5c3JJIwKJWcXv
9GM6kC82otpHFGVXjZC040nESyeWUESaHphO3UUlQStgmUak3Bav0mniV/+6pCCq
DZL5nQECgYEA4SpSXfrD6OoJhcjT5fqBqEg6wKB8IDfy05zNqAvg5VKDylG1x+ir
umXD6znDmMSdODjHpIJR+El1Qp2DbRkDdJ3x3TTDclqFA9p7zcLBmS2FTnEfXX6o
R3M9LgkDNdqVgyzEK3e9LNZi6xCSMrRp/32eRGJqqs+KEDydBvj4eA8CgYEAwbtL
8QwSuZqEubRsz4f2sJqG4wODxl6jenYRPLXrL9BpLzzGsw460UKjaUtyzBYeJoBm
Fc+bBcyzMt6vsarzlyXpmEfDsf3+f1/l4MbcUoW3YWmrPdsQ8JuqCheRbl84h5lT
MOaiGjPlK7hnIxlq+mcnn6hnmUuObUCuGHHQeCcCgYBMQVwBzfJZSCGPeHMi+NK+
Xi/fmrpO4wPO3NTda6BvqaFOfJu2pzq5dsuCN17htvyT1M7wDN6b2qzmsZeX9Bey
f+cwhjUG3lcb9ftltOaB7OOvrCn2LPXqtMFsfMrkizGFajzJh9S+gaCggU0x9N3N
FArsl/QOAxl75Ds96EWlywKBgCZH8kuhTRnr1Io1gsLHZRGklz7IdQN/s+IA7osG
j4CVOBOjeMfs6eZruoqV5As7251UBdgNe957gnVs117OHvAhB7WViK/lNqLIuk3e
Pa74yTGwhavlW8WPnNv9qDkdC7iPrYaeLC3tTz2CZK7k2OS9+XBtAHukGHKyMzSV
WNJFAoGAMO81Vw+bw0c4twBhRvQhpXsXT5gCiDxtS+I+9neXcmEo0JvB+JM96j7I
UNKGFVcx22LgLIJb+77Euq42x8TpLIbnxCbLsT2GKxqqrB0z+YSixXrNotqV8/FB
EYo1D+bSB7wnFbLRh4dKJ8rFAu7MSt5/KH9qRHGNtDFLETxAvmE=
-----END RSA PRIVATE KEY-----