SMARCH-92: split elastic stack services for qa

- elasticsearch
- logstash
- kibana
master
Sven Ketelsen 4 years ago
parent 1bfcac5646
commit ad861db16e

@ -65,7 +65,7 @@
pre_tasks:
- name: "Import autodiscover tasks"
include_tasks: "tasks/autodiscover_pretasks.yml"
include_tasks: "tasks/autodiscover_pre_tasks.yml"
roles:
- role: connect

@ -1 +1 @@
docker run -v `pwd`/templates/elastic-certs:/certs -v `pwd`/templates/elastic-certs/instances.yaml:/usr/share/elasticsearch/config/certificates/instances.yml docker.elastic.co/elasticsearch/elasticsearch:7.12.0 /bin/sh "/certs/certutil.sh"
docker run -v `pwd`/templates/elastic-certs:/certs -v `pwd`/templates/elastic-certs/$1-instances.yaml:/usr/share/elasticsearch/config/certificates/$1-instances.yml docker.elastic.co/elasticsearch/elasticsearch:7.12.0 /bin/sh "/certs/certutil.sh" $1

@ -3,6 +3,8 @@
debug: false
send_status_messages: false
docker_enabled: true
use_ssl: true
http_s: "http{{ use_ssl | ternary('s', '', omit) }}"
@ -10,6 +12,8 @@ domain: "smardigo.digital"
stage_server_domain: "{{ inventory_hostname }}.{{ domain }}"
stage_server_url: "{{ http_s }}://{{ stage_server_domain }}"
alertmanager_channel_smardigo: "#monitoring-{{ stage }}"
ansible_ssh_host: "{{ stage_server_domain }}"
hetzner_server_type: cx11
@ -106,6 +110,9 @@ connect_base_url: "{{ connect_id }}.{{ domain }}"
wordpress_id: "{{ inventory_hostname }}-wordpress"
wordpress_base_url: "{{ wordpress_id }}.{{ domain }}"
filebeat_certificate: "{{ stage }}-elastic-stack-filebeat"
logstash_certificate: "{{ stage }}-elastic-stack-logstash-01"
#reverse_proxy_admin_username: "< see vault >"
#reverse_proxy_admin_password: "< see vault >"
@ -118,9 +125,6 @@ wordpress_base_url: "{{ wordpress_id }}.{{ domain }}"
#pgadmin4_admin_username: "< see vault >"
#pgadmin4_admin_password: "< see vault >"
#elastic_admin_username: "< see vault >"
#elastic_admin_password: "< see vault >"
#grafana_admin_username: "< see vault >"
#grafana_admin_password: "< see vault >"
#grafana_signing_secret: "< see vault >"

@ -1,71 +1,67 @@
$ANSIBLE_VAULT;1.1;AES256
38626433373337386462636636653332666435303439373263383736333031643331333863333039
6431656330353737353437343736353833363239623338650a386637306234386265396335336134
38386535393632393530363765663731653865636339333037626265366339356339653266346635
3463616161633262610a333032663866336334376539626364393066366639663432393666306636
38366531383461663063333566363837643661363139656134376536393262323761383831333365
38613339653532656538343836636566613161633832366238393035633434333738646164366163
36343766356261396634316639306563373962616431363130386661383462313537626466373861
65353438616632653163616464646337336136623163373239613334666231353833653562633564
66623438336466313662613761356333386238653465313334303631306563356132393232636663
66346436633365353163373066383234616637393566303066386335313966333833373537353932
66313033353662313538376535343036666264376633646562613532323137353034366461646462
63343033303334313061373966366664613564346136393436653039613836356263653931346366
66613232303038333631386431343338353964656262636432363436666633323435316464663639
63343264323064306266666533613163396662643963343239653637346239633133653261393937
36386130343663356261666639626466333632346365323861303963613236363139396339393838
61636361316233373138643032316134333966633633643139306237386564303932343337396361
65613034616130666131393131363632653137666433353638373438613037613332616232303932
30396431656330396536616565306365663762663564333166393735393139363264353930306139
35346566623466356430303764323335663861396630653736643864366130313132653030636132
63316538316263353132333531333866326637663037623330613564343932616236336332313531
66316261386634623863646430356630653839626633663836656633633435353666373037393638
66633135666663633637636634346435356436303565663365313164313064346134343034636333
31616162303438633164306365383531623936313066373634303034653638306235326365393361
30666430363765373062343536636561643164333538396462666463656234343632333234643635
36383332363830303266626332366465653663323037366130623263396532666235316463323738
61666337383931663331383765646137656636613339333035386664366534343566656533383063
36396534323136613838363737313036393833646565333435373635363930326232613562323537
36366665363063346465356132643337393337663566383433326266343037343235616437363666
34303566333765626138663036336638643234643337636635316566633133326439313061663063
61626465653933303033333935376330626130303530303538343336303530363136343436626535
38623961396164363262376163353839373062306664626533643365636261623763663964663131
39636136643465356335626564623835333564303665303261353163613332326232643630633732
64306230306337656237393066343164316464366631646662316335383338303337656337343963
32666535376431386361393534316634323932646235343039313234363462353237336437663062
31373561393536313661386230326564616162633735633661643635616663313238383336353136
31653532653664623062663962663364313039616438616265623636346138366363343435383731
65393834333565666266353432356531616663376365656464383836633737316334303937663434
62376437633837366363353964653139613737313961623932653463653436396239646330633437
36383430303461373164326535336662623766353531633162643363386563646633353463636664
62376566373463653033343837393038333732316261333462313834316233643139326435373638
64383465616566396330353839373032666162396339623232646337663737333130373065356264
62643661363538663938376430373436656565336630323030656334323264353430373236313031
66653739353032643239393834633133313738626538323733356162633235336634363766313538
32386535333537653463343036373462633133653563633965373466353634626564383366646635
32633361616534373633633438353663366665616261353839656265623265663434383766323563
63376439663863653739636537346162666434663937653634643630346363616166363763383461
38373531316634353938653538633937366336303166653635643137633462383965393134316138
33323332353631366534393432303535383064363136633365323334633062303064306336363865
39666434383139643530333338653336623263363238633333346631396637396337633336323136
64663530303434313138666131376566666132363962636131303331353337633230386433356238
61626232346339653632623763313931613866333731333136356634373833343438316534366534
62313137383631323861616432623537313866616261643232663533653962363030633837336265
31666565386362353265356666363534343833393336623232386234626162316236643630343965
66373966303639633432623934616633366566633264383061363639316534303839393836323130
36666431623264326239613439303135383737306630333938636431386266373534383533366265
61613965396463656362383362663565626135366162393639376262366330326334316265643361
62323530376338633430386532303364363863396238326165636638386334613462336561666131
65353430316264366261666539373962663161616461373034363931666636353435646534373530
62633534316135616162376132626464653636396431646332343837653933623762376135363265
31356638306663656137383066396466353338333230666635356430656136643038333436336561
35313832316430393262643739653562663238343964353431313861623930643130333836643761
66393565343339393233393262623837336163396163373635333066633036353266326531343464
37393165633733333934653037653463366432366439366139643662393365313435326133373438
32393936333764353464653162363534336533633430643031313763366139663866353562326161
37316634383161303737613637646263656138613534373064653034373135373835386564616263
65356363333537343032363634303333653032306232383938626466316134623430343563313037
66653364333331373565326538356534323965383630326666623836613434616439613166613434
33313934626432636139343763656163656631613464396366353161353064393333336333396336
39346337373761396361366562396263363031613433326233313634396261316638326263376538
3232386661306237613863383532613964663565396436316235
37393966613635643437356166643332323034373138656131333866376465623239373036396137
6130313562653266303766363038616533336461386639640a633562636636626564623263323861
35323233393361666163666435303161616134653631353563613536373630643932303130373066
6139373738313162650a323332306537343066363332616234336332653737666636303134373863
66326130616138366539353761376361323663396534633566656463323332313731386230313561
30396131366539323465396664616361323965343566383739373066376630303766346366363063
35396631313465656464336466333663353537333562386435386634326334376663353735393630
38353235393239633337313239323763626362396131333061626431306163323032353833613062
38646561336634366164393237336437636265343934313633663133663832623837303239376664
63643865396537313434333735393033333364656330343035386335336661323237646332653134
39323961633065363365613431326161363663356433646361636163643738313334343232646138
63356235336566663531373630316635666336623937666432373731646663306466326365383636
32643065393630323062313630343232653038396565643661333630366438653831303439313030
32346661666463626565623936303433393762346562633965356465666432376236396263336163
36396134653139343530303364613937383035383363613133346637316630373730643138356432
39666330333234663935356537666631393437343533386230316336356636643831663336393431
37666464393061313736653265346535343065373731633831333032646130336335643236383331
30353530343664366231373338643938386464373064373563623062383631313734363238373561
33323562356630663662663831656533616264623561643930306439336666653932343433356132
32386361363632363238323864333139383561323535326264386632386563613064623531376636
37386533346331346463633339333038656237366539303638643464313533646165376238613561
32376665653535643338363832393832613266306231303335646132663135373833616263373962
35363934303764643933616537393436306565643661623862306336623361373134383061323130
35393461623831353239616539613431376533363165326562383264323137376266356330333361
32346130656539373961653935313266343438303432346266306563353139323466646339363463
35383034333638353037306462353461376236623664636537366662313334313734343434336135
37643730366138663039616331343162653734616233653662306330333630653735626263653636
39366131623434306534633531383834643562373464666533343231323531646466396239386561
66313939343361623761633630636435396461666133326663373964633761353333316633633135
62353632613166373839613838616338633038633836623839333233306664323637353665343364
62343437626261653138663936303365383836333166633731346438336663353137646666616433
30383566666362613430653965623762346563346134306132666336626666653338376639336232
62343931386335326331343637633331326639363664653239666264633533623765643366633534
66636635316565366633653164396564656330373635363632646630303435376565306638303036
34326465333738323537313063356333663536613635303537653863316231363538393733663438
39656537373039316561313632356434323037656236346463646332316666646164356331393139
34666631396537633666633434643463626262353662653337626461663562343633306364613265
33323732396130643864326236363739636539323131633061303863323763633339373432366263
32346366643334653538316130306633363463623361333065396530643962306233646434636661
36666637313635306233346436323337346361366638373135313933643861303138363236376261
62366634333639616463383235373864653232333632323563346261326435386234376664373666
34336338616434613539636361336466346137323038313931323632653966376136326436373462
33316562383764336264333836336330333436383836353831386136326335363535383761646564
39333238613736393661386663636633306462633630386232636134623032353164373835303666
31316235363631303737313037636161366431313033303833316238373638613430316338316137
34646434393165376661613134633530323831656537303030316436646661303563346562326338
31636237313339373661306239363334313461663637393432636534376537366437333035353765
37336533393834633538363764613465643164663236626630646438373137306633326236303465
35383235616462356166613037363130356333653462313663313763393130303663396131343239
36383134636631653262386536333136366263383139383566393131356465303562376232643530
36653734313063643264323139363565396537336531656234333234303537333535383566386630
65633663313666636535336237663165316664393866623336343563646134366133303638383436
36393837636661313635316466366465386231343735393732666239666139353831633130386461
30393664313164316365343734363134663964356166306538653835303562306534663066653261
38343032353036373766313664313834386266363338393036363862616338376534383563373163
31656262323938616162326565353632613832303861343335633765376332623737616130383762
66336233316665346362313130626632373962643139376366653632663832643332316531326634
63336565633532303765366631316637393962653735373630616433306437613231383461633063
61356262633639383361663239333365643839346263666261336333343465363734396265633037
31663338306666656365383334623566306265356234386331373833656231303266616162616539
30363132326465663962376137333636313839346639353539383962336538646666366337643137
33373538663139313432313832623064386366386364343037666530353731373464316565393839
32353633303264386634326466333035613934303863336361636666633835363063643961363533
37393035613865343366656131333037383732363031333339663930616365626333333865653166
37343233613365643362656563633830396364386530373330656639653366383962333761333831
3133653563623432346636393634363563623166373435386164

@ -4,7 +4,6 @@ hetzner_server_type: cpx31
hetzner_server_labels: "stage={{ stage }} service=awx"
traefik_enabled: false
node_exporter_enabled: false
ansible_ssh_key_private: !vault |
$ANSIBLE_VAULT;1.1;AES256

@ -8,13 +8,13 @@ connect_image_version: "8.3.0"
# unique id for a service, will be used for service access management as well (e.g. keycloak realm)
connect_client_id: "{{ cluster_name }}"
connect_postgres_host: "{{ shared_service_pg_master_hostname }}"
connect_postgres_host: "{{ shared_service_postgres_01_hostname }}"
connect_postgres_database: "{{ stage }}_{{ tenant_id }}_{{ cluster_name }}_connect"
connect_postgres_username: "{{ connect_postgres_database }}"
connect_postgres_password: "connect-postgres-admin"
#connect_process_search_module: "external"
connect_elastic_host: "dev-elastic-stack-01-elastic"
connect_elastic_host: "{{ shared_service_elastic_stack_01_hostname }}"
connect_elastic_username: "{{ elastic_admin_username }}"
connect_elastic_password: "{{ elastic_admin_password }}"
connect_elastic_ca: "file:/usr/share/smardigo/ca.crt"

@ -2,3 +2,5 @@
hetzner_server_type: cx31
hetzner_server_labels: "stage={{ stage }} service=elastic"
traefik_enabled: false

@ -3,7 +3,7 @@
hetzner_server_type: cx11
hetzner_server_labels: "stage={{ stage }} service=keycloak"
keycloak_postgres_host: "{{ shared_service_pg_master_hostname }}"
keycloak_postgres_host: "{{ shared_service_postgres_01_hostname }}"
keycloak_postgres_database: "{{ stage }}_keycloak"
keycloak_postgres_username: "{{ keycloak_postgres_database }}"
keycloak_postgres_password: "keycloak-postgres-admin"

@ -0,0 +1,3 @@
---
hetzner_server_labels: "stage={{ stage }} service=kibana"

@ -0,0 +1,5 @@
---
hetzner_server_labels: "stage={{ stage }} service=logstash"
traefik_enabled: false

@ -5,7 +5,7 @@ hetzner_server_labels: "stage={{ stage }} service=connect"
management_connect_jwt_secret: "f1a291c1946f47e1815b73d01a7da814"
management_connect_postgres_host: "{{ shared_service_pg_master_hostname }}"
management_connect_postgres_host: "{{ shared_service_postgres_01_hostname }}"
management_connect_postgres_database: "dev_management_smardigo_connect"
management_connect_postgres_username: "{{ connect_postgres_database }}"
management_connect_postgres_password: "connect-postgres-admin"

@ -7,5 +7,6 @@ mysql_databases: []
mysql_users: []
docker_enabled: false
traefik_enabled: false
node_exporter_enabled: false
filebeat_enabled: false

@ -5,4 +5,6 @@ hetzner_server_labels: "stage={{ stage }} service=postgres"
postgres_acls: []
pgadmin4_enabled: true
docker_enabled: false
traefik_enabled: false
filebeat_enabled: false

@ -2,47 +2,60 @@
stage: "dev"
alertmanager_channel_smardigo: "#monitoring-qa"
# TODO read configuration with hetzner rest api
shared_service_network: "10.0.0.0/16"
# TODO bind address ist set to public ip instead of 0.0.0.0
#shared_service_awx_ip: "10.0.0.10"
shared_service_docker_ip: "10.0.0.7"
shared_service_elastic_01: "10.0.0.2"
shared_service_elastic_02: "10.0.0.3"
shared_service_elastic_03: "10.0.0.4"
shared_service_elastic_01: "10.0.0.22"
shared_service_elastic_02: "10.0.0.23"
shared_service_elastic_03: "10.0.0.24"
shared_service_logstash_01: "10.0.0.26"
shared_service_iam_ip: "10.0.0.13"
shared_service_keycloak_ip: "10.0.0.6"
shared_service_mail_ip: "10.0.0.8"
shared_service_maria_ip: "10.0.0.11"
shared_service_pgadmin_ip: "10.0.0.19"
shared_service_pg_master_ip: "10.0.0.17"
shared_service_pg_slave_ip: "10.0.0.18"
shared_service_webdav_ip: "10.0.0.16"
shared_service_awx_hostname: "dev-awx-01.smardigo.digital"
shared_service_maria_hostname: "dev-maria-01"
shared_service_postgres_01_hostname: "dev-postgres-01"
shared_service_postgres_02_hostname: "dev-postgres-02"
shared_service_elastic_stack_01_hostname: "{{ stage }}-elastic-stack-elastic-01"
shared_service_elastic_stack_02_hostname: "{{ stage }}-elastic-stack-elastic-02"
shared_service_elastic_stack_03_hostname: "{{ stage }}-elastic-stack-elastic-03"
shared_service_elastic_stack_logstash_01_hostname: "{{ stage }}-elastic-stack-logstash-01"
shared_service_docker_registry_hostname: "dev-docker-registry-01.smardigo.digital"
shared_service_iam_hostname: "dev-iam-01.smardigo.digital"
shared_service_keycloak_hostname: "dev-keycloak-01.smardigo.digital"
shared_service_mail_hostname: "dev-mail-01.smardigo.digital"
shared_service_maria_hostname: "dev-maria-01.smardigo.digital"
shared_service_pgadmin_hostname: "dev-pgadmin4-01.smardigo.digital"
shared_service_pg_master_hostname: "dev-postgres-01.smardigo.digital"
shared_service_pg_slave_hostname: "dev-postgres-02.smardigo.digital"
shared_service_webdav_hostname: "dev-webdav-01.smardigo.digital"
management_service_connect_hostname: "dev-management-smardigo-01-connect.smardigo.digital"
keycloak_server_url: "https://{{ shared_service_keycloak_hostname }}"
shared_service_hosts: [
{
ip: "127.0.1.1",
name: "{{ inventory_hostname }}"
},
# TODO bind address ist set to public ip instead of 0.0.0.0
# {
# ip: "{{ shared_service_awx_ip }}",
# name: "{{ shared_service_awx_hostname }}"
# },
{
ip: "{{ shared_service_elastic_01 }}",
name: "{{ shared_service_elastic_stack_01_hostname }}"
},
{
ip: "{{ shared_service_elastic_02 }}",
name: "{{ shared_service_elastic_stack_02_hostname }}"
},
{
ip: "{{ shared_service_elastic_03 }}",
name: "{{ shared_service_elastic_stack_03_hostname }}"
},
{
ip: "{{ shared_service_logstash_01 }}",
name: "{{ shared_service_elastic_stack_logstash_01_hostname }}"
},
{
ip: "{{ shared_service_docker_ip }}",
name: "{{ shared_service_docker_registry_hostname }}"
@ -63,17 +76,9 @@ shared_service_hosts: [
ip: "{{ shared_service_maria_ip }}",
name: "{{ shared_service_maria_hostname }}"
},
{
ip: "{{ shared_service_pgadmin_ip }}",
name: "{{ shared_service_pgadmin_hostname }}"
},
{
ip: "{{ shared_service_pg_master_ip }}",
name: "{{ shared_service_pg_master_hostname }}"
},
{
ip: "{{ shared_service_pg_slave_ip }}",
name: "{{ shared_service_pg_slave_hostname }}"
name: "{{ shared_service_postgres_01_hostname }}"
},
{
ip: "{{ shared_service_webdav_ip }}",
@ -81,138 +86,23 @@ shared_service_hosts: [
}
]
docker_registry_username: "< see vault >"
docker_registry_token: "< see vault >"
keycloak_server_url: "https://{{ shared_service_keycloak_hostname }}"
filebeat_certificate: "dev-elastic-stack-filebeat"
logstash_certificate: "dev-elastic-stack-logstash"
# TODO read configuration with hetzner rest api
elastic_stack_network: {
dev-elastic-stack-01: "{{ shared_service_elastic_01 }}",
dev-elastic-stack-02: "{{ shared_service_elastic_02 }}",
dev-elastic-stack-03: "{{ shared_service_elastic_03 }}",
dev-elastic-stack-elastic-01: "{{ shared_service_elastic_01 }}",
dev-elastic-stack-elastic-02: "{{ shared_service_elastic_02 }}",
dev-elastic-stack-elastic-03: "{{ shared_service_elastic_03 }}",
}
logstash_hostname: "dev-elastic-stack-01-logstash"
elastic_extra_hosts: [
{
hostname: dev-elastic-stack-01-elastic,
ip: "{{ shared_service_elastic_01 }}",
},
{
hostname: dev-elastic-stack-02-elastic,
ip: "{{ shared_service_elastic_02 }}",
},
{
hostname: dev-elastic-stack-03-elastic,
ip: "{{ shared_service_elastic_03 }}",
},
]
filebeat_extra_hosts: [
{
hostname: dev-elastic-stack-01-logstash,
ip: "{{ shared_service_elastic_01 }}",
},
{
hostname: dev-elastic-stack-02-logstash,
ip: "{{ shared_service_elastic_02 }}",
},
{
hostname: dev-elastic-stack-03-logstash,
ip: "{{ shared_service_elastic_03 }}",
},
]
kibana_extra_hosts: [
{
hostname: dev-elastic-stack-01-kibana,
ip: "{{ shared_service_elastic_01 }}",
},
{
hostname: dev-elastic-stack-02-kibana,
ip: "{{ shared_service_elastic_02 }}",
},
{
hostname: dev-elastic-stack-03-kibana,
ip: "{{ shared_service_elastic_03 }}",
},
]
prometheus_extra_hosts: [
{
hostname: "{{ shared_service_mail_hostname }}",
ip: "{{ shared_service_mail_ip }}",
}
]
connect_extra_hosts: [
{
hostname: "{{ shared_service_pg_master_hostname }}",
ip: "{{ shared_service_pg_master_ip }}",
},
{
hostname: "dev-elastic-stack-01-elastic",
ip: "{{ shared_service_elastic_01 }}",
},
{
hostname: "dev-elastic-stack-02-elastic",
ip: "{{ shared_service_elastic_02 }}",
},
{
hostname: "dev-elastic-stack-03-elastic",
ip: "{{ shared_service_elastic_03 }}",
},
{
hostname: "{{ shared_service_iam_hostname }}",
ip: "{{ shared_service_iam_ip }}",
},
{
hostname: "{{ shared_service_keycloak_hostname }}",
ip: "{{ shared_service_keycloak_ip }}",
},
{
hostname: "{{ shared_service_mail_hostname }}",
ip: "{{ shared_service_mail_ip }}",
},
{
hostname: "{{ shared_service_webdav_hostname }}",
ip: "{{ shared_service_webdav_ip }}",
},
]
keycloak_extra_hosts: [
{
hostname: "{{ shared_service_iam_hostname }}",
ip: "{{ shared_service_iam_ip }}",
},
{
hostname: "{{ shared_service_mail_hostname }}",
ip: "{{ shared_service_mail_ip }}",
}
]
iam_extra_hosts: [
{
hostname: "{{ shared_service_keycloak_hostname }}",
ip: "{{ shared_service_keycloak_ip }}",
},
{
hostname: "{{ shared_service_mail_hostname }}",
ip: "{{ shared_service_mail_ip }}",
}
]
webdav_extra_hosts: [
{
hostname: "{{ shared_service_pg_master_hostname }}",
ip: "{{ shared_service_pg_master_ip }}",
},
]
awx_admin_username: "awx-admin"
awx_admin_password: "awx-admin"
smardigo_management_url: "{{ http_s }}://{{ management_service_connect_hostname }}/api/v1/scopes/{{ scope_id }}/processes/{{ process_instance_id }}/messages"
smardigo_management_token: "eyJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiZGlyIn0..rCRO1cVFgkyZ45D5cJNK5g.fc6JVOo5ja5sqe-0PQTfJGOivJ6tyiD-rwgY6rXJ3-U.tOgqgJ2zTjB3_M9BGtvVjQ"
awx_admin_username: "awx-admin"
awx_admin_password: "awx-admin"
#docker_registry_username: "< see vault >"
#docker_registry_token: "< see vault >"
wordpress_admin_username: "wordpress-admin"
wordpress_admin_password: "wordpress-admin"
#elastic_admin_username: "< see vault >"
#elastic_admin_password: "< see vault >"
#netgo_msteams_hook_alerting: "< see vault >"

@ -1,22 +1,26 @@
$ANSIBLE_VAULT;1.1;AES256
31333163353031343239646461643063343339633962353038376631336438306430633732353536
3063303933353666653637333236643336643666333734360a616135313434303033336131333764
34626365323132343838316232386435633465373236343664636333633735656635653364663036
6333613361333663380a623932346665663937313864353136643161326665323831363634343062
63376137363161383731653631346136316531666162343761393631363532626664643930363837
64323966363238323138343534356236663961353533653532393234393439316263333430346465
36666230323337346166616234653865646539623137333539303234396463303435376137336165
64623666666232333732363233646363343763363335666238323439616162613339306463316237
64336233613065376639323865616538386335616136363438613931343836613930363732303935
62326635643464633338333938353932363566383734393835356239346166393836316162646466
31626135393763346664346333373730373035386161393334353233343535356336663664363737
63356463303665383432333435333336663736663962393035633166303335643034623663623966
36366166346461386638613932636335343663383638366165633539353331653138613365346439
35393039623063346631663437386337616531303338323037366330383532616637383932306431
30666531663064633436663731643161623637386338373833323763643734366664343064363664
37353939643031373436333861383134303964646436623035616331363230633364613138323630
61343262393764633234356138303061306131633263323463373161303761636262386439666633
35343337306465303366616430623233343864643733323133633431653334333339313236363265
33393564313439306632633130343035633335336139653035633038386134383330383634643232
66656137336230346266626262613933343130633766313039656563646161323636356130613865
65386233336461306236626438323235346437363765346230363662383631343036
39663735663765343234386361666137316564303931653335656533333632396565343330303666
6564613136643761663734633864663666333232333739360a653362366161663935316438333565
35336330623134396436373462336334656131343830323732323132616463623836636637386130
3938386430306564310a383363323639316432373163653766333764313865343835393632353264
37623362316664336563393731383562313730386434353939333937323935653539666435336537
36316536363663353739323838336632353761373230376235303633656630613166323161643164
36663464383666663130633361376562383362613837303330343033376362636236663137353361
34383364646531643565323931313263633536323132313930373264386561656530353863653633
31613134353539383931333430353830303463353931666530386337333763653565353531663239
65663431386362643033313634326433396634333933646230353538303766646662353138393062
30393636616637383233666636653465393537633366646462303165633435376335306564646536
35303039393264353339616533343663623765333461653132306466323464653436623032396664
39353765363163353563646339663037393436373437643233373461373066383664396366613033
63373431326663303634383564373564363539346437336635343534326466323732313964353436
36326263646261656439313138646662316630656139626461386361373331643438623435653336
37643432666665633630393130313731623632613564643462616261316534303135306336636664
33333838633739323330613233376437346631323564343631633539316365306336313530366562
38626137323661666365633838306337633266623133343132616635623233353861373739373531
34666663653236313835343236393139623865626265646437646462313730343565363663333034
64376162313664616363373336636338373634633032323663336133616535636437616436656336
32363638663861376565306362666662663464613364363334363139613433643639376132303165
34373838366264323466633636373539353364636662636531613863613664303136633661643332
64303961636464393434316539626361383534376130653331623762376265356561643939643461
32623938306661656130383733363062653932666532633430393637386262303434656362393066
3136

@ -0,0 +1,55 @@
---
stage: "qa"
# TODO read configuration with hetzner rest api
shared_service_network: "10.1.0.0/16"
shared_service_elastic_01: "10.1.0.2"
shared_service_elastic_02: "10.1.0.3"
shared_service_elastic_03: "10.1.0.4"
shared_service_logstash_01: "10.1.0.7"
shared_service_elastic_stack_01_hostname: "{{ stage }}-elastic-stack-elastic-01"
shared_service_elastic_stack_02_hostname: "{{ stage }}-elastic-stack-elastic-02"
shared_service_elastic_stack_03_hostname: "{{ stage }}-elastic-stack-elastic-03"
shared_service_elastic_stack_logstash_01_hostname: "{{ stage }}-elastic-stack-logstash-01"
shared_service_docker_registry_hostname: "{{ stage }}-docker-registry-01.smardigo.digital"
shared_service_hosts: [
{
ip: "127.0.1.1",
name: "{{ inventory_hostname }}"
},
{
ip: "{{ shared_service_elastic_01 }}",
name: "{{ shared_service_elastic_stack_01_hostname }}"
},
{
ip: "{{ shared_service_elastic_02 }}",
name: "{{ shared_service_elastic_stack_02_hostname }}"
},
{
ip: "{{ shared_service_elastic_03 }}",
name: "{{ shared_service_elastic_stack_03_hostname }}"
},
{
ip: "{{ shared_service_logstash_01 }}",
name: "{{ shared_service_elastic_stack_logstash_01_hostname }}"
}
]
# TODO read configuration with hetzner rest api
elastic_stack_network: {
qa-elastic-stack-elastic-01: "{{ shared_service_elastic_01 }}",
qa-elastic-stack-elastic-02: "{{ shared_service_elastic_02 }}",
qa-elastic-stack-elastic-03: "{{ shared_service_elastic_03 }}",
}
#docker_registry_username: "< see vault >"
#docker_registry_token: "< see vault >"
#elastic_admin_username: "< see vault >"
#elastic_admin_password: "< see vault >"
#netgo_msteams_hook_alerting: "< see vault >"

@ -0,0 +1,24 @@
$ANSIBLE_VAULT;1.1;AES256
36376662313162386465376234643830626266343664636263396361306166326164653137373265
6164316438613363393965306262346139313336306662640a333737313364636664326238333865
63393137373861376238326239636535666635633864383065346366396663646634646464353238
3163366538656439650a356139616363346337373738303135316131306562666262656164376333
35353632663965363634326363353637623461663761623339303435396566636432336638333535
35646230653035303939343132336430356663366234306630633938653739376538616339663736
38363139663062363036356265653434626261323132316130313236383934326231343866336634
38373530366236666339366364663531323630656131393432366666636164643335623862656337
65323735396435353131393564386539383736386265616365353439323462636533363631616432
61653236613066393439653938363366323338326330303735613337386437343365386465386132
63633238643437646137646534653364343861336237346133353433613930323639383632343233
33313462636539356130623266336639613663323462336664636431636364633831326531356635
38373663313935313134386436303335306231303233613765663534643965653264396234636638
39643632323564326333313239343634653735383233616331646334343161353535393064303862
38363065646333636562633266353464316266376538313665383437643931356232336562376633
63376235383536386536623737366436353538636538623036373763363866356632326135363063
37306139633536363562383032316665363038323538386236623763633364303066323066386634
61653432363935646133346265636237316134376536356431346465366137633136643436343835
64653963616261653364376437393062383865313662366531616333306466656234373232373330
30643537613764633662646362326634633061663035373432646535666237613637343937326139
62353763316466646432366162323137646337333630663133393036323865633531626161326136
35396664323339343266396563626665353939363063643965383138333830323464626466663334
306631343266396430646664373939663064

@ -5,7 +5,7 @@ hetzner_server_labels: "stage={{ stage }} service=webdav"
webdav_jwt_secret: "5646aee6dadc4c19b15f4b65f1e6549f"
webdav_postgres_host: "{{ shared_service_pg_master_hostname }}"
webdav_postgres_host: "{{ shared_service_postgres_01_hostname }}"
webdav_postgres_database: "{{ stage }}_webdav"
webdav_postgres_username: "{{ webdav_postgres_database }}"
webdav_postgres_password: "webdav-postgres-admin"

@ -1,4 +0,0 @@
---
hetzner_server_type: cx31
hetzner_server_labels: "stage={{ stage }} service=elastic"

@ -1,4 +0,0 @@
---
hetzner_server_type: cx31
hetzner_server_labels: "stage={{ stage }} service=elastic"

@ -1,11 +1,17 @@
---
### tags:
### update_certs
### update_config
### update_deployment
- name: 'Delete {{ current_base_path }}/{{ current_destination }}'
file:
state: absent
path: "{{ current_base_path }}/{{ current_destination }}"
when: cleanup_destination is defined and cleanup_destination == "true"
tags:
- update_certs
- update_config
- update_deployment
@ -14,6 +20,7 @@
state: directory
path: '{{ current_base_path }}/{{ current_destination }}'
tags:
- update_certs
- update_config
- update_deployment
@ -27,6 +34,7 @@
with_filetree: "templates/{{ current_config }}"
when: item.state == "directory"
tags:
- update_certs
- update_config
- update_deployment
@ -40,6 +48,7 @@
with_filetree: "templates/{{ current_config }}"
when: item.state == 'file' and item.src is match('.*\.j2$')
tags:
- update_certs
- update_config
- update_deployment
@ -53,5 +62,6 @@
with_filetree: "templates/{{ current_config }}"
when: item.state == 'file' and item.src is not match('.*\.j2$')
tags:
- update_certs
- update_config
- update_deployment

@ -4,12 +4,17 @@
shell: docker network ls
register: docker_networks
changed_when: false
when: docker_enabled
- name: "Docker network create back-tier"
shell: docker network create back-tier
when: docker_networks.stdout.find("back-tier") == -1
when:
- docker_enabled
- docker_networks.stdout.find("back-tier") == -1
- name: "Docker network create front-tier"
shell: docker network create front-tier
when: docker_networks.stdout.find("front-tier") == -1
when:
- docker_enabled
- docker_networks.stdout.find("front-tier") == -1

@ -21,8 +21,5 @@ kubernetes_awx_project_pvc_accessMode: "ReadWriteOnce"
kubernetes_awx_service_port: "80"
kubernetes_awx_service_targetPort: "80"
awx_admin_username: "awx-admin"
awx_admin_password: "awx-admin"
awx_ansible_username: "ansible"
awx_ansible_password: "ansible"

@ -79,6 +79,7 @@
owner: '{{ item }}'
group: '{{ item }}'
loop: '{{ smardigo_plattform_users }}'
when: docker_enabled
tags:
- users
@ -90,6 +91,7 @@
group: '{{ item }}'
mode: 0600
loop: '{{ smardigo_plattform_users }}'
when: docker_enabled
tags:
- users
- config
@ -110,19 +112,21 @@
tags:
- install
- name: Download docker-compose bash completion
- name: "Download docker bash completion"
get_url:
url: https://raw.githubusercontent.com/docker/cli/v20.10.6/contrib/completion/bash/docker
dest: /usr/share/bash-completion/docker
mode: '644'
when: docker_enabled
tags:
- install
- name: Download docker-compose bash completion
- name: "Download docker-compose bash completion"
get_url:
url: https://raw.githubusercontent.com/docker/compose/1.29.1/contrib/completion/bash/docker-compose
dest: /usr/share/bash-completion/docker-compose
mode: '644'
when: docker_enabled
tags:
- install
@ -140,6 +144,7 @@
state: directory
owner: 'root'
group: 'root'
when: docker_enabled
tags:
- config
@ -150,6 +155,7 @@
owner: 'root'
group: 'root'
mode: 0600
when: docker_enabled
tags:
- config
@ -159,6 +165,7 @@
state: directory
owner: 'root'
group: 'root'
when: docker_enabled
tags:
- config
@ -168,6 +175,7 @@
state: directory
owner: 'root'
group: 'root'
when: docker_enabled
tags:
- config
@ -178,6 +186,7 @@
owner: 'root'
group: 'root'
mode: 0600
when: docker_enabled
tags:
- config

@ -1,6 +1,7 @@
---
### tags:
### update_certs
### update_deployment
- name: "Send mattermost message"
@ -63,16 +64,19 @@
current_owner: "{{ docker_owner }}"
current_group: "{{ docker_group }}"
- name: "Deploy certificate templates for connect"
- name: "Deploy certificate templates for {{ connect_id }}"
include_role:
name: _deploy
tasks_from: templates
vars:
current_config: "elastic-certs/certs"
current_config: "elastic-certs/{{ stage}}-certs"
current_base_path: "{{ service_base_path }}"
current_destination: "{{ connect_id }}/certs"
current_owner: "{{ docker_owner }}"
current_group: "{{ docker_group }}"
cleanup_destination: "true"
tags:
- update_certs
- name: "Update {{ connect_id }}"
shell: docker-compose pull

@ -19,12 +19,6 @@ connect_labels: [
'"traefik.http.middlewares.{{ connect_id }}-admin-cors.headers.accesscontrolalloworigin=*"',
'"traefik.http.middlewares.{{ connect_id }}-admin-cors.headers.accesscontrolallowheaders=SMA_USER"',
'"traefik.http.services.{{ connect_id }}-admin.loadbalancer.server.port={{ management_port }}"',
'"traefik.http.routers.{{ connect_id }}-monitor.service={{ inventory_hostname }}-node-exporter"',
'"traefik.http.routers.{{ connect_id }}-monitor.rule=Host(`{{ stage_server_domain }}`)"',
'"traefik.http.routers.{{ connect_id }}-monitor.entrypoints=monitoring-system"',
'"traefik.http.routers.{{ connect_id }}-monitor.tls=true"',
'"traefik.http.routers.{{ connect_id }}-monitor.tls.certresolver=letsencrypt"',
]
connect_environment: [

@ -3,11 +3,5 @@
elastic_image_name: "docker.elastic.co/elasticsearch/elasticsearch"
elastic_image_version: "7.14.0"
kibana_image_name: "docker.elastic.co/kibana/kibana"
kibana_image_version: "7.14.0"
logstash_image_name: "docker.elastic.co/logstash/logstash"
logstash_image_version: "7.14.0"
elasticsearch_exporter_image_name: "quay.io/prometheuscommunity/elasticsearch-exporter"
elasticsearch_exporter_image_version: "latest"

@ -1,102 +1,82 @@
---
### tags:
### update_certs
### update_config
### update_deployment
- name: "Send mattermost messsge"
uri:
url: "{{ mattermost_hook_smardigo }}"
method: POST
body: "{{ lookup('template','mattermost-deploy-start.json.j2') }}"
body_format: json
headers:
Content-Type: "application/json"
delegate_to: 127.0.0.1
become: false
when:
- send_status_messages
- name: "Check if {{ role_name }}/docker-compose.yml exists"
- name: "Check if {{ elastic_id }}/docker-compose.yml exists"
stat:
path: '{{ service_base_path }}/{{ role_name }}/docker-compose.yml'
path: '{{ service_base_path }}/{{ elastic_id }}/docker-compose.yml'
register: check_docker_compose_file
tags:
- update_config
- update_deployment
- name: "Stop {{ role_name }}"
- name: "Stop {{ elastic_id }}"
shell: docker-compose down
args:
chdir: '{{ service_base_path }}/{{ role_name }}'
chdir: '{{ service_base_path }}/{{ elastic_id }}'
when: check_docker_compose_file.stat.exists
ignore_errors: yes
tags:
- update_config
- update_deployment
- name: "Deploy docker templates for {{ role_name }}"
- name: "Deploy docker templates for {{ elastic_id }}"
include_role:
name: _deploy
tasks_from: templates
vars:
current_config: "_docker"
current_base_path: "{{ service_base_path }}"
current_destination: "elastic"
current_destination: "{{ elastic_id }}"
current_owner: "{{ docker_owner }}"
current_group: "{{ docker_group }}"
current_docker: "{{ elastic_docker }}"
tags:
- update_config
- update_deployment
- name: "Deploy service templates for {{ role_name }}"
- name: "Deploy service templates for {{ elastic_id }}"
include_role:
name: _deploy
tasks_from: templates
vars:
current_config: "elastic"
current_base_path: "{{ service_base_path }}"
current_destination: "elastic"
current_destination: "{{ elastic_id }}"
current_owner: "{{ docker_owner }}"
current_group: "{{ docker_group }}"
tags:
- update_config
- name: "Deploy certificate templates for {{ role_name }}"
- name: "Deploy certificate templates for {{ elastic_id }}"
include_role:
name: _deploy
tasks_from: templates
vars:
current_config: "elastic-certs/certs"
current_config: "elastic-certs/{{ stage}}-certs"
current_base_path: "{{ service_base_path }}"
current_destination: "elastic/certs"
current_destination: "{{ elastic_id }}/certs"
current_owner: "{{ docker_owner }}"
current_group: "{{ docker_group }}"
cleanup_destination: "true"
tags:
- update_certs
- update_config
- name: "Update {{ role_name }}"
- name: "Update {{ elastic_id }}"
shell: docker-compose pull
args:
chdir: '{{ service_base_path }}/{{ role_name }}'
chdir: '{{ service_base_path }}/{{ elastic_id }}'
tags:
- update_deployment
- name: "Start {{ role_name }}"
- name: "Start {{ elastic_id }}"
shell: docker-compose up -d
args:
chdir: '{{ service_base_path }}/{{ role_name }}'
- name: "Send mattermost messsge"
uri:
url: "{{ mattermost_hook_smardigo }}"
method: POST
body: "{{ lookup('template','mattermost-deploy-end.json.j2') }}"
body_format: json
headers:
Content-Type: "application/json"
delegate_to: 127.0.0.1
become: false
when:
- send_status_messages
chdir: '{{ service_base_path }}/{{ elastic_id }}'
tags:
- update_certs
- update_config
- update_deployment

@ -1,38 +1,19 @@
---
elastic_id: "{{ inventory_hostname }}-elastic"
kibana_id: "{{ inventory_hostname }}-kibana"
logstash_id: "{{ inventory_hostname }}-logstash"
elastic_exporter_id: "{{ inventory_hostname }}-elastic-exporter"
kibana_labels: [
'"traefik.enable=true"',
'"traefik.http.routers.{{ kibana_id }}.service={{ kibana_id }}"',
'"traefik.http.routers.{{ kibana_id }}.rule=Host(`{{ inventory_hostname }}-kibana.{{ domain }}`)"',
'"traefik.http.routers.{{ kibana_id }}.entrypoints=websecure"',
'"traefik.http.routers.{{ kibana_id }}.tls=true"',
'"traefik.http.routers.{{ kibana_id }}.tls.certresolver=letsencrypt"',
'"traefik.http.services.{{ kibana_id }}.loadbalancer.server.port={{ service_port_kibana }}"',
]
elastic_docker: {
networks: [
{
name: back-tier,
external: true,
},
{
name: front-tier,
external: true,
},
],
volumes: [
{
name: "{{ elastic_id }}-data"
},
{
name: "{{ logstash_id }}-data"
}
],
services: [
{
@ -42,28 +23,24 @@ elastic_docker: {
environment: [
"ES_JAVA_OPTS: -Xms{{ JVM_HEAP_MB | default((ansible_memtotal_mb / 2) | round | int) }}m -Xmx{{ JVM_HEAP_MB | default((ansible_memtotal_mb / 2) | round | int) }}m",
"ELASTIC_PASSWORD: \"{{ elastic_admin_password }}\"",
"node.name: \"{{ elastic_id }}\"",
"cluster.name: dev-elastic-stack",
"node.name: \"{{ inventory_hostname }}\"",
"cluster.name: \"{{ stage }}-elastic-stack\"",
"discovery.seed_hosts: {{ groups['elastic']
| difference([inventory_hostname])
| product(['elastic'])
| map('join', '-')
| join(',') }}",
"cluster.initial_master_nodes: {{ groups['elastic']
| product(['elastic'])
| map('join', '-')
| join(',')}}",
"bootstrap.memory_lock: \"true\"",
"network.publish_host: {{ elastic_stack_network[inventory_hostname] }}",
"xpack.security.enabled: \"true\"",
"xpack.security.http.ssl.enabled: \"true\"",
"xpack.security.http.ssl.certificate_authorities: /usr/share/elasticsearch/config/certificates/ca/ca.crt",
"xpack.security.http.ssl.key: /usr/share/elasticsearch/config/certificates/{{ elastic_id }}/{{ elastic_id }}.key",
"xpack.security.http.ssl.certificate: /usr/share/elasticsearch/config/certificates/{{ elastic_id }}/{{ elastic_id }}.crt",
"xpack.security.http.ssl.key: /usr/share/elasticsearch/config/certificates/{{ inventory_hostname }}/{{ inventory_hostname }}.key",
"xpack.security.http.ssl.certificate: /usr/share/elasticsearch/config/certificates/{{ inventory_hostname }}/{{ inventory_hostname }}.crt",
"xpack.security.transport.ssl.enabled: \"true\"",
"xpack.security.transport.ssl.certificate_authorities: /usr/share/elasticsearch/config/certificates/ca/ca.crt",
"xpack.security.transport.ssl.key: /usr/share/elasticsearch/config/certificates/{{ elastic_id }}/{{ elastic_id }}.key",
"xpack.security.transport.ssl.certificate: /usr/share/elasticsearch/config/certificates/{{ elastic_id }}/{{ elastic_id }}.crt",
"xpack.security.transport.ssl.key: /usr/share/elasticsearch/config/certificates/{{ inventory_hostname }}/{{ inventory_hostname }}.key",
"xpack.security.transport.ssl.certificate: /usr/share/elasticsearch/config/certificates/{{ inventory_hostname }}/{{ inventory_hostname }}.crt",
"xpack.security.transport.ssl.verification_mode: certificate",
],
volumes: [
@ -97,85 +74,27 @@ elastic_docker: {
" retries: 5",
]
},
{
name: "{{ kibana_id }}",
image_name: "{{ kibana_image_name }}",
image_version: "{{ kibana_image_version }}",
labels: "{{ kibana_labels + ( kibana_labels_additional | default([])) }}",
environment: [
"SERVER_NAME: {{ kibana_id }}",
"SERVER_PUBLICBASEURL: https://{{ inventory_hostname }}-kibana.{{ domain }}",
"ELASTICSEARCH_URL: https://{{ elastic_id }}:9200",
"ELASTICSEARCH_HOSTS: '[\"https://{{ elastic_id }}:9200\"]'",
"ELASTICSEARCH_SSL_CERTIFICATEAUTHORITIES: /usr/share/elasticsearch/config/certificates/ca/ca.crt",
"ELASTICSEARCH_USERNAME: \"{{ elastic_admin_username }}\"",
"ELASTICSEARCH_PASSWORD: \"{{ elastic_admin_password }}\"",
],
volumes: [
'"./certs:/usr/share/elasticsearch/config/certificates:ro"',
],
networks: [
'"back-tier"',
'"front-tier"',
],
extra_hosts: "{{ elastic_extra_hosts | default([]) }}",
},
{
name: "{{ logstash_id }}",
image_name: "{{ logstash_image_name }}",
image_version: "{{ logstash_image_version }}",
environment: [
"node.name: \"{{ logstash_id }}\"",
"config.reload.automatic: \"true\"",
"pipeline.ecs_compatibility: v1",
"pipeline.ordered: \"false\"",
"xpack.monitoring.enabled: \"true\"",
"xpack.monitoring.elasticsearch.username: \"{{ elastic_admin_username }}\"",
"xpack.monitoring.elasticsearch.password: \"{{ elastic_admin_password }}\"",
"xpack.monitoring.elasticsearch.hosts: https://{{ elastic_id }}:9200",
"xpack.monitoring.elasticsearch.ssl.certificate_authority: /usr/share/logstash/config/certificates/ca/ca.crt",
],
volumes: [
'"{{ logstash_id }}-data:/usr/share/logstash/data"',
'"./config/logstash/pipeline:/usr/share/logstash/pipeline:ro"',
'"./certs:/usr/share/logstash/config/certificates:ro"',
],
networks: [
'"back-tier"',
],
extra_hosts: "{{ elastic_extra_hosts | default([]) }}",
ports: [
{
external: "5044",
internal: "5044",
},
],
},
{
name: "{{ elastic_exporter_id }}",
image_name: "{{ elasticsearch_exporter_image_name }}",
image_version: "{{ elasticsearch_exporter_image_version }}",
command: [
'"--es.ca=/certificates/ca/ca.crt"',
'"--es.uri=https://{{ elastic_admin_username }}:{{ elastic_admin_password }}@{{ elastic_id }}:9200"',
],
labels: [
'"traefik.enable=true"',
'"traefik.http.routers.{{ elastic_exporter_id }}.service={{ elastic_exporter_id }}"',
'"traefik.http.routers.{{ elastic_exporter_id }}.rule=Host(`{{ inventory_hostname }}.{{ domain }}`)"',
'"traefik.http.routers.{{ elastic_exporter_id }}.entrypoints=monitoring-docker"',
'"traefik.http.routers.{{ elastic_exporter_id }}.tls=true"',
'"traefik.http.routers.{{ elastic_exporter_id }}.tls.certresolver=letsencrypt"',
'"traefik.http.services.{{ elastic_exporter_id }}.loadbalancer.server.port=9114"',
'"--es.uri=https://{{ elastic_admin_username }}:{{ elastic_admin_password }}@{{ inventory_hostname }}:9200"',
],
volumes: [
'"./certs:/certificates:ro"',
],
networks: [
'"back-tier"',
'"front-tier"',
],
extra_hosts: "{{ elastic_extra_hosts | default([]) }}",
ports: [
{
"external": "{{ monitor_port_elastic }}",
"internal": "9114",
},
],
},
],
}

@ -1,22 +1,17 @@
---
- name: "Send mattermost messsge"
uri:
url: "{{ mattermost_hook_smardigo }}"
method: POST
body: "{{ lookup('template','mattermost-deploy-start.json.j2') }}"
body_format: json
headers:
Content-Type: "application/json"
delegate_to: 127.0.0.1
become: false
when:
- send_status_messages
### tags:
### update_certs
### update_config
### update_deployment
- name: "Check if filebeat/docker-compose.yml exists"
stat:
path: '{{ service_base_path }}/filebeat/docker-compose.yml'
register: check_docker_compose_file
tags:
- update_config
- update_deployment
- name: "Stop filebeat"
shell: docker-compose down
@ -24,6 +19,9 @@
chdir: '{{ service_base_path }}/filebeat'
when: check_docker_compose_file.stat.exists
ignore_errors: yes
tags:
- update_config
- update_deployment
- name: "Deploy docker templates for filebeat"
include_role:
@ -36,6 +34,9 @@
current_owner: "{{ docker_owner }}"
current_group: "{{ docker_group }}"
current_docker: "{{ filebeat_docker }}"
tags:
- update_config
- update_deployment
- name: "Deploy service templates for filebeat"
include_role:
@ -47,17 +48,23 @@
current_destination: "filebeat"
current_owner: "{{ docker_owner }}"
current_group: "{{ docker_group }}"
tags:
- update_config
- name: "Deploy certificate templates for filebeat"
include_role:
name: _deploy
tasks_from: templates
vars:
current_config: "elastic-certs/certs"
current_config: "elastic-certs/{{ stage}}-certs"
current_base_path: "{{ service_base_path }}"
current_destination: "filebeat/certs"
current_owner: "{{ docker_owner }}"
current_group: "{{ docker_group }}"
cleanup_destination: "true"
tags:
- update_certs
- update_config
- name: "Update filebeat"
shell: docker-compose pull
@ -70,16 +77,6 @@
shell: docker-compose up -d
args:
chdir: '{{ service_base_path }}/filebeat'
- name: "Send mattermost messsge"
uri:
url: "{{ mattermost_hook_smardigo }}"
method: POST
body: "{{ lookup('template','mattermost-deploy-end.json.j2') }}"
body_format: json
headers:
Content-Type: "application/json"
delegate_to: 127.0.0.1
become: false
when:
- send_status_messages
tags:
- update_config
- update_deployment

@ -10,7 +10,7 @@ filebeat_docker: {
image_version: "{{ filebeat_image_version }}",
user: root,
environment: [
"node.name: \"{{ filebeat_id }}\"",
"node.name: \"qa-elastic-stack-filebeat\"",
],
volumes: [
'"./config/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro"',

@ -1,57 +1,11 @@
---
#- name: "Gathering current server infos for network <{{ current_network_name }}>"
# hcloud_server_info:
# api_token: "{{ hetzner_authentication_token }}"
# label_selector: "{{ current_server_label_selector }}"
# register: network_hetzner_server_infos
# delegate_to: 127.0.0.1
# become: false
# tags:
# - update_networks
#- name: "Setting current server infos for network <{{ current_network_name }}> as fact: network_hetzner_server_infos_json"
# set_fact:
# network_hetzner_server_infos_json: "{{ network_hetzner_server_infos.hcloud_server_info }}"
# delegate_to: 127.0.0.1
# become: false
# tags:
# - update_networks
#- name: "Printing current server infos for network <{{ current_network_name }}>"
# debug:
# var: network_hetzner_server_infos_json
# delegate_to: 127.0.0.1
# become: false
# when:
# - debug
# tags:
# - update_networks
#- name: "Setting nerwork server names as fact: network_server_names"
# set_fact:
# network_server_names: "{{ network_hetzner_server_infos_json | json_query(jmesquery) }}"
# vars:
# jmesquery: '[*].{name: name}'
# tags:
# - update_networks
#- name: "Printing nerwork server names"
# debug:
# var: network_server_names
# delegate_to: 127.0.0.1
# become: false
# when:
# - debug
# tags:
# - update_networks
- name: "Checking present state for network <{{ current_network_name }}>"
hcloud_network:
api_token: "{{ hetzner_authentication_token }}"
name: "{{ current_network_name }}"
labels: "{{ current_network_labels }}"
ip_range: 10.0.0.0/16
ip_range: "{{ shared_service_network }}"
state: present
delegate_to: 127.0.0.1
become: false
@ -60,25 +14,13 @@
hcloud_subnetwork:
api_token: "{{ hetzner_authentication_token }}"
network: "{{ current_network_name }}"
ip_range: 10.0.0.0/16
ip_range: "{{ shared_service_network }}"
network_zone: eu-central
type: cloud
state: present
delegate_to: 127.0.0.1
become: false
#- name: "Checking present state for network servers"
# hcloud_server_network:
# api_token: "{{ hetzner_authentication_token }}"
# network: "{{ current_network_name }}"
# server: "{{ item.name }}"
# state: present
# with_items: "{{ network_server_names }}"
# delegate_to: 127.0.0.1
# become: false
# tags:
# - update_networks
- name: "Checking present state for network servers"
hcloud_server_network:
api_token: "{{ hetzner_authentication_token }}"

@ -63,7 +63,6 @@
vars:
current_firewall_name: '{{ current_firewall }}'
with_items:
- 'awx'
- 'default'
- 'kibana'
- 'monitoring'

@ -1,17 +0,0 @@
{
"name": "awx",
"labels": {
},
"rules": [
{
"direction": "in",
"protocol": "tcp",
"port": "32000",
"source_ips": [
"159.69.46.214/32",
],
"destination_ips": [
]
}
]
}

@ -27,12 +27,6 @@ iam_labels: [
'"traefik.http.middlewares.{{ iam_id }}-admin-cors.headers.accesscontrolalloworigin=*"',
'"traefik.http.middlewares.{{ iam_id }}-admin-cors.headers.accesscontrolallowheaders=SMA_USER"',
'"traefik.http.services.{{ iam_id }}-admin.loadbalancer.server.port={{ management_port }}"',
'"traefik.http.routers.{{ iam_id }}-monitor.service={{ inventory_hostname }}-node-exporter"',
'"traefik.http.routers.{{ iam_id }}-monitor.rule=Host(`{{ stage_server_domain }}`)"',
'"traefik.http.routers.{{ iam_id }}-monitor.entrypoints=monitoring-system"',
'"traefik.http.routers.{{ iam_id }}-monitor.tls=true"',
'"traefik.http.routers.{{ iam_id }}-monitor.tls.certresolver=letsencrypt"',
]
iam_docker: {

@ -11,12 +11,6 @@ keycloak_labels: [
'"traefik.http.routers.{{ keycloak_id }}.tls=true"',
'"traefik.http.routers.{{ keycloak_id }}.tls.certresolver=letsencrypt"',
'"traefik.http.services.{{ keycloak_id }}.loadbalancer.server.port={{ service_port }}"',
'"traefik.http.routers.{{ keycloak_id }}-monitor.service={{ inventory_hostname }}-node-exporter"',
'"traefik.http.routers.{{ keycloak_id }}-monitor.rule=Host(`{{ stage_server_domain }}`)"',
'"traefik.http.routers.{{ keycloak_id }}-monitor.entrypoints=monitoring-system"',
'"traefik.http.routers.{{ keycloak_id }}-monitor.tls=true"',
'"traefik.http.routers.{{ keycloak_id }}-monitor.tls.certresolver=letsencrypt"',
]
keycloak_docker: {

@ -0,0 +1,4 @@
---
kibana_image_name: "docker.elastic.co/kibana/kibana"
kibana_image_version: "7.14.0"

@ -0,0 +1,90 @@
---
### tags:
### update_certs
### update_config
### update_deployment
- name: "Setup DNS configuration for {{ kibana_id }}"
include_role:
name: _digitalocean
tasks_from: domain
vars:
record_data: "{{ stage_server_ip }}"
record_name: "{{ kibana_id }}"
- name: "Check if {{ kibana_id }}/docker-compose.yml exists"
stat:
path: '{{ service_base_path }}/{{ kibana_id }}/docker-compose.yml'
register: check_docker_compose_file
tags:
- update_config
- update_deployment
- name: "Stop {{ kibana_id }}"
shell: docker-compose down
args:
chdir: '{{ service_base_path }}/{{ kibana_id }}'
when: check_docker_compose_file.stat.exists
ignore_errors: yes
tags:
- update_config
- update_deployment
- name: "Deploy docker templates for {{ kibana_id }}"
include_role:
name: _deploy
tasks_from: templates
vars:
current_config: "_docker"
current_base_path: "{{ service_base_path }}"
current_destination: "{{ kibana_id }}"
current_owner: "{{ docker_owner }}"
current_group: "{{ docker_group }}"
current_docker: "{{ elastic_docker }}"
tags:
- update_config
- name: "Deploy service templates for {{ kibana_id }}"
include_role:
name: _deploy
tasks_from: templates
vars:
current_config: "elastic"
current_base_path: "{{ service_base_path }}"
current_destination: "{{ kibana_id }}"
current_owner: "{{ docker_owner }}"
current_group: "{{ docker_group }}"
tags:
- update_config
- name: "Deploy certificate templates for {{ kibana_id }}"
include_role:
name: _deploy
tasks_from: templates
vars:
current_config: "elastic-certs/{{ stage}}-certs"
current_base_path: "{{ service_base_path }}"
current_destination: "{{ kibana_id }}/certs"
current_owner: "{{ docker_owner }}"
current_group: "{{ docker_group }}"
cleanup_destination: "true"
tags:
- update_certs
- update_config
- name: "Update {{ kibana_id }}"
shell: docker-compose pull
args:
chdir: '{{ service_base_path }}/{{ kibana_id }}'
tags:
- update_deployment
- name: "Start {{ kibana_id }}"
shell: docker-compose up -d
args:
chdir: '{{ service_base_path }}/{{ kibana_id }}'
tags:
- update_certs
- update_config
- update_deployment

@ -0,0 +1,46 @@
---
kibana_id: "{{ inventory_hostname }}-kibana"
kibana_labels: [
'"traefik.enable=true"',
'"traefik.http.routers.{{ kibana_id }}.service={{ kibana_id }}"',
'"traefik.http.routers.{{ kibana_id }}.rule=Host(`{{ kibana_id }}.{{ domain }}`)"',
'"traefik.http.routers.{{ kibana_id }}.entrypoints=websecure"',
'"traefik.http.routers.{{ kibana_id }}.tls=true"',
'"traefik.http.routers.{{ kibana_id }}.tls.certresolver=letsencrypt"',
'"traefik.http.services.{{ kibana_id }}.loadbalancer.server.port={{ service_port_kibana }}"',
]
elastic_docker: {
networks: [
{
name: front-tier,
external: true,
},
],
services: [
{
name: "{{ kibana_id }}",
image_name: "{{ kibana_image_name }}",
image_version: "{{ kibana_image_version }}",
labels: "{{ kibana_labels + ( kibana_labels_additional | default([])) }}",
environment: [
"SERVER_NAME: {{ kibana_id }}",
"SERVER_PUBLICBASEURL: https://{{ kibana_id }}.{{ domain }}",
"ELASTICSEARCH_URL: https://{{ shared_service_elastic_stack_01_hostname }}:9200",
"ELASTICSEARCH_HOSTS: '[\"https://{{ shared_service_elastic_stack_01_hostname }}:9200\"]'",
"ELASTICSEARCH_SSL_CERTIFICATEAUTHORITIES: /usr/share/elasticsearch/config/certificates/ca/ca.crt",
"ELASTICSEARCH_USERNAME: \"{{ elastic_admin_username }}\"",
"ELASTICSEARCH_PASSWORD: \"{{ elastic_admin_password }}\"",
],
volumes: [
'"./certs:/usr/share/elasticsearch/config/certificates:ro"',
],
networks: [
'"front-tier"',
],
extra_hosts: "{{ elastic_extra_hosts | default([]) }}",
}
],
}

@ -0,0 +1,4 @@
---
logstash_image_name: "docker.elastic.co/logstash/logstash"
logstash_image_version: "7.14.0"

@ -0,0 +1,82 @@
---
### tags:
### update_certs
### update_config
### update_deployment
- name: "Check if {{ logstash_id }}/docker-compose.yml exists"
stat:
path: '{{ service_base_path }}/{{ logstash_id }}/docker-compose.yml'
register: check_docker_compose_file
tags:
- update_config
- update_deployment
- name: "Stop {{ logstash_id }}"
shell: docker-compose down
args:
chdir: '{{ service_base_path }}/{{ logstash_id }}'
when: check_docker_compose_file.stat.exists
ignore_errors: yes
tags:
- update_config
- update_deployment
- name: "Deploy docker templates for {{ logstash_id }}"
include_role:
name: _deploy
tasks_from: templates
vars:
current_config: "_docker"
current_base_path: "{{ service_base_path }}"
current_destination: "{{ logstash_id }}"
current_owner: "{{ docker_owner }}"
current_group: "{{ docker_group }}"
current_docker: "{{ elastic_docker }}"
tags:
- update_config
- name: "Deploy service templates for {{ logstash_id }}"
include_role:
name: _deploy
tasks_from: templates
vars:
current_config: "logstash"
current_base_path: "{{ service_base_path }}"
current_destination: "{{ logstash_id }}"
current_owner: "{{ docker_owner }}"
current_group: "{{ docker_group }}"
tags:
- update_config
- name: "Deploy certificate templates for {{ logstash_id }}"
include_role:
name: _deploy
tasks_from: templates
vars:
current_config: "elastic-certs/{{ stage}}-certs"
current_base_path: "{{ service_base_path }}"
current_destination: "{{ logstash_id }}/certs"
current_owner: "{{ docker_owner }}"
current_group: "{{ docker_group }}"
cleanup_destination: "true"
tags:
- update_certs
- update_config
- name: "Update {{ logstash_id }}"
shell: docker-compose pull
args:
chdir: '{{ service_base_path }}/{{ logstash_id }}'
tags:
- update_deployment
- name: "Start {{ logstash_id }}"
shell: docker-compose up -d
args:
chdir: '{{ service_base_path }}/{{ logstash_id }}'
tags:
- update_certs
- update_config
- update_deployment

@ -0,0 +1,41 @@
---
logstash_id: "{{ inventory_hostname }}-logstash"
elastic_docker: {
volumes: [
{
name: "{{ logstash_id }}-data"
}
],
services: [
{
name: "{{ logstash_id }}",
image_name: "{{ logstash_image_name }}",
image_version: "{{ logstash_image_version }}",
environment: [
"node.name: \"{{ logstash_id }}}}\"",
"config.reload.automatic: \"true\"",
"pipeline.ecs_compatibility: v1",
"pipeline.ordered: \"false\"",
"xpack.monitoring.enabled: \"true\"",
"xpack.monitoring.elasticsearch.username: \"{{ elastic_admin_username }}\"",
"xpack.monitoring.elasticsearch.password: \"{{ elastic_admin_password }}\"",
"xpack.monitoring.elasticsearch.hosts: https://{{ shared_service_elastic_stack_01_hostname }}:9200",
"xpack.monitoring.elasticsearch.ssl.certificate_authority: /usr/share/logstash/config/certificates/ca/ca.crt",
],
volumes: [
'"{{ logstash_id }}-data:/usr/share/logstash/data"',
'"./config/logstash/pipeline:/usr/share/logstash/pipeline:ro"',
'"./certs:/usr/share/logstash/config/certificates:ro"',
],
extra_hosts: "{{ elastic_extra_hosts | default([]) }}",
ports: [
{
external: "5044",
internal: "5044",
},
],
},
],
}

@ -47,7 +47,6 @@
service:
name: prometheus-node-exporter
state: restarted
when: node_exporter.changed
- name: "Send mattermost messsge"
uri:

@ -60,10 +60,6 @@ traefik_docker: {
external: "0.0.0.0:{{ monitor_port_docker }}",
internal: "{{ monitor_port_docker }}"
},
{
external: "0.0.0.0:{{ monitor_port_elastic }}",
internal: "{{ monitor_port_elastic }}"
},
{
external: "0.0.0.0:{{ monitor_port_harbor }}",
internal: "{{ monitor_port_harbor }}"

@ -21,12 +21,6 @@ webdav_labels: [
'"traefik.http.middlewares.{{ webdav_id }}-admin-cors.headers.accesscontrolalloworigin=*"',
'"traefik.http.middlewares.{{ webdav_id }}-admin-cors.headers.accesscontrolallowheaders=SMA_USER"',
'"traefik.http.services.{{ webdav_id }}-admin.loadbalancer.server.port={{ management_port }}"',
'"traefik.http.routers.{{ webdav_id }}-monitor.service={{ inventory_hostname }}-node-exporter"',
'"traefik.http.routers.{{ webdav_id }}-monitor.rule=Host(`{{ stage_server_domain }}`)"',
'"traefik.http.routers.{{ webdav_id }}-monitor.entrypoints=monitoring-system"',
'"traefik.http.routers.{{ webdav_id }}-monitor.tls=true"',
'"traefik.http.routers.{{ webdav_id }}-monitor.tls.certresolver=letsencrypt"',
]
webdav_docker: {

@ -1,7 +1,9 @@
---
- name: 'apply setup to {{ host | default("all") }}'
hosts: '{{ host | default("all") }}'
serial: "{{ serial_number | default(5) }}"
remote_user: root
become: yes
pre_tasks:
@ -37,7 +39,7 @@
- name: "Import autodiscover pre-tasks"
include_tasks: tasks/autodiscover_pre_tasks.yml
tags:
- autodiscover
- always
roles:
- role: ansible-role-docker
@ -61,7 +63,9 @@
- node-exporter
- role: traefik
when: traefik_enabled | default(True)
when:
- docker_enabled
- traefik_enabled | default(True)
tags:
- traefik

@ -17,27 +17,37 @@
- name: "Import autodiscover pre-tasks"
include_tasks: tasks/autodiscover_pre_tasks.yml
tags:
- autodiscover
- always
roles:
- role: postfix
when: "'postfix' in group_names"
- role: keycloak
when: "'keycloak' in group_names"
- role: harbor
when: "'harbor' in group_names"
- role: prometheus
when: "'prometheus' in group_names"
- role: elastic
when: "'elastic' in group_names"
- role: pgadmin4
when: "'pgadmin4' in group_names"
- role: logstash
when: "'logstash' in group_names"
- role: kibana
when: "'kibana' in group_names"
- role: postgres
when: "'postgres' in group_names"
- role: prometheus
when: "'prometheus' in group_names"
- role: pgadmin4
when: "'pgadmin4' in group_names"
- role: maria
when: "'maria' in group_names"
- role: awx
when: "'awx' in group_names"
- role: iam
when: "'iam' in group_names"
- role: webdav

@ -5,9 +5,9 @@ dev-awx-01
dev-management-smardigo-01
[elastic]
dev-elastic-stack-01
dev-elastic-stack-02
dev-elastic-stack-03
dev-elastic-stack-elastic-01
dev-elastic-stack-elastic-02
dev-elastic-stack-elastic-03
[harbor]
dev-docker-registry-01
@ -18,6 +18,12 @@ dev-iam-01
[keycloak]
dev-keycloak-01
[kibana]
dev-elastic-stack-kibana-01
[logstash]
dev-elastic-stack-logstash-01
[maria]
dev-maria-01
@ -44,6 +50,8 @@ elastic
harbor
iam
keycloak
kibana
logstash
maria
pgadmin4
postfix

@ -0,0 +1,52 @@
[awx]
[connect]
[elastic]
qa-elastic-stack-elastic-01
qa-elastic-stack-elastic-02
qa-elastic-stack-elastic-03
[harbor]
[iam]
[keycloak]
[kibana]
qa-elastic-stack-kibana-01
[logstash]
qa-elastic-stack-logstash-01
[maria]
[postfix]
[postgres]
[prometheus]
qa-prometheus-01
[webdav]
[stage_qa:children]
awx
connect
elastic
harbor
iam
keycloak
kibana
logstash
maria
postfix
postgres
prometheus
webdav
[all:children]
stage_qa
[hcloud:children]
stage_qa

@ -10,7 +10,7 @@
delegate_to: 127.0.0.1
become: false
tags:
- autodiscover
- always
- name: "Printing hetzner server infos for stage <{{ stage }}>"
debug:
@ -18,7 +18,7 @@
delegate_to: 127.0.0.1
become: false
tags:
- autodiscover
- always
when:
- debug
@ -32,7 +32,7 @@
delegate_to: 127.0.0.1
become: false
tags:
- autodiscover
- always
- name: "Printing hetzner private network infos for stage <{{ stage }}>"
debug:
@ -40,7 +40,7 @@
delegate_to: 127.0.0.1
become: false
tags:
- autodiscover
- always
when:
- debug
@ -52,15 +52,15 @@
delegate_to: 127.0.0.1
become: false
tags:
- autodiscover
- always
- name: "Reading hetzner private network id for <{{ stage }}>"
- name: "Printing hetzner private network id for <{{ stage }}>"
debug:
msg: "{{ stage_private_network_id }}"
delegate_to: 127.0.0.1
become: false
tags:
- autodiscover
- always
when:
- debug
@ -78,7 +78,7 @@
delegate_to: 127.0.0.1
become: false
tags:
- autodiscover
- always
- name: "Reading public ip address for {{ inventory_hostname }}"
set_fact:
@ -88,7 +88,7 @@
delegate_to: 127.0.0.1
become: false
tags:
- autodiscover
- always
- name: "Printing ip addresses for {{ inventory_hostname }}"
debug:
@ -96,7 +96,7 @@
delegate_to: 127.0.0.1
become: false
tags:
- autodiscover
- always
when:
- debug
@ -115,16 +115,14 @@
delegate_to: 127.0.0.1
become: false
tags:
- autodiscover
when:
- debug
- always
- name: "Reading hetzner server infos for stage <{{ stage }}>"
- name: "Printing hetzner server infos for stage <{{ stage }}>"
debug:
msg: "{{ stage_server_infos }}"
delegate_to: 127.0.0.1
become: false
tags:
- autodiscover
- always
when:
- debug

@ -1,20 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIDSTCCAjGgAwIBAgIUVhr/fFCsHpvnnkLysUWsmFWyQikwDQYJKoZIhvcNAQEL
BQAwNDEyMDAGA1UEAxMpRWxhc3RpYyBDZXJ0aWZpY2F0ZSBUb29sIEF1dG9nZW5l
cmF0ZWQgQ0EwHhcNMjEwNjE2MTYxNTMzWhcNMjIwNjE2MTYxNTMzWjA0MTIwMAYD
VQQDEylFbGFzdGljIENlcnRpZmljYXRlIFRvb2wgQXV0b2dlbmVyYXRlZCBDQTCC
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAIErWmUedk6+q2P4BSoeBSMM
fMwPC1TG2LwsrVWmobDtLmmhe3qyRRB9TNUottUOOmncRL6J5SJFU3SqFQTfBwST
d4lARI1gDVtRNMLGDoJbT/TmsDK092mHEVY5TVN9zkZp+5H0ANUz9QViscPllRZL
iLOGSjx8Zg2viOOVpRA+uAEsE681mGVApXgvPMa1iQnsH/bz3EU9MOws/xS6Aj+F
8IJr1Vi/8Ww2JiagtObPxoKIs8tLjm0eab9VtOMsfOoAyZ+k5ywGUaeFS83XRlwN
7VTdIqz8v3PDuxBCjptozUp7yDUAu0WmCjlwrTjXOv7GoSJRvtpQmmS7nFIdJP0C
AwEAAaNTMFEwHQYDVR0OBBYEFC0XSbWgzKkOfhHLmhhpqxFffNpcMB8GA1UdIwQY
MBaAFC0XSbWgzKkOfhHLmhhpqxFffNpcMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI
hvcNAQELBQADggEBAHmTUpBANJbLMTYdBrZ/BlFzK2zWvCUgpe3x4wK/zr/RtxgF
sq1LALfbLW1NCxZmLk0VleumlRNpz817gE0TKJnVZAO1PD3rwtFx8WaaQ8sfdRgx
z6UE2TxhYRNNJpkqJnX8SsU7zKxxV/sVn3ZXPuEagJ9x3j9hbgPA7lIGoJqaakII
WD1iHJxqqv7CAaFrWlYwJY5KALpv24RWzUwT5/iLCKc3AZH37B0gPh6GY4NBvsXm
RFoELoxkGRCdfwy6V4jbn09H65IrwP6YUflcsCaAlsAlVULb7eEo3CH80bmC8vBY
E/57kzbwq4BLr48lvxUnvRtQ/Yobr6AzrgnH2Qk=
-----END CERTIFICATE-----

@ -1,21 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIDcjCCAlqgAwIBAgIUbFq7ne37aALOCiMKRle1BrNWzFQwDQYJKoZIhvcNAQEL
BQAwNDEyMDAGA1UEAxMpRWxhc3RpYyBDZXJ0aWZpY2F0ZSBUb29sIEF1dG9nZW5l
cmF0ZWQgQ0EwHhcNMjEwNjE2MTYxNTM0WhcNMjIwNjE2MTYxNTM0WjAnMSUwIwYD
VQQDExxkZXYtZWxhc3RpYy1zdGFjay0wMS1lbGFzdGljMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAm9QP3JEVIwi/I0dIR/UxbyWeTk86C+1fJF8Dq1R4
KiYRqNS0O9MJupqO82f/0hfJxlxloTwsYH3ZQWQ5jf+uEYFQe34S7H9jLidI71Kq
98H/OmKdHVi4WxJ7zFPdnHpfKiQP0Jni4GBOZN96JAuKdXfxtvuNH6mfOTtLHENb
47824WqaiJCOKaPbOPEz+27d9ceSGkjZIjkysHC8lFpmOAsRq24ykdblnQy14Mwz
VPOOw67W2ij4lEByM/IYlJwxV7GUIrlZEQg9+ID31ypCBiQfXyIu64DB/bQ3qlhV
WpZToMOJ7NDR6peW7oLIV+jhsulDfPVVF1ya6wbY5q/r+QIDAQABo4GIMIGFMB0G
A1UdDgQWBBQvkCbDh3sEb/JkbGHYxLTogDC+kzAfBgNVHSMEGDAWgBQtF0m1oMyp
Dn4Ry5oYaasRX3zaXDA4BgNVHREEMTAvgglsb2NhbGhvc3SCHGRldi1lbGFzdGlj
LXN0YWNrLTAxLWVsYXN0aWOHBAoAAAIwCQYDVR0TBAIwADANBgkqhkiG9w0BAQsF
AAOCAQEAZtu8WXbqQU/a3Aw+n7JkC9qkJzrZeF6Oo3tjEN6aG2j5zo9ZTDsM6Jep
oHfl1WeJo3BoeA3eCO3uLD5cDl/QxU4mOc8gIlzI3/uGBRrbZci4aB97vn28oafe
gOznGiJzcjgEMD/i2iuQ+sBqrloaAje7XALeKC/dSCuK+XEfM2fFkeMzwJQi8tVQ
yX8ve3cYb+eqUFcBBSXIIYop9R3d+GXofE8N+Hc0/pibD9ZAnQ5ZQOGSWoeUEZmw
UhzW3xF6KBDKJorewh9mWd6KS5O+XQ0R0Y7J7MJGsRxhiTRSwMlhSGW0P1P0JR7g
E5R18LbQ+3TMksjEtZqM0nQd4a+Yow==
-----END CERTIFICATE-----

@ -1,27 +0,0 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAm9QP3JEVIwi/I0dIR/UxbyWeTk86C+1fJF8Dq1R4KiYRqNS0
O9MJupqO82f/0hfJxlxloTwsYH3ZQWQ5jf+uEYFQe34S7H9jLidI71Kq98H/OmKd
HVi4WxJ7zFPdnHpfKiQP0Jni4GBOZN96JAuKdXfxtvuNH6mfOTtLHENb47824Wqa
iJCOKaPbOPEz+27d9ceSGkjZIjkysHC8lFpmOAsRq24ykdblnQy14MwzVPOOw67W
2ij4lEByM/IYlJwxV7GUIrlZEQg9+ID31ypCBiQfXyIu64DB/bQ3qlhVWpZToMOJ
7NDR6peW7oLIV+jhsulDfPVVF1ya6wbY5q/r+QIDAQABAoIBAGAfHXGnJOypdo3i
aJnKi6XOBKq1gE7fK3MaEP9caYtGVFpaapsEgNnUgR1wJ4OHHPX5BM/CeHVE7ADE
PCR1dQBjTiv/BtlPcvSDUyAdVEzkI/X14oi5s26qJidSDD971Lv/5ql8Y1CY14Kt
v4AAhnYTeMywusqvLQJ2qsxSWJpQ36LQLYlzNvTSKrRXhhh/CkidUYkWszrPjoxw
P17T5S0thjcocygg1aQ+84pqhFA6FUQzLvWYjDDaMuvYBws8jFk0O9lXUUdCQTes
S6FdMTOhbSYeng2LsslRvASsBcDBz3z/n1ZUkvjvaMeRWEcr7pZIEjyWoKCRxFAX
zMyXswECgYEA21J48IzqW7JwMfVSe91bwqSg7DGjmyJKGIhjTasEE73wJiqP2z0E
K9kiOmu/uOl5NQ+lM+0EJ+EkObXb4fA6y03g3EJ6QHNcR9j3wUfuf7hgxKD/1q+K
ew5SvpTSDZ6il5LRtrbR1FD7HxuP9trSYK0U5/J3u5Vg0SrWQS+2cHECgYEAteNR
96Kb0mNI/gQQo6AMrjjMaH44ER4fZfhJiwis42JqvUV6Qmen/rhS2BtHLShtIZhS
0h/R76G0tcnK9uC+t8FXgaWJSNQPBmK6PoPuUiYhRibwgZ9vd606QNkwCm4aNawm
dYo+tpb/8RLbHDWkhPxQWIXC1Qa2IxQlapYheAkCgYAf3n0KXz+SsXwSFla0/vZd
czSa/Z+LZFEl/XOIjqgaAkiKEzcyIUyg3n1VxeBnCy38othbkj4/WTy9Ugqwawrw
DdH1z4caJGktW36szDoAvxb4m3hxhrJ1rSAi51caeYmgwsnMZgZZdqb23zdtJGDb
gWr/RUFWtZ8K5dGaSUeWUQKBgBEaCJDyFxiXATvxAeeAmvCeoomIpJjnbihWSgPq
kubmUAbvy2kG+gK3LgLnva9/R5OLEO5003Zmi+kzygOgag44/ZNRDzFrzuXYzo4m
NXg/4Y0JCEAHz6E/BmUmhp/Ubl5xi0Qt9WuRkwsFrNhgKtHeL2fDW+hPszxlHoeB
CjCRAoGBAJ3QwP3FsFYpxug3g04tbaJOQD/jyrjWu4clxMBJtawfLtLrPMVUA7UR
n5YQeGkdmeKsYhglTBZsmoaXy8edmiQkSBJYUN1xF8Jlj0uDIzkFqOiHKXjvh1rp
1I3o865MBQOt2eR3IIMYArahka86hf6cY67PJFZLonGyuk4vJQb2
-----END RSA PRIVATE KEY-----

@ -1,28 +0,0 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCb1A/ckRUjCL8j
R0hH9TFvJZ5OTzoL7V8kXwOrVHgqJhGo1LQ70wm6mo7zZ//SF8nGXGWhPCxgfdlB
ZDmN/64RgVB7fhLsf2MuJ0jvUqr3wf86Yp0dWLhbEnvMU92cel8qJA/QmeLgYE5k
33okC4p1d/G2+40fqZ85O0scQ1vjvzbhapqIkI4po9s48TP7bt31x5IaSNkiOTKw
cLyUWmY4CxGrbjKR1uWdDLXgzDNU847DrtbaKPiUQHIz8hiUnDFXsZQiuVkRCD34
gPfXKkIGJB9fIi7rgMH9tDeqWFVallOgw4ns0NHql5bugshX6OGy6UN89VUXXJrr
Btjmr+v5AgMBAAECggEAYB8dcack7Kl2jeJomcqLpc4EqrWATt8rcxoQ/1xpi0ZU
WlpqmwSA2dSBHXAng4cc9fkEz8J4dUTsAMQ8JHV1AGNOK/8G2U9y9INTIB1UTOQj
9fXiiLmzbqomJ1IMP3vUu//mqXxjUJjXgq2/gACGdhN4zLC6yq8tAnaqzFJYmlDf
otAtiXM29NIqtFeGGH8KSJ1RiRazOs+OjHA/XtPlLS2GNyhzKCDVpD7zimqEUDoV
RDMu9ZiMMNoy69gHCzyMWTQ72VdRR0JBN6xLoV0xM6FtJh6eDYuyyVG8BKwFwMHP
fP+fVlSS+O9ox5FYRyvulkgSPJagoJHEUBfMzJezAQKBgQDbUnjwjOpbsnAx9VJ7
3VvCpKDsMaObIkoYiGNNqwQTvfAmKo/bPQQr2SI6a7+46Xk1D6Uz7QQn4SQ5tdvh
8DrLTeDcQnpAc1xH2PfBR+5/uGDEoP/Wr4p7DlK+lNINnqKXktG2ttHUUPsfG4/2
2tJgrRTn8ne7lWDRKtZBL7ZwcQKBgQC141H3opvSY0j+BBCjoAyuOMxofjgRHh9l
+EmLCKzjYmq9RXpCZ6f+uFLYG0ctKG0hmFLSH9HvobS1ycr24L63wVeBpYlI1A8G
Yro+g+5SJiFGJvCBn293rTpA2TAKbho1rCZ1ij62lv/xEtscNaSE/FBYhcLVBrYj
FCVqliF4CQKBgB/efQpfP5KxfBIWVrT+9l1zNJr9n4tkUSX9c4iOqBoCSIoTNzIh
TKDefVXF4GcLLfyi2FuSPj9ZPL1SCrBrCvAN0fXPhxokaS1bfqzMOgC/FvibeHGG
snWtICLnVxp5iaDCycxmBll2pvbfN20kYNuBav9FQVa1nwrl0ZpJR5ZRAoGAERoI
kPIXGJcBO/EB54Ca8J6iiYikmOduKFZKA+qS5uZQBu/LaQb6ArcuAue9r39Hk4sQ
7nTTdmaL6TPKA6BqDjj9k1EPMWvO5djOjiY1eD/hjQkIQAfPoT8GZSaGn9RuXnGL
RC31a5GTCwWs2GAq0d4vZ8Nb6E+zPGUeh4EKMJECgYEAndDA/cWwVinG6DeDTi1t
ok5AP+PKuNa7hyXEwEm1rB8u0us8xVQDtRGflhB4aR2Z4qxiGCVMFmyahpfLx52a
JCRIElhQ3XEXwmWPS4MjOQWo6IcpeO+HWunUjejzrkwFA63Z5HcggxgCtqGRrzqF
/pxjrs8kVkuicbK6Ti8lBvY=
-----END PRIVATE KEY-----

@ -1,21 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIDcjCCAlqgAwIBAgIUBgYjAz4JNclFNUyJmTurF02hj6UwDQYJKoZIhvcNAQEL
BQAwNDEyMDAGA1UEAxMpRWxhc3RpYyBDZXJ0aWZpY2F0ZSBUb29sIEF1dG9nZW5l
cmF0ZWQgQ0EwHhcNMjEwNjE2MTYxNTM0WhcNMjIwNjE2MTYxNTM0WjAnMSUwIwYD
VQQDExxkZXYtZWxhc3RpYy1zdGFjay0wMi1lbGFzdGljMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAh5wXprDlL+1sLYQoJMoB0FBEiREFl7ZBLbBfYSPs
4v1PJV7g/ZVfWXWAkwAqLWKah4pEKlQk8un5q2FPImtYUpaNIAvxRaRvraAltofH
TLt3CFpvtHTujfSKWiX4swvy7tFrk3dwtPPKug5kzBh1ZjsFXUBEdcFc7xTRkJ7h
+QqB9q45+NEMRQoEroeMeSSY5ae849FD8wQsd/cFz067HDkgcXmZLBRaw9F5xuwI
m6AB3vvzVpJ/ngeOILvHCDd92sLIXqeHIZy5uIFoDGrP9CfpBwcNYs4hjeJ3id1K
THDTBG+86UO2UzeS2fUGehEtFqMfS1VjtUPo3VsiB3eHxwIDAQABo4GIMIGFMB0G
A1UdDgQWBBSpUcQa4zu7e4XIMYW79AjqX6GQeDAfBgNVHSMEGDAWgBQtF0m1oMyp
Dn4Ry5oYaasRX3zaXDA4BgNVHREEMTAvghxkZXYtZWxhc3RpYy1zdGFjay0wMi1l
bGFzdGljgglsb2NhbGhvc3SHBAoAAAMwCQYDVR0TBAIwADANBgkqhkiG9w0BAQsF
AAOCAQEAJmU1bJOBOzAwiXjD0MJ37VRrWL3gfqI89C/xwTBmPj9qMD7rL5l4ph7u
ReVJo8jzU64F33yRf2cozfJGQLP96hOSoozVDCxqgmVJMgZUwNyhXcAdE8HUBxGQ
ZqZucCakGerI9+wdJ4VUuSTvBd2vLGnrvv3qB4pm9lS/d0OW1hIgGg06x2y/Ms+Z
Acb2RQ+rV7jYkqES73zxjmvzRQXp+XF+11S/jkA3RRCJIxf0EflsO8IoIeJ5YKgq
zjDZ2HgB2uyHSyeI22p3UDmYT2wqfWPUj9/Ma/uCnTglywpelgENHGVfETEgdD+f
Tm0UfwSwCwSB1zKTKuwxIl4EUHu+aw==
-----END CERTIFICATE-----

@ -1,27 +0,0 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAh5wXprDlL+1sLYQoJMoB0FBEiREFl7ZBLbBfYSPs4v1PJV7g
/ZVfWXWAkwAqLWKah4pEKlQk8un5q2FPImtYUpaNIAvxRaRvraAltofHTLt3CFpv
tHTujfSKWiX4swvy7tFrk3dwtPPKug5kzBh1ZjsFXUBEdcFc7xTRkJ7h+QqB9q45
+NEMRQoEroeMeSSY5ae849FD8wQsd/cFz067HDkgcXmZLBRaw9F5xuwIm6AB3vvz
VpJ/ngeOILvHCDd92sLIXqeHIZy5uIFoDGrP9CfpBwcNYs4hjeJ3id1KTHDTBG+8
6UO2UzeS2fUGehEtFqMfS1VjtUPo3VsiB3eHxwIDAQABAoIBAAx+9rL2g/f5oclD
70sMjkQ60UXsGp7TPYhPQ0q5O7/i5aMk7giP9hxRNorVLg3Gk0TAGe3omQsFQmtn
aRpb1+SsWM7GKvJm55+RLUh3lIbek2Zipv5y8/SCvyj1bMha5oTZKVeKXwldmaWx
Y9pmupK0B5eDL4vGSKEDQxhXe60uBwjN8iAN1tdDEsenq4DyBCCWxpAjSud5bCNC
m2THXivAep9jItcYJAzMQhLL7H864HWpegSNfiKspSXuGPzGhOmaPzUk5QNLkhc8
OHfm5MCFP9Sp5VJQWFJYHKKNXVV84MIIe7sSX7t7GfkQGYwWaIfVT7EiJgsR/fUc
xPGWRwECgYEA1aGUasR8wFt8qd1+bMzQxgC/ygJg3Mbthxiud0Slzv4nHEFtD3ua
qKUQmi1QCL4fQOXwBN4r/YptqYkFG+Kzt6JmaHNnyTjMZqoV45O6LbYlMOJp7ddi
yArwiyjZrStw9CX+2DlsuQMnsfq1g9TSYsKxWkPDIY5tn4XsNL6QfYECgYEAooE7
FuNHagF24rvn4eIZiG4AyJP0R698sqdxpgKNU+2h1WTAWfJ6qic39J+r4joyTQ17
WVZL23js3CHl8CooAr/g5bssUe5ieQEuRlz+RD5ZhX1D4/nnnQ3B7/8XNAwtLSBv
CcFtfH4FY3je1SxOJvE44TNpFtGWRlPMm+DzOUcCgYBwosLYEEUePp5aCXhw8QRa
gWadoedkQFZYVoEWTVGG86W3Vh+kfC0tIerA/4clNOjRlOqaBnH3Ohdbvey9qSfM
eIm6JK7h/1p1/tOPrAILu++b+KSVTGy+wFXXaXBrx23ErIvTgWN7oNg7FM7DdWB/
xdswlm25sZjG9Rt3K8qPAQKBgDwPg2VcLyLQ073NMVDdHg68iXGYrWppQ69MD8cJ
nm5sn6mdCTK1WfzVbertsLt2Qu0TlIlaScMeGHzr0m5HRm5tuJNv8Ft/vcl3VEER
UbCrUq7xs0vpK19ynEE1iL/l2DSbji6O3QZsFVXEcKddLq1Z7mnddHPIlr/7bN4X
8A01AoGBAKSeBwgIKYQ3lik56Jr4g2BjN2iloBGT+OJqvHIsUGW3MNoBBoZsteUn
XfYw+9PgGcP6OESLwHAi1VOf6S6UV4VpFmUAbaQP87Zptew9k49jXb6jPkTDeMyl
FugtEJK1u4Iet/VecvBQriqMv7kDLH54o/mYhor6dCalcLBhqp1w
-----END RSA PRIVATE KEY-----

@ -1,28 +0,0 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCHnBemsOUv7Wwt
hCgkygHQUESJEQWXtkEtsF9hI+zi/U8lXuD9lV9ZdYCTACotYpqHikQqVCTy6fmr
YU8ia1hSlo0gC/FFpG+toCW2h8dMu3cIWm+0dO6N9IpaJfizC/Lu0WuTd3C088q6
DmTMGHVmOwVdQER1wVzvFNGQnuH5CoH2rjn40QxFCgSuh4x5JJjlp7zj0UPzBCx3
9wXPTrscOSBxeZksFFrD0XnG7AiboAHe+/NWkn+eB44gu8cIN33awshep4chnLm4
gWgMas/0J+kHBw1iziGN4neJ3UpMcNMEb7zpQ7ZTN5LZ9QZ6ES0Wox9LVWO1Q+jd
WyIHd4fHAgMBAAECggEADH72svaD9/mhyUPvSwyORDrRRewantM9iE9DSrk7v+Ll
oyTuCI/2HFE2itUuDcaTRMAZ7eiZCwVCa2dpGlvX5KxYzsYq8mbnn5EtSHeUht6T
ZmKm/nLz9IK/KPVsyFrmhNkpV4pfCV2ZpbFj2ma6krQHl4Mvi8ZIoQNDGFd7rS4H
CM3yIA3W10MSx6ergPIEIJbGkCNK53lsI0KbZMdeK8B6n2Mi1xgkDMxCEsvsfzrg
dal6BI1+IqylJe4Y/MaE6Zo/NSTlA0uSFzw4d+bkwIU/1KnlUlBYUlgcoo1dVXzg
wgh7uxJfu3sZ+RAZjBZoh9VPsSImCxH99RzE8ZZHAQKBgQDVoZRqxHzAW3yp3X5s
zNDGAL/KAmDcxu2HGK53RKXO/iccQW0Pe5qopRCaLVAIvh9A5fAE3iv9im2piQUb
4rO3omZoc2fJOMxmqhXjk7ottiUw4mnt12LICvCLKNmtK3D0Jf7YOWy5Ayex+rWD
1NJiwrFaQ8Mhjm2fhew0vpB9gQKBgQCigTsW40dqAXbiu+fh4hmIbgDIk/RHr3yy
p3GmAo1T7aHVZMBZ8nqqJzf0n6viOjJNDXtZVkvbeOzcIeXwKigCv+DluyxR7mJ5
AS5GXP5EPlmFfUPj+eedDcHv/xc0DC0tIG8JwW18fgVjeN7VLE4m8TjhM2kW0ZZG
U8yb4PM5RwKBgHCiwtgQRR4+nloJeHDxBFqBZp2h52RAVlhWgRZNUYbzpbdWH6R8
LS0h6sD/hyU06NGU6poGcfc6F1u97L2pJ8x4ibokruH/WnX+04+sAgu775v4pJVM
bL7AVddpcGvHbcSsi9OBY3ug2DsUzsN1YH/F2zCWbbmxmMb1G3cryo8BAoGAPA+D
ZVwvItDTvc0xUN0eDryJcZitamlDr0wPxwmebmyfqZ0JMrVZ/NVt6u2wu3ZC7ROU
iVpJwx4YfOvSbkdGbm24k2/wW3+9yXdUQRFRsKtSrvGzS+krX3KcQTWIv+XYNJuO
Lo7dBmwVVcRwp10urVnuad10c8iWv/ts3hfwDTUCgYEApJ4HCAgphDeWKTnomviD
YGM3aKWgEZP44mq8cixQZbcw2gEGhmy15Sdd9jD70+AZw/o4RIvAcCLVU5/pLpRX
hWkWZQBtpA/ztmm17D2Tj2NdvqM+RMN4zKUW6C0QkrW7gh639V5y8FCuKoy/uQMs
fnij+ZiGivp0JqVwsGGqnXA=
-----END PRIVATE KEY-----

@ -1,21 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIDcjCCAlqgAwIBAgIUW5EIIgnVwYCrLqC9gBMA8OfFCqswDQYJKoZIhvcNAQEL
BQAwNDEyMDAGA1UEAxMpRWxhc3RpYyBDZXJ0aWZpY2F0ZSBUb29sIEF1dG9nZW5l
cmF0ZWQgQ0EwHhcNMjEwNjE2MTYxNTM0WhcNMjIwNjE2MTYxNTM0WjAnMSUwIwYD
VQQDExxkZXYtZWxhc3RpYy1zdGFjay0wMy1lbGFzdGljMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAiAU0OfdSLc7gufcAPqNOc2Tvr253OA4R7Qf/KplV
xlWqBD9pN4OcmoAI29CBRgbVL/PlInASe7ELLuhq1q2p8Bh7UG2laEmVR+tS8+Av
7tDZBThHtf0zx0Y60H7R8Tyxj46f4BIWU66BSHpZ9NDC+vekPCNkF12FszDrjZn9
8qx+pYzmxSiyEzGCXaVEM6M743xuYuicDzsiF0yW2wgAnbLzBu72QU7u0/+lbROW
kHxfAS0GIYK6AhUB6Z5l0tJ2x08UEZ+0UBdBIQ7aGFMTCua5ci4nsXYTSU14Puso
tkbUGFc/zUL3Nly2kfie/QM2A7icSS3W1VXTs3MNgyrRgwIDAQABo4GIMIGFMB0G
A1UdDgQWBBTqshCmmroa9uWk/nBpIWJVJqIc8jAfBgNVHSMEGDAWgBQtF0m1oMyp
Dn4Ry5oYaasRX3zaXDA4BgNVHREEMTAvgglsb2NhbGhvc3SCHGRldi1lbGFzdGlj
LXN0YWNrLTAzLWVsYXN0aWOHBAoAAAQwCQYDVR0TBAIwADANBgkqhkiG9w0BAQsF
AAOCAQEASdh+8dvLPIDzqURh6P5eVUPbJ2XjT64B17pe8Pnj0omTuUkoMjjpr0F5
CSqQ9mg94S7apWIsuZQG49i56Vzykwyr+ozMSdzgf2/5SLsvIN6yZVXEJ3KhQjQw
RyWXevwYntq26SM1DEjeOQxSpbd1GS1RbtM/VydtC5s0jgrRTOXTpmu9s8Lj7XpI
iRKAfpQBhBA1lyHdObO5QKsDfgRx28VcrB4hymOcZUYs7LSMD5u7ZjHQoNfpdO9T
k7yK1BWjW5bPvbnZ4jjzqsPkRaXlraqh1cMfcSpS2E3XUVCrhto8eZvb4kHBSPcm
wJn9e1gv6zd7TJzw7AnIjHur6iYKWA==
-----END CERTIFICATE-----

@ -1,27 +0,0 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAiAU0OfdSLc7gufcAPqNOc2Tvr253OA4R7Qf/KplVxlWqBD9p
N4OcmoAI29CBRgbVL/PlInASe7ELLuhq1q2p8Bh7UG2laEmVR+tS8+Av7tDZBThH
tf0zx0Y60H7R8Tyxj46f4BIWU66BSHpZ9NDC+vekPCNkF12FszDrjZn98qx+pYzm
xSiyEzGCXaVEM6M743xuYuicDzsiF0yW2wgAnbLzBu72QU7u0/+lbROWkHxfAS0G
IYK6AhUB6Z5l0tJ2x08UEZ+0UBdBIQ7aGFMTCua5ci4nsXYTSU14PusotkbUGFc/
zUL3Nly2kfie/QM2A7icSS3W1VXTs3MNgyrRgwIDAQABAoIBAQCBI9+4ATaGw1nd
dcNHtSiwqm5eMxUBpWojj2oV+crUKVTn/4RX7p7qmRDQEiAKakZR5s/vaFREF400
lfmJpQwpJjU94TwfzWzsAWKapIkdxi+low+Cm8ljMyx381BEJ4m1cIYd6U5FWPLp
6zApHWNhf2jwp/FJtcNQo+ugX0oZ8YVYJOb7rX4G4sLRNqUVzd/cJ7akjEcON0ma
gyhp1J69nJgmKUl7yuPg+MAYn+L/J0i5JWo7+UD4PYAh1IdhIIDGzXK0vzwBy7Q4
uDt1JFI470NGZu8WdjLdULeFdhAcpkZBQmGopFA6uzU7cQNw8gsZbyWeG7l+T13T
RCbit9FBAoGBALzO+Y8CPmobFfH3DZgAsMp8QxO6GYYkpdP6ObczjuxhzEQ8C3nW
s5ZoF2b9+NOtUido2ADs6HvcpyVzv454sGsDW8rZjd0Thf4s1//hNi6xbQERUCZd
E/TNj4mD2FowP8wV2Z5E++Sh2oARNfwK2tUyo6YmZcqEY0UK8sv8j9BzAoGBALht
EUKtZTnSmTUx7n/nETHUNJQJT2dvX/4mGwhZSe1DK3EkCAfalptpPyy2UJ54tdlL
I5f7RqT/YM8f50/Lp76iJXUzOSmCmBEHgA/AzY3vkThiRgAW712jzwczrojl/vz8
PhxS0yLgbZNifpcv+zgthV449dE1w89dhac+gwaxAoGAVAUW8RjihX1AKsjx9652
/eSGRQUPzq4ITWiQvoHnHDH5IHRH9xQgHtJ7d42VaT07zeXOGbtTSatLhlMX72Kt
vzFja8WcZ8EEY7O4+1lRLz4tb8gwjqHk+49uTJerc5b9DOi8Sr4QChIslckS6PI7
p5w9TvbPXWvEcTkKCtR9exkCgYADET1SQJQIbCpEKjpvQiaVD5R4SddaPw33qiaU
8vc5zP4x+YlwqAANQajdU4Lvv842ePt0kadRIzY2+67bMuXtU8EPu/RdbmCdF+TX
XjuM+skNiQTlB3yfsBPHaOKkQD8HciKOUgpU8CqiYub8GL4y5v7q3EOqYRyKnGGW
sIF5YQKBgBra8TpX6WkoEVrJZ1R4A5L52F6ejIPQNa7Cwu/QTn4EmWkQ/hjPX9Wc
0GXO67bgW94e5Hb0i8SaJgE8gZvjrjw4LX3aCD6MUNgNrKa1dGJn1nJnR2UUyZ+f
t64X6Fdy883UvU5m6llniqmKjsL28lntKvqo8iJ7wBawDsjz8Yqd
-----END RSA PRIVATE KEY-----

@ -1,28 +0,0 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCIBTQ591ItzuC5
9wA+o05zZO+vbnc4DhHtB/8qmVXGVaoEP2k3g5yagAjb0IFGBtUv8+UicBJ7sQsu
6GrWranwGHtQbaVoSZVH61Lz4C/u0NkFOEe1/TPHRjrQftHxPLGPjp/gEhZTroFI
eln00ML696Q8I2QXXYWzMOuNmf3yrH6ljObFKLITMYJdpUQzozvjfG5i6JwPOyIX
TJbbCACdsvMG7vZBTu7T/6VtE5aQfF8BLQYhgroCFQHpnmXS0nbHTxQRn7RQF0Eh
DtoYUxMK5rlyLiexdhNJTXg+6yi2RtQYVz/NQvc2XLaR+J79AzYDuJxJLdbVVdOz
cw2DKtGDAgMBAAECggEBAIEj37gBNobDWd11w0e1KLCqbl4zFQGlaiOPahX5ytQp
VOf/hFfunuqZENASIApqRlHmz+9oVEQXjTSV+YmlDCkmNT3hPB/NbOwBYpqkiR3G
L6WjD4KbyWMzLHfzUEQnibVwhh3pTkVY8unrMCkdY2F/aPCn8Um1w1Cj66BfShnx
hVgk5vutfgbiwtE2pRXN39wntqSMRw43SZqDKGnUnr2cmCYpSXvK4+D4wBif4v8n
SLklajv5QPg9gCHUh2EggMbNcrS/PAHLtDi4O3UkUjjvQ0Zm7xZ2Mt1Qt4V2EBym
RkFCYaikUDq7NTtxA3DyCxlvJZ4buX5PXdNEJuK30UECgYEAvM75jwI+ahsV8fcN
mACwynxDE7oZhiSl0/o5tzOO7GHMRDwLedazlmgXZv34061SJ2jYAOzoe9ynJXO/
jniwawNbytmN3ROF/izX/+E2LrFtARFQJl0T9M2PiYPYWjA/zBXZnkT75KHagBE1
/Ara1TKjpiZlyoRjRQryy/yP0HMCgYEAuG0RQq1lOdKZNTHuf+cRMdQ0lAlPZ29f
/iYbCFlJ7UMrcSQIB9qWm2k/LLZQnni12Usjl/tGpP9gzx/nT8unvqIldTM5KYKY
EQeAD8DNje+ROGJGABbvXaPPBzOuiOX+/Pw+HFLTIuBtk2J+ly/7OC2FXjj10TXD
z12Fpz6DBrECgYBUBRbxGOKFfUAqyPH3rnb95IZFBQ/OrghNaJC+geccMfkgdEf3
FCAe0nt3jZVpPTvN5c4Zu1NJq0uGUxfvYq2/MWNrxZxnwQRjs7j7WVEvPi1vyDCO
oeT7j25Ml6tzlv0M6LxKvhAKEiyVyRLo8junnD1O9s9da8RxOQoK1H17GQKBgAMR
PVJAlAhsKkQqOm9CJpUPlHhJ11o/DfeqJpTy9znM/jH5iXCoAA1BqN1Tgu+/zjZ4
+3SRp1EjNjb7rtsy5e1TwQ+79F1uYJ0X5NdeO4z6yQ2JBOUHfJ+wE8do4qRAPwdy
Io5SClTwKqJi5vwYvjLm/urcQ6phHIqcYZawgXlhAoGAGtrxOlfpaSgRWslnVHgD
kvnYXp6Mg9A1rsLC79BOfgSZaRD+GM9f1ZzQZc7rtuBb3h7kdvSLxJomATyBm+Ou
PDgtfdoIPoxQ2A2sprV0YmfWcmdHZRTJn5+3rhfoV3LzzdS9TmbqWWeKqYqOwvby
We0q+qjyInvAFrAOyPPxip0=
-----END PRIVATE KEY-----

@ -1,21 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIDbjCCAlagAwIBAgIUWbGTX5WWfbae/Ry2ovgdYgBPxdswDQYJKoZIhvcNAQEL
BQAwNDEyMDAGA1UEAxMpRWxhc3RpYyBDZXJ0aWZpY2F0ZSBUb29sIEF1dG9nZW5l
cmF0ZWQgQ0EwHhcNMjEwNjE2MTYxNTM0WhcNMjIwNjE2MTYxNTM0WjAoMSYwJAYD
VQQDEx1kZXYtZWxhc3RpYy1zdGFjay0wMS1maWxlYmVhdDCCASIwDQYJKoZIhvcN
AQEBBQADggEPADCCAQoCggEBALw7MhHpCj5eS9I+eoRYOJcJekK8L6EVRnSHYEhw
0vuPk5SK6pvmxXtHzX1F+Kd8uDSPxMNiZPh7XcdM8j/dto9mVJuengH/Rw2GEWlO
duDwcFTXBnBa1O3vY2HFROMzGsp5ueJJVjKMLJvhciReeTlABTldH+j3Tyj6JSmI
DvaetuKDiydqj5uti/sJhFj4yWywqBTvXd9Vli6q+uijl3VbTHy5vhKk/kqWSyS4
gLaFV9f4QbDFURs8iHlqdLtHm5NlZpu0jEGXFzYT7gyvK8v6V3LugDW+xYElwiwc
xSyaunsAAuJ8c74IQUsLruMT8LyKmoCTwhSBnzrVwhMn2QsCAwEAAaOBgzCBgDAd
BgNVHQ4EFgQUedY1gkd5Uix7+/3S/TCVSti98H8wHwYDVR0jBBgwFoAULRdJtaDM
qQ5+EcuaGGmrEV982lwwMwYDVR0RBCwwKoIJbG9jYWxob3N0gh1kZXYtZWxhc3Rp
Yy1zdGFjay0wMS1maWxlYmVhdDAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IB
AQA3AABWKEJ1qtjHzAQvUw6PmCWHO1ZouCf1Rv74V9326+fXSyBR7G//4aCtPcY8
sxLPv7X3nnhEAHZsuGVuGtDpAlGcGEf8cMeoNJdtcf/qyARUsUk6ed+OvCDeTK6t
ENg/kzgnXuEfW7r+OEd/j7qbgnc+kc2+XwlyxCX8Vw5bTzmh/vQXZaect+ALz1Ax
LWyPPzWBbnquU8E/y7qhd8DtZJxbubP+Cwj7Ty+yOPbl8N/dWNSP9zP7pegw7Q8h
ZWcbtrSve2NQM35VkdkvwQIm2t0AWNMcT6L2RaOjaE3OAFPIptm6XuQyCdaga3P4
pzlzAvrUGwVyiUkII0Ytkm7y
-----END CERTIFICATE-----

@ -1,27 +0,0 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAvDsyEekKPl5L0j56hFg4lwl6QrwvoRVGdIdgSHDS+4+TlIrq
m+bFe0fNfUX4p3y4NI/Ew2Jk+Htdx0zyP922j2ZUm56eAf9HDYYRaU524PBwVNcG
cFrU7e9jYcVE4zMaynm54klWMowsm+FyJF55OUAFOV0f6PdPKPolKYgO9p624oOL
J2qPm62L+wmEWPjJbLCoFO9d31WWLqr66KOXdVtMfLm+EqT+SpZLJLiAtoVX1/hB
sMVRGzyIeWp0u0ebk2Vmm7SMQZcXNhPuDK8ry/pXcu6ANb7FgSXCLBzFLJq6ewAC
4nxzvghBSwuu4xPwvIqagJPCFIGfOtXCEyfZCwIDAQABAoIBAQCdmNZgJoScGWlU
G1mK6y5eTuIdc+BQ9zYpJJtZq5UKaHjA2tp5M2tOv5xt8aKx4Ht+Do1IpV4yqV+o
GWWOUXyjbaMTNGfI9kowKXr0d2yTAtyaO/o5IeO7Xz4PQxJdQ5F/yxD2RD62TaSf
0s81YiAO7eox0CWCcWXGwkFRF4intGTLccRBctqc1FJQA6xIA2dj/9SEl1Nf2URN
G9piqfHJra3eGU0+Vg2yHJpbXIHbmODTX2P1F2l0rE1Km14Cb9OUuS1lR82l/pBw
qxbFKqvfkbJQm0xmjVhaSkxbBDhGJp9C65U84eW5a4R92n6sjrtZkEp229WlkkVq
/PWXWliRAoGBAOnTOEF5MVVpTd4OPHlxp1kR2wn/Tf5TPu65THa3VMDZy67aZ4ju
Rur3f+KB1zcJ9ty2pqtEr6WnJ0lFHzMUatTSAFsPThgGwVQV/4bclNXxhGXUFaNv
b8juMwJKfqKjA1NoTVbn670KDE5zOPz8JioA4+xSRkd89F83wHYom6ejAoGBAM4V
Dah6RKXt1Vej0GoTizNOFllH07uQVyYuQwQD5uJsJLoUoSQxrAy1R9n02nFHZWF2
0UMFCnvoNUfBrIF0CY9xipVEUBVVsXekK9OSFw4qwXqHH/p4nrmUTYhCBc4spDGH
hI/hiyxEaGvvH16pAa4BKfP+me89xi7cSbOGob95AoGAXtq6pYTeiIGRfxVTXwjG
FJHzw5h4MUXf78PnyvkQPrObtzEOczQGPOduT5rQjZlTNbI65puUjaTDgSuzPmt3
8yHF1yrcSU7kOpI5+KGfFzNEvHJO3OAl/uLyemlx+dQbU0iqpyiqLyPWXjTL14UK
jluSGpo9vF5qW/4n60cJ7fUCgYBMQsY3Hmfg704PjHNHjcvpRHBIwae8tQFLA7uQ
9NCv4U0F/zRSbH86hKr+IPnlCYKeupVds7PZfmiZETaBASu4hU+/RPRNsNRnbb06
IcmeWHwYl4Bh89jo29SFI8l6LlLkcT3A8LnLu9TYfDijku8oMQ4RWJomSjnYhXRQ
lvWsIQKBgQCai/Car56N/Io+5CbDdU43MKXZ35lJhd0sSErCuhaFAB00fSx7rKWB
Z4OJDtEtBqY+pte1anSZdsPGlPIOoskaAWq1KRR8OY/JPQxqqT4XJyN0sUhGoeXH
JQ6lg14dH4nPY8hQbRy3kQD/kkigyKVwTtPH42yZxrhLbC8TjRf5cQ==
-----END RSA PRIVATE KEY-----

@ -1,28 +0,0 @@
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC8OzIR6Qo+XkvS
PnqEWDiXCXpCvC+hFUZ0h2BIcNL7j5OUiuqb5sV7R819RfinfLg0j8TDYmT4e13H
TPI/3baPZlSbnp4B/0cNhhFpTnbg8HBU1wZwWtTt72NhxUTjMxrKebniSVYyjCyb
4XIkXnk5QAU5XR/o908o+iUpiA72nrbig4snao+brYv7CYRY+MlssKgU713fVZYu
qvroo5d1W0x8ub4SpP5KlkskuIC2hVfX+EGwxVEbPIh5anS7R5uTZWabtIxBlxc2
E+4MryvL+ldy7oA1vsWBJcIsHMUsmrp7AALifHO+CEFLC67jE/C8ipqAk8IUgZ86
1cITJ9kLAgMBAAECggEBAJ2Y1mAmhJwZaVQbWYrrLl5O4h1z4FD3Nikkm1mrlQpo
eMDa2nkza06/nG3xorHge34OjUilXjKpX6gZZY5RfKNtoxM0Z8j2SjApevR3bJMC
3Jo7+jkh47tfPg9DEl1DkX/LEPZEPrZNpJ/SzzViIA7t6jHQJYJxZcbCQVEXiKe0
ZMtxxEFy2pzUUlADrEgDZ2P/1ISXU1/ZRE0b2mKp8cmtrd4ZTT5WDbIcmltcgduY
4NNfY/UXaXSsTUqbXgJv05S5LWVHzaX+kHCrFsUqq9+RslCbTGaNWFpKTFsEOEYm
n0LrlTzh5blrhH3afqyOu1mQSnbb1aWSRWr89ZdaWJECgYEA6dM4QXkxVWlN3g48
eXGnWRHbCf9N/lM+7rlMdrdUwNnLrtpniO5G6vd/4oHXNwn23Lamq0SvpacnSUUf
MxRq1NIAWw9OGAbBVBX/htyU1fGEZdQVo29vyO4zAkp+oqMDU2hNVufrvQoMTnM4
/PwmKgDj7FJGR3z0XzfAdiibp6MCgYEAzhUNqHpEpe3VV6PQahOLM04WWUfTu5BX
Ji5DBAPm4mwkuhShJDGsDLVH2fTacUdlYXbRQwUKe+g1R8GsgXQJj3GKlURQFVWx
d6Qr05IXDirBeocf+nieuZRNiEIFziykMYeEj+GLLERoa+8fXqkBrgEp8/6Z7z3G
LtxJs4ahv3kCgYBe2rqlhN6IgZF/FVNfCMYUkfPDmHgxRd/vw+fK+RA+s5u3MQ5z
NAY8525PmtCNmVM1sjrmm5SNpMOBK7M+a3fzIcXXKtxJTuQ6kjn4oZ8XM0S8ck7c
4CX+4vJ6aXH51BtTSKqnKKovI9ZeNMvXhQqOW5Iamj28Xmpb/ifrRwnt9QKBgExC
xjceZ+DvTg+Mc0eNy+lEcEjBp7y1AUsDu5D00K/hTQX/NFJsfzqEqv4g+eUJgp66
lV2zs9l+aJkRNoEBK7iFT79E9E2w1GdtvTohyZ5YfBiXgGHz2Ojb1IUjyXouUuRx
PcDwucu71Nh8OKOS7ygxDhFYmiZKOdiFdFCW9awhAoGBAJqL8Jqvno38ij7kJsN1
TjcwpdnfmUmF3SxISsK6FoUAHTR9LHuspYFng4kO0S0Gpj6m17VqdJl2w8aU8g6i
yRoBarUpFHw5j8k9DGqpPhcnI3SxSEah5cclDqWDXh0fic9jyFBtHLeRAP+SSKDI
pXBO08fjbJnGuEtsLxONF/lx
-----END PRIVATE KEY-----

@ -1,21 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIDbzCCAlegAwIBAgIVAN+eWtDY4G5e4kejqCzb7QysyChdMA0GCSqGSIb3DQEB
CwUAMDQxMjAwBgNVBAMTKUVsYXN0aWMgQ2VydGlmaWNhdGUgVG9vbCBBdXRvZ2Vu
ZXJhdGVkIENBMB4XDTIxMDYxNjE2MTUzNVoXDTIyMDYxNjE2MTUzNVowKDEmMCQG
A1UEAxMdZGV2LWVsYXN0aWMtc3RhY2stMDEtbG9nc3Rhc2gwggEiMA0GCSqGSIb3
DQEBAQUAA4IBDwAwggEKAoIBAQDHWyILJjSuKHUQeSsgAD8NsH7zM1CqdOsrO2EN
CfDiGHOdtdTxvSRInJD+1WHvRGiZkWAfmQJ5rhWFZ9cCVIbtiXTizoJ/FFD3N1UY
01sYf5dn3l5XG7lLtEjPrnV7Vq8UHPeEJGGdvCkISRkZcnz6KRdDZDwTrdYzJwrB
g4emiYSm5wjWnKzSi7v/akRAdrAOFdXnpH3YoERm68P9vS57QlGVDExVvK9Z7lpC
o8peecvbXBIm5HpiY1W1riiEqaWO0C9ML61LcI9G5j15wcJe2xPXIX7QOdFF8SeA
66od6W4Ct1MJ9KSl00N8o8Wjmk9d5uTJZWDz08yP6z0rUDqlAgMBAAGjgYMwgYAw
HQYDVR0OBBYEFGDi6PZexyytv9tbqBuRoY1KpM34MB8GA1UdIwQYMBaAFC0XSbWg
zKkOfhHLmhhpqxFffNpcMDMGA1UdEQQsMCqCCWxvY2FsaG9zdIIdZGV2LWVsYXN0
aWMtc3RhY2stMDEtbG9nc3Rhc2gwCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOC
AQEAP8Usofqxb4UeOXYgyPDNYOAgI56VkB+Ej7NrPmWJgYIujDgNQSQOGEGQLtgw
joVE3zx9X+ZLf6VJ/snifxQV1k3/vFadpsffBlyE0cbkobW853a2QYfd1+YVMUG6
aWwMb5m2Fsynpnib97sB8SuZ0okKJGEa+HhcaiEteT/zc3ZsvC3KpwPu+4H+QM+X
2HOzBuOi1JcKu7BYRKYaL9XjikbeTJyZatfBSX7s83ReGd3UxGazCa1hU04HvnZW
b8bXlDJ7+62iV2GDqceoRp6ieJs5MyIz3IzyjKalPdgZWuyCzXIrDKaNYmXGFfLS
2sVs8kl4Ony0mus05ZPxG9CtcQ==
-----END CERTIFICATE-----

@ -1,27 +0,0 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAx1siCyY0rih1EHkrIAA/DbB+8zNQqnTrKzthDQnw4hhznbXU
8b0kSJyQ/tVh70RomZFgH5kCea4VhWfXAlSG7Yl04s6CfxRQ9zdVGNNbGH+XZ95e
Vxu5S7RIz651e1avFBz3hCRhnbwpCEkZGXJ8+ikXQ2Q8E63WMycKwYOHpomEpucI
1pys0ou7/2pEQHawDhXV56R92KBEZuvD/b0ue0JRlQxMVbyvWe5aQqPKXnnL21wS
JuR6YmNVta4ohKmljtAvTC+tS3CPRuY9ecHCXtsT1yF+0DnRRfEngOuqHeluArdT
CfSkpdNDfKPFo5pPXebkyWVg89PMj+s9K1A6pQIDAQABAoIBAQCHfEw6v5B1/FDz
DSZd7UztBNKCfpGIB0X8b7KZpfPr9So+OOGsGRubraxtRJ/2eMuN8tsdHmQsRj+i
FtxtXP0GWrDxo9/Udf5AxX40DRCQKcbAdMQw90qLRM9nNe3qEROT28vsJr2g8cwB
MYy5WrHNYjfJOUoLJc25ngMVWUrLxt3uc9PJ9KTGB01GNEZnbABt9WNi2q/vRixL
IQVXpNcAiLab2EzmO519klHJXSHNl8Z7MH3jla6v8HN9j7orQBB6XdRCDMKjZiSb
akQzQ54o0aUeFM+Y66yFQ3wPxjioyN7kRRQQNhLvdiBSyHmZy5gGKG3qmZPkzF3g
OJwpi9yBAoGBAPcdSrUybElAC8OIP43hmSk0+fZZCJ58fLqZhljqd2RrbeTWEsoz
Ekg/3xMFp4pI+QlU5xSnVIDyawmrYXKtnBOhchRTBeBU1IV3kQuMM3GihLz2cbIP
nYmlTFVYBnh818Nk2UUxI6t2uW4vX7Ve1JabV0uLM6X3gHrQyDYy1of9AoGBAM6G
OI7JLakOscuOZsKgVCLOCjtVgullQQPCg5on+X3LUcwbkF5BbI9IUVtbVtCiDuj+
kM14dfV/Jg0yCCdrWjL8NMyZYPN4u04yqJWDqZLyLqtkgOmSlmiuvK1ytHOMgbON
rqVHRhG6pccuLZOZyNxohvoJ8ImuIg7i/OI4ItnJAoGBAI9sM9EIy+qTvoAlEuXx
Gujcs3s0X5lEnUvcESqIIvVomKapTMyIacL/NySeMohDJC8zVM8a8yPIDzHUg0GA
28ZU/JYpPY7fDV3NcKSoIa+BaNMXohN7lq6t/qjF5zOFGeFxJd1P0OkShjsaSc1F
ldM3o6nXyAk6phoiFSHHzdWtAoGAOO5DFQlcLuhAFs7wgOJVjyqhI24VImWpIHI0
eQBgBE9SAyPuDi2W0YCr/LUXH3gtCAl0vU9hpQUh5i1Olh8/xCJGI8h8M2GqsInC
c0TSMBHWz6Rq7Phdwgm5NU8Tc27eKjL6W9Fj/WsoW9nc8n1II4ok+zRWPH3mIZht
Aadb5BECgYBwD8VEUF5WffIvnXz5HEl2Zq3pX7pLpQ8MhIDeUI1iK2Swosu3tBlv
Xq3h1z5Kz5kvQC03UR4HmGCDVS30A6gJuXg7NAkclYb5Cpmt+xQkWRWCXClt8S4X
/xI3NQHh3ci0ZcMqCB9Wxt83nMrnXC+ZSZb23AI8n32eS84QHK89Ew==
-----END RSA PRIVATE KEY-----

@ -1,28 +0,0 @@
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDHWyILJjSuKHUQ
eSsgAD8NsH7zM1CqdOsrO2ENCfDiGHOdtdTxvSRInJD+1WHvRGiZkWAfmQJ5rhWF
Z9cCVIbtiXTizoJ/FFD3N1UY01sYf5dn3l5XG7lLtEjPrnV7Vq8UHPeEJGGdvCkI
SRkZcnz6KRdDZDwTrdYzJwrBg4emiYSm5wjWnKzSi7v/akRAdrAOFdXnpH3YoERm
68P9vS57QlGVDExVvK9Z7lpCo8peecvbXBIm5HpiY1W1riiEqaWO0C9ML61LcI9G
5j15wcJe2xPXIX7QOdFF8SeA66od6W4Ct1MJ9KSl00N8o8Wjmk9d5uTJZWDz08yP
6z0rUDqlAgMBAAECggEBAId8TDq/kHX8UPMNJl3tTO0E0oJ+kYgHRfxvspml8+v1
Kj444awZG5utrG1En/Z4y43y2x0eZCxGP6IW3G1c/QZasPGj39R1/kDFfjQNEJAp
xsB0xDD3SotEz2c17eoRE5Pby+wmvaDxzAExjLlasc1iN8k5SgslzbmeAxVZSsvG
3e5z08n0pMYHTUY0RmdsAG31Y2Lar+9GLEshBVek1wCItpvYTOY7nX2SUcldIc2X
xnswfeOVrq/wc32PuitAEHpd1EIMwqNmJJtqRDNDnijRpR4Uz5jrrIVDfA/GOKjI
3uRFFBA2Eu92IFLIeZnLmAYobeqZk+TMXeA4nCmL3IECgYEA9x1KtTJsSUALw4g/
jeGZKTT59lkInnx8upmGWOp3ZGtt5NYSyjMSSD/fEwWnikj5CVTnFKdUgPJrCath
cq2cE6FyFFMF4FTUhXeRC4wzcaKEvPZxsg+diaVMVVgGeHzXw2TZRTEjq3a5bi9f
tV7UlptXS4szpfeAetDINjLWh/0CgYEAzoY4jsktqQ6xy45mwqBUIs4KO1WC6WVB
A8KDmif5fctRzBuQXkFsj0hRW1tW0KIO6P6QzXh19X8mDTIIJ2taMvw0zJlg83i7
TjKolYOpkvIuq2SA6ZKWaK68rXK0c4yBs42upUdGEbqlxy4tk5nI3GiG+gnwia4i
DuL84jgi2ckCgYEAj2wz0QjL6pO+gCUS5fEa6NyzezRfmUSdS9wRKogi9WiYpqlM
zIhpwv83JJ4yiEMkLzNUzxrzI8gPMdSDQYDbxlT8lik9jt8NXc1wpKghr4Fo0xei
E3uWrq3+qMXnM4UZ4XEl3U/Q6RKGOxpJzUWV0zejqdfICTqmGiIVIcfN1a0CgYA4
7kMVCVwu6EAWzvCA4lWPKqEjbhUiZakgcjR5AGAET1IDI+4OLZbRgKv8tRcfeC0I
CXS9T2GlBSHmLU6WHz/EIkYjyHwzYaqwicJzRNIwEdbPpGrs+F3CCbk1TxNzbt4q
Mvpb0WP9ayhb2dzyfUgjiiT7NFY8feYhmG0Bp1vkEQKBgHAPxURQXlZ98i+dfPkc
SXZmrelfukulDwyEgN5QjWIrZLCiy7e0GW9ereHXPkrPmS9ALTdRHgeYYINVLfQD
qAm5eDs0CRyVhvkKma37FCRZFYJcKW3xLhf/Ejc1AeHdyLRlwyoIH1bG3zecyudc
L5lJlvbcAjyffZ5LzhAcrz0T
-----END PRIVATE KEY-----

@ -1,24 +1,28 @@
yum install -y -q -e 0 unzip;
for folder in /certs/certs/*/ ; do
if [[ ! -d /certs/$1-certs ]]; then
mkdir /certs/$1-certs
fi;
for folder in /certs/$1-certs/*/ ; do
rm -Rf $folder
done
if [[ ! -f /certs/certs/bundle.zip ]]; then
if [[ ! -f /certs/$1-certs/bundle.zip ]]; then
bin/elasticsearch-certutil \
cert \
--silent \
--days 365 \
--pem \
--in config/certificates/instances.yml \
-out /certs/certs/bundle.zip;
unzip /certs/certs/bundle.zip -d /certs/certs;
rm /certs/certs/bundle.zip;
--in config/certificates/$1-instances.yml \
-out /certs/$1-certs/bundle.zip;
unzip /certs/$1-certs/bundle.zip -d /certs/$1-certs;
rm /certs/$1-certs/bundle.zip;
fi;
for file in /certs/certs/*/*.key ; do
for file in /certs/$1-certs/*/*.key ; do
openssl pkcs8 -in $file \
-topk8 -nocrypt -out ${file/.key/.pkcs8.key};
done
chown -R 1000:0 /certs/certs
chown -R 1000:0 /certs/$1-certs

@ -0,0 +1,20 @@
-----BEGIN CERTIFICATE-----
MIIDSjCCAjKgAwIBAgIVALoaO+vyeJc6elKN4SMIOb9AKm8HMA0GCSqGSIb3DQEB
CwUAMDQxMjAwBgNVBAMTKUVsYXN0aWMgQ2VydGlmaWNhdGUgVG9vbCBBdXRvZ2Vu
ZXJhdGVkIENBMB4XDTIxMDkwMzEyMTIwNFoXDTIyMDkwMzEyMTIwNFowNDEyMDAG
A1UEAxMpRWxhc3RpYyBDZXJ0aWZpY2F0ZSBUb29sIEF1dG9nZW5lcmF0ZWQgQ0Ew
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCSkIH2QlzcEncmAAwtkVw7
Nsr7WEBO7eIIST3mY9XJwlqP4IsR9C9UnSXUSpWSJEcv1I6mrZE38Hyq/rvcEFZK
ZSgHYDsJiVglkUZFdv5S84vgVSROoy+8r10fokHfpbidtJmXabP5T6VD+LE+Mg7y
RddhHZCoM4wHveo/q55c3RCoVc0PEELrk0vVqvYK99LO+yAprBPzRuXDZx5oJkxD
+Uc4rTyNCcTTo8CkK1BfccXktBHTQvOzOYxuwyGxb/GCaKwcGG+XQ4TRt3o7r3GR
TOKCNO+sM6c0g7W0OoL38v7/IKAufTcmU7QO/tb9NBz/G9N57EOqhPdp/46ih1XX
AgMBAAGjUzBRMB0GA1UdDgQWBBQTPREWSx37K1IpHecIquNdDE7ztDAfBgNVHSME
GDAWgBQTPREWSx37K1IpHecIquNdDE7ztDAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
SIb3DQEBCwUAA4IBAQAGVoeS1hfVOrDnnLYzPSrF9IfHEzt/eSr3ymEiNUK8ZaRS
9gpvRgX8n0pS197wVyK8hd2iXzH58H6KMkhcWZH2uNLEB8aOFOCkQxnU4NsMYRjT
RaS+qf29YbH6LkyO1kxCtGxldKybj8I8MFf8X0mBLN4Nk+w+KqKVFsl63AMtsJkq
WOgjoYZcY+FQW0HqS2AzDVkDZiXAtjwtXXjONAJOylRHDieA3UByukNHI0OtIurX
ePsDUoEakawtgXZmD8/RCt8Jpqm5UDwAioa18KJv3u5yqtX+whUnFSI7u5+Mzlay
2aOT5tIpOXQPV3tuUSvC6CYpoJOrLjgJSJhcP8Uo
-----END CERTIFICATE-----

@ -0,0 +1,21 @@
-----BEGIN CERTIFICATE-----
MIIDazCCAlOgAwIBAgIUNnfdca40VV5wGcWXDWJJTQzAOa8wDQYJKoZIhvcNAQEL
BQAwNDEyMDAGA1UEAxMpRWxhc3RpYyBDZXJ0aWZpY2F0ZSBUb29sIEF1dG9nZW5l
cmF0ZWQgQ0EwHhcNMjEwOTAzMTIxMjA0WhcNMjIwOTAzMTIxMjA0WjAnMSUwIwYD
VQQDExxkZXYtZWxhc3RpYy1zdGFjay1lbGFzdGljLTAxMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAgBC5kK3/Wh6Ur6wzs8SSiAUTRExNqvbAKzTihBV1
FCgAuyLAv/KjreamzVJ+V1Dwb2JA+Rb7yYUHe+JIRTsK+DNZRKm5v7l+ZboT7eO/
RYUMDnRrdnS7Ctfu5kcwm/tQmnYl+OyzDw7w2BjQtidjLh4+DqAbIiXspiRWOKQk
xYnJ87Olev3IZg9g4aZGkmaHa6UMsNmyet3JkgrZaWOcuxY7rB0P6ntuF5AgI1PI
Px9Wcth9bB7Wx9uQO8pCW5olPaW6Ba9IVXzFeQxlRTPTurE3fSGr+Wj1TeQzbD0S
O9Ph7op2vtZeXwlbtKiVB3FeJ5WlZ7HuGn/1nsKjzf6jZQIDAQABo4GBMH8wHQYD
VR0OBBYEFBODHgHZaQdVVYrh3BwbBbqrP8dJMB8GA1UdIwQYMBaAFBM9ERZLHfsr
Uikd5wiq410MTvO0MDIGA1UdEQQrMCmCCWxvY2FsaG9zdIIcZGV2LWVsYXN0aWMt
c3RhY2stZWxhc3RpYy0wMTAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAE
leedH4sZoSwL8ObNPd1Q84OSrF8lO6PpMvv5hHgzRjWdV+UZfVDUTkPEFD3oYuDZ
2MccoJV/z375jjzQqikWMZwYLak7nveGRnxc+nDWTzUTLiPcI5DwNkvX8+Af9AfO
11GIvJBTPy8Go9RBXqRXxN/iNiOwOOe63Qmve7S6TBgT168I/WgWlhjkypwAkU66
SC4xP04qyVKes8YbV+Uuy66Cz6XAPyV4lLGMyVkYPQWaJYiLO7QpZc5OjqgcCHCu
s1Uk/bSo7rVP0WEUmL+EPp85WkyD11zLHWZfefH9dxUIplOhIoGtiSREInFfafj1
UOBf+8bqW7kmTmNDUprh
-----END CERTIFICATE-----

@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAgBC5kK3/Wh6Ur6wzs8SSiAUTRExNqvbAKzTihBV1FCgAuyLA
v/KjreamzVJ+V1Dwb2JA+Rb7yYUHe+JIRTsK+DNZRKm5v7l+ZboT7eO/RYUMDnRr
dnS7Ctfu5kcwm/tQmnYl+OyzDw7w2BjQtidjLh4+DqAbIiXspiRWOKQkxYnJ87Ol
ev3IZg9g4aZGkmaHa6UMsNmyet3JkgrZaWOcuxY7rB0P6ntuF5AgI1PIPx9Wcth9
bB7Wx9uQO8pCW5olPaW6Ba9IVXzFeQxlRTPTurE3fSGr+Wj1TeQzbD0SO9Ph7op2
vtZeXwlbtKiVB3FeJ5WlZ7HuGn/1nsKjzf6jZQIDAQABAoIBAAXdPjIS1aORzOsy
bnen47HY0aYJ/HB8thYEaO71cJQItOfc0oi3mqkm67JxOZnT+f6PuDvvwn3a2png
pcCN0JXG/Cp5vyi5XMFZwPneuO59Bi1PRXB6Lep0MttWnTI3UtyP1nNMm3JwE7VB
haUhrpf5CIxw5m0s4WZGObCES67D7LPwOgdEL3r0cw8PU6jIeNT94uhgmyJhnlu9
PQEh9yVeofaHabTOXljmqIyz1kIFR2cddRS3mmj5KEqeiLbD9aBQb4Iyg0pjfxoB
YSalCxkypqcuR9G4W7tPuv1udjvURSY+ajnVmoUCD0lMZ6yopzX1iEQDQEaZrWEr
c6+/+YECgYEA04YDZqPBPYD26/4jz+jZXNm5iK2bPIqdQ4PEcmB0+uhLzznl6r5/
VqmlidNYyl22BSrVavh08tFTCD8LgxZFOjv6QQuJZJXVM1pBFIcNiCbVl4y5QcqU
EltSjD29rLv3YwB4gjiz04UD/TebYKuPqdR1rKwXst6q9bH9bGPzaIUCgYEAmv5J
SQkJS8He3+clFCAzCCcOlaX2P8VdYQC+9c27rmuBX86nYunzzcnKDCxKPkxArR7+
Bbn7WIaQnNIbh8wOVmHNnBGa4udswP7DihDLIE6yb2o6myXcA3oUOqj0+aY0nhuT
Jur62G1LCcAK0XwvLCA4Q6tZt11yN+XgA7PGtWECgYAk4zkSnDol5KirDR3nsx68
74dIi6YHz9CPJpqKq8GaxAn8cIdlAaWpUlp5B69zUxZcHlUrm3qhodmOFZiHWsnl
1vHUiBOExBBzLSkuUEMO3F7hV/wyugZKkTx7EoVSa1FAJaPeac8Kcyb38Mua9zBN
mKyQ2U4ktmowAMNGNMQNFQKBgDIAEnhDOAJ+en3UvXtun8fjgar5LSWJcARZD0GQ
qxkriUL1Eb6xJnueu1WN/C14v+yZcO08AD+guYo9pa/7PizTxFayvzqv2b+w8Dfc
DwtPF/UlWd6vKfjdKyV5V/4phhPzZVdKur2TFIACufq2iyk7A6ug3YJv3Ob3e3r2
RgZBAoGBAMjSSAIzuKtiAHV9vSWZe1hFPYOngqLQVsMNo/itvvD+lsyfOdVeW4Ax
yydr4x5+V877n5flDhjhGXNFQskyBeAjUpYnJek316Sim8KHPZGifAHd6duuGuB1
132BStXmV0sqIvVFvSv1K9+tmhcsV9Oe1iR3uBrrpJ9Y13B0Vcxm
-----END RSA PRIVATE KEY-----

@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCAELmQrf9aHpSv
rDOzxJKIBRNETE2q9sArNOKEFXUUKAC7IsC/8qOt5qbNUn5XUPBvYkD5FvvJhQd7
4khFOwr4M1lEqbm/uX5luhPt479FhQwOdGt2dLsK1+7mRzCb+1CadiX47LMPDvDY
GNC2J2MuHj4OoBsiJeymJFY4pCTFicnzs6V6/chmD2DhpkaSZodrpQyw2bJ63cmS
CtlpY5y7FjusHQ/qe24XkCAjU8g/H1Zy2H1sHtbH25A7ykJbmiU9pboFr0hVfMV5
DGVFM9O6sTd9Iav5aPVN5DNsPRI70+Huina+1l5fCVu0qJUHcV4nlaVnse4af/We
wqPN/qNlAgMBAAECggEABd0+MhLVo5HM6zJud6fjsdjRpgn8cHy2FgRo7vVwlAi0
59zSiLeaqSbrsnE5mdP5/o+4O+/CfdrameClwI3Qlcb8Knm/KLlcwVnA+d647n0G
LU9FcHot6nQy21adMjdS3I/Wc0ybcnATtUGFpSGul/kIjHDmbSzhZkY5sIRLrsPs
s/A6B0QvevRzDw9TqMh41P3i6GCbImGeW709ASH3JV6h9odptM5eWOaojLPWQgVH
Zx11FLeaaPkoSp6ItsP1oFBvgjKDSmN/GgFhJqULGTKmpy5H0bhbu0+6/W52O9RF
Jj5qOdWahQIPSUxnrKinNfWIRANARpmtYStzr7/5gQKBgQDThgNmo8E9gPbr/iPP
6Nlc2bmIrZs8ip1Dg8RyYHT66EvPOeXqvn9WqaWJ01jKXbYFKtVq+HTy0VMIPwuD
FkU6O/pBC4lkldUzWkEUhw2IJtWXjLlBypQSW1KMPb2su/djAHiCOLPThQP9N5tg
q4+p1HWsrBey3qr1sf1sY/NohQKBgQCa/klJCQlLwd7f5yUUIDMIJw6VpfY/xV1h
AL71zbuua4Ffzqdi6fPNycoMLEo+TECtHv4FuftYhpCc0huHzA5WYc2cEZri52zA
/sOKEMsgTrJvajqbJdwDehQ6qPT5pjSeG5Mm6vrYbUsJwArRfC8sIDhDq1m3XXI3
5eADs8a1YQKBgCTjORKcOiXkqKsNHeezHrzvh0iLpgfP0I8mmoqrwZrECfxwh2UB
palSWnkHr3NTFlweVSubeqGh2Y4VmIdayeXW8dSIE4TEEHMtKS5QQw7cXuFX/DK6
BkqRPHsShVJrUUAlo95pzwpzJvfwy5r3ME2YrJDZTiS2ajAAw0Y0xA0VAoGAMgAS
eEM4An56fdS9e26fx+OBqvktJYlwBFkPQZCrGSuJQvURvrEme567VY38LXi/7Jlw
7TwAP6C5ij2lr/s+LNPEVrK/Oq/Zv7DwN9wPC08X9SVZ3q8p+N0rJXlX/imGE/Nl
V0q6vZMUgAK5+raLKTsDq6Ddgm/c5vd7evZGBkECgYEAyNJIAjO4q2IAdX29JZl7
WEU9g6eCotBWww2j+K2+8P6WzJ851V5bgDHLJ2vjHn5Xzvufl+UOGOEZc0VCyTIF
4CNSlicl6TfXpKKbwoc9kaJ8Ad3p264a4HXXfYFK1eZXSyoi9UW9K/Ur362aFyxX
057WJHe4Guukn1jXcHRVzGY=
-----END PRIVATE KEY-----

@ -0,0 +1,21 @@
-----BEGIN CERTIFICATE-----
MIIDazCCAlOgAwIBAgIUQtTn7ji1zFLz3N6UQmOwOtXScJswDQYJKoZIhvcNAQEL
BQAwNDEyMDAGA1UEAxMpRWxhc3RpYyBDZXJ0aWZpY2F0ZSBUb29sIEF1dG9nZW5l
cmF0ZWQgQ0EwHhcNMjEwOTAzMTIxMjA1WhcNMjIwOTAzMTIxMjA1WjAnMSUwIwYD
VQQDExxkZXYtZWxhc3RpYy1zdGFjay1lbGFzdGljLTAyMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAjfBCIUTBlwhqtzfniF3G898CTMYOtDK9AJd8tgww
QsaiLnON7HxIUoqDb74oTTs5fEaz839980fnla0cR1TwOde0oyp2ADBcXLStjXkQ
UZ3wkOn+ZBNM+BHzZNvudXwY3fRSES/2GGVqIKeCWRreW0/hlalMo/7JiB0HjOMg
1a4Thz0zENrWf0ToziT/OkdkJfm5shwhvLHP0vGzVXKtZj0tnVTNWOA9MWg/vT9E
tNda0yN+zfrLHZRYfVPwrY9QKexGgzo8el3YS1xjbXLD6mVnb8E+qNNsBBFqM2l/
elolgHM1k20HrFYvNKkO9HZXKwQpWB9WO8l+UZ9mEMWhnwIDAQABo4GBMH8wHQYD
VR0OBBYEFB7PcRhAKAXJL8mYf38QWuxMgbDiMB8GA1UdIwQYMBaAFBM9ERZLHfsr
Uikd5wiq410MTvO0MDIGA1UdEQQrMCmCCWxvY2FsaG9zdIIcZGV2LWVsYXN0aWMt
c3RhY2stZWxhc3RpYy0wMjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBt
vrWaSvJcnYyo/PA0rWBa6TUR/KCSPxoQB6ZscmwHZnr9Y4pHMJNMupNxYZJi3YwY
nSTcR4PWy2kgD+zxrre/ljeVI/297OaUroV+P89zpNvEG0kBppjr4Zc25DfMJYp/
dPQfJiCbOT+s4oCW3AZ5h4FxGwJA6OFAqeKb2gLksfp6Go/9pxn1mMw28Bo8MjUH
rM8LGehTxNzydlCqmcNVqHTzUkYuN4fQZqNP3iYxbvLlANYvfKV3wMbh9rpj2U7U
am3Gs4Mii0Oi0bCo2/TJXDMShcZyB/obSd+Gh+/DXr1GkNlFzpUogE5o/ECGv4rM
dD+Rkl8/asDHEKYpVwYc
-----END CERTIFICATE-----

@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAjfBCIUTBlwhqtzfniF3G898CTMYOtDK9AJd8tgwwQsaiLnON
7HxIUoqDb74oTTs5fEaz839980fnla0cR1TwOde0oyp2ADBcXLStjXkQUZ3wkOn+
ZBNM+BHzZNvudXwY3fRSES/2GGVqIKeCWRreW0/hlalMo/7JiB0HjOMg1a4Thz0z
ENrWf0ToziT/OkdkJfm5shwhvLHP0vGzVXKtZj0tnVTNWOA9MWg/vT9EtNda0yN+
zfrLHZRYfVPwrY9QKexGgzo8el3YS1xjbXLD6mVnb8E+qNNsBBFqM2l/elolgHM1
k20HrFYvNKkO9HZXKwQpWB9WO8l+UZ9mEMWhnwIDAQABAoIBABvqt3cHqPPlyeeD
bVya5TiuEiu7gMTcfeQR54t+1jcsDlYIkE+FGkxxxexCgHbAQUw6M8aeus0QxXHg
/IDjKeSWkobNISxkVqY9Oy1qNFV5NQmrnEderHLWRQL/ZuVgpRtypHmQ71xZBgiq
Ka8Q488d5Qakp9hRkp3c59FEEv8z1MbpicnH8yXytk0m8X0RUWQxWqaJc+RQuM5w
hm3nPNmcAtykyT6xfzgMTDs3xGmde8/FLOQvXuuyIX5Kq5l8T8C5GeomkPUbboS6
+taf74HTO3EWxK7ehnUa88sRQXU9YfnkxypFDHQ3qSbqyTi/ANPvAmajzN4qYxbl
Hap7yqECgYEAxZsvzM80N3lfMqrnxOQ5v8rS3hXZTeBYtUUUlC4NnF6UR+zau8mY
IF64BF7HznsFOG7PRhvyRcFM2idJoEIIWY3630o4zsOxFCW2is2eqQvP4EC51mMR
PPlfIuAXlJvYmq4TPzcyYSwiKgJsaKNJb8t1uginDdj2D58zuDKX6VkCgYEAt+HW
fdMIrFTdZ6b30rRfvFE/HEcjM41zVjs33cPcfeM4AGiMsydltM2xdSwZzsaNqs7C
ynGFii9p6GHLW+VujNog762dtSNNpHyG6Y2e/ukswmaiPkFTViyM2AcTOkz+CuVO
gQElL9Ry1M4QADbgNikaPr0sqg9ZByjIxfx/C7cCgYEAimNRSYT/E66bffd0003m
J6xamxAAHGr2lRRpAhFylMUj4W8+DG91a44KH31lPvSmxkvMO1RNCo8CTHFhPaug
/17Qh9oKCLvB4tM6kODJsafFEE8kFsFQjDw0ZU89FGVEf6dTcV0tmiH3VyZVV76r
KnD55Kw0mh0Mzgn3hZNhEhkCgYAseW/ycNdZLxF533VzPfMlzhTQlxgZgO3TfnEt
rxCmVg2Wc7MMJcxApbt1FpyLWZSsKmQMqNZerMcV0IlqCZzqblum/Lv3Mrm1vfS3
imxZRTZxMnetTQmF/zJ1kYiCAlszcXDCXO+MmPrJI6nVE3C5SMmzQPgLjbi/tYqR
8FceEwKBgAtvMrR38unTwf7DeHA8hsK/0rBVSMiFF/E80CnCTOao+OWjNHuvpqI3
PvSTzNCiMvn9GJLjL7MHNhpkRFbOPAc6MrLKhyseZPOivxHvwXYkTiCf0hJybak9
xTKSEL0ggcNpDYI8GfxeAZxOmDkcl1f2AShOlZvv4M/gZCcIxEkT
-----END RSA PRIVATE KEY-----

@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCN8EIhRMGXCGq3
N+eIXcbz3wJMxg60Mr0Al3y2DDBCxqIuc43sfEhSioNvvihNOzl8RrPzf33zR+eV
rRxHVPA517SjKnYAMFxctK2NeRBRnfCQ6f5kE0z4EfNk2+51fBjd9FIRL/YYZWog
p4JZGt5bT+GVqUyj/smIHQeM4yDVrhOHPTMQ2tZ/ROjOJP86R2Ql+bmyHCG8sc/S
8bNVcq1mPS2dVM1Y4D0xaD+9P0S011rTI37N+ssdlFh9U/Ctj1Ap7EaDOjx6XdhL
XGNtcsPqZWdvwT6o02wEEWozaX96WiWAczWTbQesVi80qQ70dlcrBClYH1Y7yX5R
n2YQxaGfAgMBAAECggEAG+q3dweo8+XJ54NtXJrlOK4SK7uAxNx95BHni37WNywO
VgiQT4UaTHHF7EKAdsBBTDozxp66zRDFceD8gOMp5JaShs0hLGRWpj07LWo0VXk1
CaucR16sctZFAv9m5WClG3KkeZDvXFkGCKoprxDjzx3lBqSn2FGSndzn0UQS/zPU
xumJycfzJfK2TSbxfRFRZDFapolz5FC4znCGbec82ZwC3KTJPrF/OAxMOzfEaZ17
z8Us5C9e67IhfkqrmXxPwLkZ6iaQ9RtuhLr61p/vgdM7cRbErt6GdRrzyxFBdT1h
+eTHKkUMdDepJurJOL8A0+8CZqPM3ipjFuUdqnvKoQKBgQDFmy/MzzQ3eV8yqufE
5Dm/ytLeFdlN4Fi1RRSULg2cXpRH7Nq7yZggXrgEXsfOewU4bs9GG/JFwUzaJ0mg
QghZjfrfSjjOw7EUJbaKzZ6pC8/gQLnWYxE8+V8i4BeUm9iarhM/NzJhLCIqAmxo
o0lvy3W6CKcN2PYPnzO4MpfpWQKBgQC34dZ90wisVN1npvfStF+8UT8cRyMzjXNW
Ozfdw9x94zgAaIyzJ2W0zbF1LBnOxo2qzsLKcYWKL2noYctb5W6M2iDvrZ21I02k
fIbpjZ7+6SzCZqI+QVNWLIzYBxM6TP4K5U6BASUv1HLUzhAANuA2KRo+vSyqD1kH
KMjF/H8LtwKBgQCKY1FJhP8Trpt993TTTeYnrFqbEAAcavaVFGkCEXKUxSPhbz4M
b3VrjgoffWU+9KbGS8w7VE0KjwJMcWE9q6D/XtCH2goIu8Hi0zqQ4Mmxp8UQTyQW
wVCMPDRlTz0UZUR/p1NxXS2aIfdXJlVXvqsqcPnkrDSaHQzOCfeFk2ESGQKBgCx5
b/Jw11kvEXnfdXM98yXOFNCXGBmA7dN+cS2vEKZWDZZzswwlzEClu3UWnItZlKwq
ZAyo1l6sxxXQiWoJnOpuW6b8u/cyubW99LeKbFlFNnEyd61NCYX/MnWRiIICWzNx
cMJc74yY+skjqdUTcLlIybNA+AuNuL+1ipHwVx4TAoGAC28ytHfy6dPB/sN4cDyG
wr/SsFVIyIUX8TzQKcJM5qj45aM0e6+mojc+9JPM0KIy+f0YkuMvswc2GmREVs48
BzoyssqHKx5k86K/Ee/BdiROIJ/SEnJtqT3FMpIQvSCBw2kNgjwZ/F4BnE6YORyX
V/YBKE6Vm+/gz+BkJwjESRM=
-----END PRIVATE KEY-----

@ -0,0 +1,21 @@
-----BEGIN CERTIFICATE-----
MIIDbDCCAlSgAwIBAgIVALL2thdjv7Jmq/loIOeMR4t/ONLGMA0GCSqGSIb3DQEB
CwUAMDQxMjAwBgNVBAMTKUVsYXN0aWMgQ2VydGlmaWNhdGUgVG9vbCBBdXRvZ2Vu
ZXJhdGVkIENBMB4XDTIxMDkwMzEyMTIwNVoXDTIyMDkwMzEyMTIwNVowJzElMCMG
A1UEAxMcZGV2LWVsYXN0aWMtc3RhY2stZWxhc3RpYy0wMzCCASIwDQYJKoZIhvcN
AQEBBQADggEPADCCAQoCggEBAIFUo+NaEu/pKc5mPfJWI8frMVWIN+xafYdwu9m8
bRZOSPHsLI576+QW03XZdQlRFxG4n9SO0lcVobBdOhCYPp5nZLF64F+z0efALB5B
rNRgHLsjMEfPx5tHS5ZgtSwoy6DFwkVEuU1bUGF6004UsiWeg7pC0HK1uhGkl5EP
daEC6PEsenbBFq/UoshYEMjReaRV8ewJfnl+XAOqyYHmSu4/raYyW2RVFMeUjkRX
JvJI/3S9iLOVUHAqwJJ0I+/Wfgd0wZDqa/dZoLaGnuG6AFrvmlXfvttVh0F8mdgy
I/drErSjUGJPe54tAsD4keL1HDRgOUWPtrXbFjAW7uGHxbMCAwEAAaOBgTB/MB0G
A1UdDgQWBBQ32S+WLqZ9kzLBoZDaGCeUTlSFbTAfBgNVHSMEGDAWgBQTPREWSx37
K1IpHecIquNdDE7ztDAyBgNVHREEKzApgglsb2NhbGhvc3SCHGRldi1lbGFzdGlj
LXN0YWNrLWVsYXN0aWMtMDMwCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEA
TSiqtyNAqoF20QlqZ3BzCHZmve85J69BaZRmNNta9oD1RaE8k5Pkj19XJywNNlus
kb22WNlEd+opEmQDzkAPW2BgGZ9BHv/4UEuDBvukSuhfTRzWPMCRAfdzaTOcPqu6
ujct4ha+HF+GQOpo8eO1iDBCNvLGWezl7R3eUnQFK2bnhHbOjlDBO2H6lor7ps7C
6Sb0ESj2O7cJlrRBAbWfU4Y2oSdtFDvHQDxpwDoCDxzhfB6GUKe6pq8A8Y3UPu9t
zkPwMeAV3WLEUROB/HbgydhCxk9lSnRTW+wBTZJQaFcI8mf5kepefQUXelb4t2S1
F9dAM9H9HtR6Xv1GnYJS0A==
-----END CERTIFICATE-----

@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAgVSj41oS7+kpzmY98lYjx+sxVYg37Fp9h3C72bxtFk5I8ews
jnvr5BbTddl1CVEXEbif1I7SVxWhsF06EJg+nmdksXrgX7PR58AsHkGs1GAcuyMw
R8/Hm0dLlmC1LCjLoMXCRUS5TVtQYXrTThSyJZ6DukLQcrW6EaSXkQ91oQLo8Sx6
dsEWr9SiyFgQyNF5pFXx7Al+eX5cA6rJgeZK7j+tpjJbZFUUx5SORFcm8kj/dL2I
s5VQcCrAknQj79Z+B3TBkOpr91mgtoae4boAWu+aVd++21WHQXyZ2DIj92sStKNQ
Yk97ni0CwPiR4vUcNGA5RY+2tdsWMBbu4YfFswIDAQABAoIBAEJyQQ2C7q3SJoeD
ohoKxbFmFd+y78CAMXRPqEPS+lz2daXNyIqgAm8ahyRKSEY0Il0ZdQyZIFpbo8nf
7AAwqCNsTaCd1/9zfMnLwx78cRZgFwLSrnCGwS/3Lk+hehOpFg2Q7SH3kBi9bIvY
tg2stmZ7jYQ55ay5z1JXNQPzZGUHQOppUhixvvmswMZvSZhUUDYV1L4dD8ytAr7B
a5wak+xJLFROaItlI7cOkOUaSvFZmBtTPs3761TRYDNeapl8EioXSoyXu4mbHQRB
QdPe8KawejXopDMt9GhfsU4IxjZbuxozGER9rxx3sm1/P+ScARlrVLYfkDNmANLi
L2GS1QECgYEA5Dn0GlIQOs73VPekU+lqjvC7e99fu1CsYEMCtCqn++BXszqBINEQ
/94WHo/aLW0L3W/zi68SqDI6+QxmC4vSwp8LmAQ5RXpYr+Udm9N8nsxOsPcwbv3V
L30c1WUe2OLK01YLVz3bPy0dTYf4OSZDHE2Qpn+Tk9w6CSsHuxgLJTMCgYEAkRG9
UUOg6v9csjQeQ0++j1Nu1DSI31xkiQhvYKbl/gurj2uWfYF8JyCZIXsAJ/wpGmii
5JCPNRLvt+qrERHb+JxSC1vovBjh9h9BSxfIhO/HSs6GmtMLytINFG1nJvz7Kwg1
Al4y9b2ImozH880M07mdjWUFoTonrsoNdY3/3YECgYEA1n7JNruN2VePCOI+JUcp
CPKjokZL2OZ3O3l/XwkAHC+6/Q2tMsSK748wxsR4T10/W3zOLqf6Ju4ektbeSVe+
W3/TC6pckTnthFMXQs6/PxfRlWycrpQN+rXhlYWWOkzcR0eFHRdbqcKi2a1C06Ns
S3tyyaj5cGv4d4ljmKl+QBUCgYEAjxn4rpkPu8B7KC7RS4T2bVvYD+xiuDLj2WlA
tQ7uAVRxv+BZayS328EETUqQNOFBipN9XApdufUcE0ihxwze+Lb7F8lqI2JIRAlA
11p2quv8o4ZmsYNONpxN2sCw6HzVJvXJlLRngJGelxYYiB7VcGXBTSFCFHDRhFI8
RKH2rAECgYEAjWom/CTcq6IaapQdNU3tt/DiCwGdXkOqHMrTZ+NZgboQMesOzApJ
L6fMpqbMprqjeKJC3xO16SJrQ8XCmYI857Nb2vS43Etf1MZhpGCWXyLLfrDh//uj
WkuFJh/cOzxMIOyrxFE+Vj+4aNyKj2kaaazMslWcl50l5VxYIUZpsrQ=
-----END RSA PRIVATE KEY-----

@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCBVKPjWhLv6SnO
Zj3yViPH6zFViDfsWn2HcLvZvG0WTkjx7CyOe+vkFtN12XUJURcRuJ/UjtJXFaGw
XToQmD6eZ2SxeuBfs9HnwCweQazUYBy7IzBHz8ebR0uWYLUsKMugxcJFRLlNW1Bh
etNOFLIlnoO6QtBytboRpJeRD3WhAujxLHp2wRav1KLIWBDI0XmkVfHsCX55flwD
qsmB5kruP62mMltkVRTHlI5EVybySP90vYizlVBwKsCSdCPv1n4HdMGQ6mv3WaC2
hp7hugBa75pV377bVYdBfJnYMiP3axK0o1BiT3ueLQLA+JHi9Rw0YDlFj7a12xYw
Fu7hh8WzAgMBAAECggEAQnJBDYLurdImh4OiGgrFsWYV37LvwIAxdE+oQ9L6XPZ1
pc3IiqACbxqHJEpIRjQiXRl1DJkgWlujyd/sADCoI2xNoJ3X/3N8ycvDHvxxFmAX
AtKucIbBL/cuT6F6E6kWDZDtIfeQGL1si9i2Day2ZnuNhDnlrLnPUlc1A/NkZQdA
6mlSGLG++azAxm9JmFRQNhXUvh0PzK0CvsFrnBqT7EksVE5oi2Ujtw6Q5RpK8VmY
G1M+zfvrVNFgM15qmXwSKhdKjJe7iZsdBEFB097wprB6NeikMy30aF+xTgjGNlu7
GjMYRH2vHHeybX8/5JwBGWtUth+QM2YA0uIvYZLVAQKBgQDkOfQaUhA6zvdU96RT
6WqO8Lt731+7UKxgQwK0Kqf74FezOoEg0RD/3hYej9otbQvdb/OLrxKoMjr5DGYL
i9LCnwuYBDlFeliv5R2b03yezE6w9zBu/dUvfRzVZR7Y4srTVgtXPds/LR1Nh/g5
JkMcTZCmf5OT3DoJKwe7GAslMwKBgQCREb1RQ6Dq/1yyNB5DT76PU27UNIjfXGSJ
CG9gpuX+C6uPa5Z9gXwnIJkhewAn/CkaaKLkkI81Eu+36qsREdv4nFILW+i8GOH2
H0FLF8iE78dKzoaa0wvK0g0UbWcm/PsrCDUCXjL1vYiajMfzzQzTuZ2NZQWhOieu
yg11jf/dgQKBgQDWfsk2u43ZV48I4j4lRykI8qOiRkvY5nc7eX9fCQAcL7r9Da0y
xIrvjzDGxHhPXT9bfM4up/om7h6S1t5JV75bf9MLqlyROe2EUxdCzr8/F9GVbJyu
lA36teGVhZY6TNxHR4UdF1upwqLZrULTo2xLe3LJqPlwa/h3iWOYqX5AFQKBgQCP
GfiumQ+7wHsoLtFLhPZtW9gP7GK4MuPZaUC1Du4BVHG/4FlrJLfbwQRNSpA04UGK
k31cCl259RwTSKHHDN74tvsXyWojYkhECUDXWnaq6/yjhmaxg042nE3awLDofNUm
9cmUtGeAkZ6XFhiIHtVwZcFNIUIUcNGEUjxEofasAQKBgQCNaib8JNyrohpqlB01
Te238OILAZ1eQ6ocytNn41mBuhAx6w7MCkkvp8ympsymuqN4okLfE7XpImtDxcKZ
gjzns1va9LjcS1/UxmGkYJZfIst+sOH/+6NaS4UmH9w7PEwg7KvEUT5WP7ho3IqP
aRpprMyyVZyXnSXlXFghRmmytA==
-----END PRIVATE KEY-----

@ -0,0 +1,21 @@
-----BEGIN CERTIFICATE-----
MIIDZzCCAk+gAwIBAgIVAKbp3mlGRUBO1LWPiw4sN4JDbWSYMA0GCSqGSIb3DQEB
CwUAMDQxMjAwBgNVBAMTKUVsYXN0aWMgQ2VydGlmaWNhdGUgVG9vbCBBdXRvZ2Vu
ZXJhdGVkIENBMB4XDTIxMDkwMzEyMTIwNVoXDTIyMDkwMzEyMTIwNVowJTEjMCEG
A1UEAxMaZGV2LWVsYXN0aWMtc3RhY2stZmlsZWJlYXQwggEiMA0GCSqGSIb3DQEB
AQUAA4IBDwAwggEKAoIBAQCbup6feN0+yArmD011sPRFSaY+goTLU112ojwwkkPN
bqZNIhik3+SZT325qCgFZ4mI3A1+h4t0rUl4WO9uJMiUbRGdnwrn5043UoaL5+Vr
UiEkb3nv1LMhLHbMrnfCU8uXEbTFNiXe6VWaDuD/tHx2UCBUmt9d+6HpK/VsID1L
yFVOahoKjtTAXIGBxho/lnfcePu1OIq3PhzBO3iEcgVTl1si0+4ASKrL5ZKXTrRy
ftBCAXg7wpBrpJc7yfH7GgUAqURMwZeg4Uc6chtIDzb87OEAfosjT72rGSaSb87G
u80FyPGle7bP9RWngXbqUyvXyb94iC274ihmbHSAfvFtAgMBAAGjfzB9MB0GA1Ud
DgQWBBSVuXSfZVJtPjcyXama0Pu2mL3VtDAfBgNVHSMEGDAWgBQTPREWSx37K1Ip
HecIquNdDE7ztDAwBgNVHREEKTAngglsb2NhbGhvc3SCGmRldi1lbGFzdGljLXN0
YWNrLWZpbGViZWF0MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAEiG2a66
lHAsNGiNY2jqTXN2MnO6bBzu3wioU4W0pQMjx5YKlBTDMvludnesgHQxwp/z9/d4
4Bs2k3ebOBiGsj9GiEscx7kkBtUJf9MXHPF4xC6uKlI8RaGMxP+ik91FGPSMN3ei
s/AP4n/MWbrWPpFtbyQgWEmw3kHGKrlht47fo8hdNI17w3T56PalWBOzXJJu/uR3
LDabVIeWFr7Mj8y/MyurssyX2srAJyEJRy2u0gBc04vGo6jNrbFjx8AzwbMGw6x0
/DtxzIZ+o77z+bKVno/TcAju2rVAQhoz6PL7QqXkLjOjEJFWlJzryEuMk3ljJ0eT
adcgOervdNNzt8E=
-----END CERTIFICATE-----

@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAm7qen3jdPsgK5g9NdbD0RUmmPoKEy1NddqI8MJJDzW6mTSIY
pN/kmU99uagoBWeJiNwNfoeLdK1JeFjvbiTIlG0RnZ8K5+dON1KGi+fla1IhJG95
79SzISx2zK53wlPLlxG0xTYl3ulVmg7g/7R8dlAgVJrfXfuh6Sv1bCA9S8hVTmoa
Co7UwFyBgcYaP5Z33Hj7tTiKtz4cwTt4hHIFU5dbItPuAEiqy+WSl060cn7QQgF4
O8KQa6SXO8nx+xoFAKlETMGXoOFHOnIbSA82/OzhAH6LI0+9qxkmkm/OxrvNBcjx
pXu2z/UVp4F26lMr18m/eIgtu+IoZmx0gH7xbQIDAQABAoIBAAFGqTATVHTEPNqf
u3nAZm/+537RoPbtivGC6M1ZFXckdfZh1iPbtcrPzO7tgs5wh774Vp/3ylu9Y8G5
sNSNNpuIvUE2YWd/DLQFWBbjYozbkmvzAePGMWWPMLYCo/aSqzNksL+A7xSBgvMN
NijCONbbVzh6QGRLwIrhklQ9e2MYkNrCWChm5cUCi1ja5t5SB4NlAASM4YoXbHwZ
bES5ZK76Xp4iFQrtwvfr+KJuqREVSyb9MdOxEsQ5CG58W6h8F8BLf1ePwhY5ieTQ
u+vQ8O+U+JULcBXnC8yGMXuY3zxwGfJ4c8guRxnzcfbZXONtHhdom69VtctozLn/
/9vNnGECgYEA1cj2csqocpXECBIiUM/FDyek6KWs91POr9n7RnLJd62Y1D162l7n
XvFsqYB5vHz/3mZvAxTqVXHQupGTQy49JHhEdndwZxzRJxRtyoqik38GnEHfGBZA
s0chZmxjlv6M/KfdgstNOlS0Y5nNbT0RoE6bNA3zChex0xGdtj5kCPkCgYEAunre
eo8Cbabe2+1gOVxSNBCXVYocdOQq+refXWFurO9iWsw5h3f/ngApgmbH2/Re5F/v
gZnIR7TMZjC/6QkMb9dpRIJR1XhSz2njjBFkpw5kC4fKStgUbUbkM52JMt3zhEud
IVJJhmIz3UuFcbPtZSWwpS/B47QdMxpNJF72HRUCgYBX7OE/cQ46olIPp7WpWuqH
QxzV+l3bEwLs3FA2NzuZFzLGB8shSOsL52tzgz2OQjLR+3so309JeRgJw5m3harr
9vLhbloybm2vDv3g0Yfv9cx4M7dXpr9RfK3F/Eoxbdv6hefaxVar6O6QEE+m3/kB
35KBpEMTIY+naZVdwOdPsQKBgQCTk9Nn2K+KSapLEHO7UWW40HyDdJaKp1ugKRtU
0lu9PoFu6/qHTB8eUnCHQ4Hdf2ptf8LSpPpMTTgJk4D9Em0mQaqMTjonH18hyGIN
ImKuloP0YBVm39RimtzUQFMoz1/9jb2fdji7whHbiv3jewpfptFCGSZvZsZJAAKW
yxQo9QKBgGpY7QMXbFWrqr/xKsBW9wYIYCboYjoNl15Yetk588u/v7WdTMxtfzCn
S3KZCSYxXJoiHCe9hTfI5Oe2fFM+X9cwjBCdtwDjVYGrDfmgPmj0lve4hkgfEGuk
gMOobA3L+bAT9eEINBUmvZap3kjOngqfVDgpPOWkj4FGlhWARRdX
-----END RSA PRIVATE KEY-----

@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCbup6feN0+yArm
D011sPRFSaY+goTLU112ojwwkkPNbqZNIhik3+SZT325qCgFZ4mI3A1+h4t0rUl4
WO9uJMiUbRGdnwrn5043UoaL5+VrUiEkb3nv1LMhLHbMrnfCU8uXEbTFNiXe6VWa
DuD/tHx2UCBUmt9d+6HpK/VsID1LyFVOahoKjtTAXIGBxho/lnfcePu1OIq3PhzB
O3iEcgVTl1si0+4ASKrL5ZKXTrRyftBCAXg7wpBrpJc7yfH7GgUAqURMwZeg4Uc6
chtIDzb87OEAfosjT72rGSaSb87Gu80FyPGle7bP9RWngXbqUyvXyb94iC274ihm
bHSAfvFtAgMBAAECggEAAUapMBNUdMQ82p+7ecBmb/7nftGg9u2K8YLozVkVdyR1
9mHWI9u1ys/M7u2CznCHvvhWn/fKW71jwbmw1I02m4i9QTZhZ38MtAVYFuNijNuS
a/MB48YxZY8wtgKj9pKrM2Swv4DvFIGC8w02KMI41ttXOHpAZEvAiuGSVD17YxiQ
2sJYKGblxQKLWNrm3lIHg2UABIzhihdsfBlsRLlkrvpeniIVCu3C9+v4om6pERVL
Jv0x07ESxDkIbnxbqHwXwEt/V4/CFjmJ5NC769Dw75T4lQtwFecLzIYxe5jfPHAZ
8nhzyC5HGfNx9tlc420eF2ibr1W1y2jMuf//282cYQKBgQDVyPZyyqhylcQIEiJQ
z8UPJ6Topaz3U86v2ftGcsl3rZjUPXraXude8WypgHm8fP/eZm8DFOpVcdC6kZND
Lj0keER2d3BnHNEnFG3KiqKTfwacQd8YFkCzRyFmbGOW/oz8p92Cy006VLRjmc1t
PRGgTps0DfMKF7HTEZ22PmQI+QKBgQC6et56jwJtpt7b7WA5XFI0EJdVihx05Cr6
t59dYW6s72JazDmHd/+eACmCZsfb9F7kX++BmchHtMxmML/pCQxv12lEglHVeFLP
aeOMEWSnDmQLh8pK2BRtRuQznYky3fOES50hUkmGYjPdS4Vxs+1lJbClL8HjtB0z
Gk0kXvYdFQKBgFfs4T9xDjqiUg+ntala6odDHNX6XdsTAuzcUDY3O5kXMsYHyyFI
6wvna3ODPY5CMtH7eyjfT0l5GAnDmbeFquv28uFuWjJuba8O/eDRh+/1zHgzt1em
v1F8rcX8SjFt2/qF59rFVqvo7pAQT6bf+QHfkoGkQxMhj6dplV3A50+xAoGBAJOT
02fYr4pJqksQc7tRZbjQfIN0loqnW6ApG1TSW70+gW7r+odMHx5ScIdDgd1/am1/
wtKk+kxNOAmTgP0SbSZBqoxOOicfXyHIYg0iYq6Wg/RgFWbf1GKa3NRAUyjPX/2N
vZ92OLvCEduK/eN7Cl+m0UIZJm9mxkkAApbLFCj1AoGAaljtAxdsVauqv/EqwFb3
BghgJuhiOg2XXlh62Tnzy7+/tZ1MzG1/MKdLcpkJJjFcmiIcJ72FN8jk57Z8Uz5f
1zCMEJ23AONVgasN+aA+aPSW97iGSB8Qa6SAw6hsDcv5sBP14Qg0FSa9lqneSM6e
Cp9UOCk85aSPgUaWFYBFF1c=
-----END PRIVATE KEY-----

@ -0,0 +1,21 @@
-----BEGIN CERTIFICATE-----
MIIDbzCCAlegAwIBAgIVALKWHx4LIYoYtnAXJkz6Zia3bkCRMA0GCSqGSIb3DQEB
CwUAMDQxMjAwBgNVBAMTKUVsYXN0aWMgQ2VydGlmaWNhdGUgVG9vbCBBdXRvZ2Vu
ZXJhdGVkIENBMB4XDTIxMDkwMzEyMTIwNVoXDTIyMDkwMzEyMTIwNVowKDEmMCQG
A1UEAxMdZGV2LWVsYXN0aWMtc3RhY2stbG9nc3Rhc2gtMDEwggEiMA0GCSqGSIb3
DQEBAQUAA4IBDwAwggEKAoIBAQC4ysc6ejfUMPhfeQkw48ivpKxQt6NJggxPENS5
hDodpSnNYQkNm0v1e7TYveAMfesPxaWltkZa6aN3KCtux2hVUy0plqb2cgAbEH07
ZNDS4vu5SQ5icUN1vOwNGuTLtDlu92ihUKU0m8Xj28V9miziDLumFJmYaX+kFC8F
3oNTRCn8zLxwvgwXQrp5ibeKDC2EUpGdtgQRdVGyC55KvbKgzr4GO8429fHfCEtO
3RcehjN/POmRfJyCQDF6lURxvSmaHrE/JnAyJZ5Qswgs65+tylPm3NdDObcXubCA
zxdi6g7Ay74gl1mf5DpWjIZOzxp7G01uApCXR6i4vANgbh2pAgMBAAGjgYMwgYAw
HQYDVR0OBBYEFBMXDpx38JEPLn56Rf4OEdaj9pkOMB8GA1UdIwQYMBaAFBM9ERZL
HfsrUikd5wiq410MTvO0MDMGA1UdEQQsMCqCCWxvY2FsaG9zdIIdZGV2LWVsYXN0
aWMtc3RhY2stbG9nc3Rhc2gtMDEwCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOC
AQEATNIuO4fEfbGATWpb5zA3/RAPsRfa5P32MUKoZAAthkUaxUMIJarxRM5mZc9z
BpvudXkQNhVhpdLcZOQfzYEeQ4blkM3ST6VOCqAz4kReYSJN8FYdrCi0ZCxK9zRd
TSOnpYtsj7mIwzE+AdqJ7OHwy/Wzyx163AfquPmZ81yzieAchRVBxkdTdor5USc7
TlfmwiGoLSG6F8pp+iusEqT1BNHhF+LaACj9apJlIZr/sn2VWMLp6tafZvfQD5jg
pbWZjaIUi4pbc1po1uIaN3QrKAArXDiGR6t5EueuKerwBkl2A/RLoh0nW7WqeNJr
/rOTI4EOjQ1B5NV5Xsxu6+7ggw==
-----END CERTIFICATE-----

@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAuMrHOno31DD4X3kJMOPIr6SsULejSYIMTxDUuYQ6HaUpzWEJ
DZtL9Xu02L3gDH3rD8WlpbZGWumjdygrbsdoVVMtKZam9nIAGxB9O2TQ0uL7uUkO
YnFDdbzsDRrky7Q5bvdooVClNJvF49vFfZos4gy7phSZmGl/pBQvBd6DU0Qp/My8
cL4MF0K6eYm3igwthFKRnbYEEXVRsgueSr2yoM6+BjvONvXx3whLTt0XHoYzfzzp
kXycgkAxepVEcb0pmh6xPyZwMiWeULMILOufrcpT5tzXQzm3F7mwgM8XYuoOwMu+
IJdZn+Q6VoyGTs8aextNbgKQl0eouLwDYG4dqQIDAQABAoIBAQCpOBgE9tKVH1ry
orXF7XFjVprtN5zxvYNkC/ehAvLtHsgO6OMPcLy4SdYr/IRlLBHLWaT9ANOggP9O
KJzNTxG9wPNEeE7gszhhkFH9x65qz6zP2ZSwlSO/d4d54LzPxXQqp6lKv7zpVhR7
Ok+5WyvqvNpBle+pYEKgkFMXPtJnth1kCjYUJPpYjwlxCxDes00zSikwbt6b/qMk
ov1PkoB6oCR9L+Gr4K+hE9Yvvwzxb1VUM/pKy/3cQj1filaied7H5S9ZJ+a/+e7b
10zVlEpbjBM2t76hDLQrkEecLu4+gEwnL6XQy4t8aCP85XHcIWBlWlu54fjFHbHl
iLibO4YZAoGBAPGwZKDE+T0p/LxX4m4PTdVJW9jnwHBlUXM8oBEpH4FywrI8C4hV
SW8gVHz5J2c5RnfJVOPOaA8fDUdmz5lyUuoVI4cbeGAe8vCA5CqbA8uPtyRcNwwh
El1QwzU/Qib79JuO1bEe94j9VCSbiod/zNGcoQ3FE0RaL0h4BY5IIVZXAoGBAMO7
6+q1RKgrwnTacK/SjCEs0B+qG+daSPvnR2McsAfq4IxrckjrcwL2pzeE/mE1d852
5ZSXKONh4nciqRqx8sLlBMHO4a+0mXpiwoAunx3Aj6EQletg5WPB+oUzndZ8g+Lw
3irUfNgDy8+mTf1EKiHegilBbN4r0ThjnJ+3u6v/AoGBAMcnVdQQW1xmI8dDF+cf
H0C4YUG7vhwfsN0nQLLDUx3E5eAekFY4CPnUByqv2CM70/BS62uIIsELElMaycgk
p2QSJSNopGl4NzGs09azw43Sj9QbVJTfD5XrPd+7j5Q2G5qvOTDpVooATXyY2q7K
xYiX6zJAiZ7SPZIWrGVQ1H+jAoGACs7+yRg3cV3xQAir/lmPGWnjGEyJe+4VZ6uu
2n9EDTvgKIDqb7JoyHocY8l5Tp7oPcN9DAaI4H2QRunoEqxO7oo9CALHna9IZmS7
vt5UNQ1kIQ3MaZIROMAGeIKQLb70fXy1mAHh3v/eqlnRprGz7ejeoS6Wt3IN/KIr
jPpVZ7sCgYA6I/OMBfNBieJZ6NOhxeFjA/FxUr3MvGFYWryuSnhgQ5lc5PJhra0g
1XjzMftyTGGK/3LbhNYiUnz1IkEMTTQPexke522GsTQYXtYrOTMsBMOF1OOJyLOI
8hYltHcpCvaCU8ePRRFcjxrNWA2gmgxGRxNX6cpsvOIPddNB8MNR7Q==
-----END RSA PRIVATE KEY-----

@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC4ysc6ejfUMPhf
eQkw48ivpKxQt6NJggxPENS5hDodpSnNYQkNm0v1e7TYveAMfesPxaWltkZa6aN3
KCtux2hVUy0plqb2cgAbEH07ZNDS4vu5SQ5icUN1vOwNGuTLtDlu92ihUKU0m8Xj
28V9miziDLumFJmYaX+kFC8F3oNTRCn8zLxwvgwXQrp5ibeKDC2EUpGdtgQRdVGy
C55KvbKgzr4GO8429fHfCEtO3RcehjN/POmRfJyCQDF6lURxvSmaHrE/JnAyJZ5Q
swgs65+tylPm3NdDObcXubCAzxdi6g7Ay74gl1mf5DpWjIZOzxp7G01uApCXR6i4
vANgbh2pAgMBAAECggEBAKk4GAT20pUfWvKitcXtcWNWmu03nPG9g2QL96EC8u0e
yA7o4w9wvLhJ1iv8hGUsEctZpP0A06CA/04onM1PEb3A80R4TuCzOGGQUf3HrmrP
rM/ZlLCVI793h3ngvM/FdCqnqUq/vOlWFHs6T7lbK+q82kGV76lgQqCQUxc+0me2
HWQKNhQk+liPCXELEN6zTTNKKTBu3pv+oySi/U+SgHqgJH0v4avgr6ET1i+/DPFv
VVQz+krL/dxCPV+KVqJ53sflL1kn5r/57tvXTNWUSluMEza3vqEMtCuQR5wu7j6A
TCcvpdDLi3xoI/zlcdwhYGVaW7nh+MUdseWIuJs7hhkCgYEA8bBkoMT5PSn8vFfi
bg9N1Ulb2OfAcGVRczygESkfgXLCsjwLiFVJbyBUfPknZzlGd8lU485oDx8NR2bP
mXJS6hUjhxt4YB7y8IDkKpsDy4+3JFw3DCESXVDDNT9CJvv0m47VsR73iP1UJJuK
h3/M0ZyhDcUTRFovSHgFjkghVlcCgYEAw7vr6rVEqCvCdNpwr9KMISzQH6ob51pI
++dHYxywB+rgjGtySOtzAvanN4T+YTV3znbllJco42HidyKpGrHywuUEwc7hr7SZ
emLCgC6fHcCPoRCV62DlY8H6hTOd1nyD4vDeKtR82APLz6ZN/UQqId6CKUFs3ivR
OGOcn7e7q/8CgYEAxydV1BBbXGYjx0MX5x8fQLhhQbu+HB+w3SdAssNTHcTl4B6Q
VjgI+dQHKq/YIzvT8FLra4giwQsSUxrJyCSnZBIlI2ikaXg3MazT1rPDjdKP1BtU
lN8Ples937uPlDYbmq85MOlWigBNfJjarsrFiJfrMkCJntI9khasZVDUf6MCgYAK
zv7JGDdxXfFACKv+WY8ZaeMYTIl77hVnq67af0QNO+AogOpvsmjIehxjyXlOnug9
w30MBojgfZBG6egSrE7uij0IAsedr0hmZLu+3lQ1DWQhDcxpkhE4wAZ4gpAtvvR9
fLWYAeHe/96qWdGmsbPt6N6hLpa3cg38oiuM+lVnuwKBgDoj84wF80GJ4lno06HF
4WMD8XFSvcy8YVhavK5KeGBDmVzk8mGtrSDVePMx+3JMYYr/ctuE1iJSfPUiQQxN
NA97GR7nbYaxNBhe1is5MywEw4XU44nIs4jyFiW0dykK9oJTx49FEVyPGs1YDaCa
DEZHE1fpymy84g9100Hww1Ht
-----END PRIVATE KEY-----

@ -0,0 +1,25 @@
---
instances:
- name: dev-elastic-stack-elastic-01
dns:
- localhost
- dev-elastic-stack-elastic-01
- name: dev-elastic-stack-elastic-02
dns:
- localhost
- dev-elastic-stack-elastic-02
- name: dev-elastic-stack-elastic-03
dns:
- localhost
- dev-elastic-stack-elastic-03
- name: dev-elastic-stack-logstash-01
dns:
- localhost
- dev-elastic-stack-logstash-01
- name: dev-elastic-stack-filebeat
dns:
- localhost
- dev-elastic-stack-filebeat

@ -1,51 +0,0 @@
---
instances:
- name: dev-elastic-stack-01-elastic
dns:
- localhost
- dev-elastic-stack-01-elastic
ip:
- 10.0.0.2
- name: dev-elastic-stack-02-elastic
dns:
- localhost
- dev-elastic-stack-02-elastic
ip:
- 10.0.0.3
- name: dev-elastic-stack-03-elastic
dns:
- localhost
- dev-elastic-stack-03-elastic
ip:
- 10.0.0.4
- name: 'dev-elastic-stack-01-logstash'
dns:
- localhost
- dev-elastic-stack-01-logstash
- name: 'dev-elastic-stack-02-logstash'
dns:
- localhost
- dev-elastic-stack-02-logstash
- name: 'dev-elastic-stack-03-logstash'
dns:
- localhost
- dev-elastic-stack-03-logstash
- name: 'dev-elastic-stack-01-kibana'
dns:
- localhost
- dev-elastic-stack-01-kibana
- name: 'dev-elastic-stack-02-kibana'
dns:
- localhost
- dev-elastic-stack-02-kibana
- name: 'dev-elastic-stack-03-kibana'
dns:
- localhost
- dev-elastic-stack-03-kibana
- name: 'dev-elastic-stack-filebeat'
dns:
- localhost
- dev-elastic-stack-filebeat

@ -0,0 +1,20 @@
-----BEGIN CERTIFICATE-----
MIIDSjCCAjKgAwIBAgIVAK/gaXE2s5mizj4wE7jYSkq4vNAXMA0GCSqGSIb3DQEB
CwUAMDQxMjAwBgNVBAMTKUVsYXN0aWMgQ2VydGlmaWNhdGUgVG9vbCBBdXRvZ2Vu
ZXJhdGVkIENBMB4XDTIxMDkwMzA5MTQ1M1oXDTIyMDkwMzA5MTQ1M1owNDEyMDAG
A1UEAxMpRWxhc3RpYyBDZXJ0aWZpY2F0ZSBUb29sIEF1dG9nZW5lcmF0ZWQgQ0Ew
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDD3AaeHu6vBVuXQAsszEHP
B7x5fjX/ZmR79+4cKvOEv/Qbl/YSuWsq9ogmsL046Vnk94QXZ7Y0zhaZDZ/Ude4C
YxAmc7oFq7XAkZX2LJxbp2f2tXMayCdEgPStfLDE1Ej1TBNDKZXD5oivVenNKjAv
SwCXOPKMmLACgLzG+H/Jea/GmNOT3IW0u8/n1gtedlsrRCpLvbf8hs49cCM5Rp43
BIQZEbmo9sRZEBZ75v4tFI5O0HBMBxkhRn15f7A/fBvXQYNUZ0l1vETH5+M8alU3
ZxYy3V4MNeWdoCeUtqRyiIhjfdLQLrt2lISNLUBuBuSDv5QZGPD7k4gU1oT7q72j
AgMBAAGjUzBRMB0GA1UdDgQWBBRq3NHq/0ICP9pOHDN9fhYhV26eCjAfBgNVHSME
GDAWgBRq3NHq/0ICP9pOHDN9fhYhV26eCjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
SIb3DQEBCwUAA4IBAQAIu6kkIu+V2WqyZqbSw0eUYtdNXxlfDMwxHWsdWgslT+Ri
nEfp3YqmD9nqZ0Wxu/aieWjnVm3hW7HlphAC+60+WXU95rR+I5SOP/Z0h4UPnJx+
6ZBQpKOUw0cZQYsdMlXSkuGcO7dPA89a+oVXDtfhK05G62tBKZ0ru7mRfKPQ1Oa3
wQyHJRMyFO3y8PvKHd4lFL38P1ZCPm30XqXeHmNDdVBMOEL1AcknFDbs3gg18Myt
fnE/knah8oRfyzfPOd9XUJgVzzwBnJt19JUkWNHrc2hXRj9DQyluPt22HFRmGy0t
cFRFLbpKoGhWs1Y51E92YnXcsH7mahJtbajpSXXs
-----END CERTIFICATE-----

@ -0,0 +1,21 @@
-----BEGIN CERTIFICATE-----
MIIDcDCCAligAwIBAgIUCPl6fcDMyc3NIJOTFlnzsGh9X+IwDQYJKoZIhvcNAQEL
BQAwNDEyMDAGA1UEAxMpRWxhc3RpYyBDZXJ0aWZpY2F0ZSBUb29sIEF1dG9nZW5l
cmF0ZWQgQ0EwHhcNMjEwOTAzMDkxNDU0WhcNMjIwOTAzMDkxNDU0WjAmMSQwIgYD
VQQDExtxYS1lbGFzdGljLXN0YWNrLWVsYXN0aWMtMDEwggEiMA0GCSqGSIb3DQEB
AQUAA4IBDwAwggEKAoIBAQC5duaLI28vlxP2zGeoerEVJnNl/dR+9Uu5Gx5XL+BL
4xiu1RvGtnw08WStdaQZee8yewwfjZgMAyPss89vupl+FdgQRBgoaZ2DrBJ2ak2i
tWuQcz16KLlwbWBcG3tvGfm7aMvmiOcffB9vC7wHaExUvVbiywUCR9+xtWxyB3x3
sVT1AyYJdYbAIyL6uPrZaaKPbrwHZs9aroeTse6Z5QHI+i7/f6COp/d6JCYhbpW0
Psnub0KjoETbHgpw+Z8nos0G78QVMjwe54PgTfDOc93egtcKmqtF1wlLUWhpz/e9
Pki1i1COCyTc8tuxsT2M5R9ILJWgNEGUISM4eY1SIT0fAgMBAAGjgYcwgYQwHQYD
VR0OBBYEFBH76OaU8eolslRCUgFq4n+pvxsjMB8GA1UdIwQYMBaAFGrc0er/QgI/
2k4cM31+FiFXbp4KMDcGA1UdEQQwMC6CCWxvY2FsaG9zdIIbcWEtZWxhc3RpYy1z
dGFjay1lbGFzdGljLTAxhwQKAQACMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQAD
ggEBAJFROYoAEjxreTuTMmiKOc/b0XjeJiuTuYCCcYu58gykU062WHRs7cicqYNd
TuM+bA6PnTTl8NSQ0udQmY/s3Rl83FqnaKkhNi5JMe7lzez++fhSnGSk32r6jKBW
OmOnxVZrAFQrdqtHxWUsOSBpfLT1axcvRThJyr4N2uNBZPrRYR9LuRXfDeBYtMWk
wWgTYP2TzY7VHZutNPu/VqYsnOBxurb8qPuUBsYScI+HN0AAyoUE3LUAvxOFE1w0
EJIGGy0bN6ZnxH1z5b7kH80r/0MbIVPbL6vt2Usxw5CE2gggYIe6sNMUdgeHzzrD
9FFQy1fdSbnguUQ6ennWneY5KqY=
-----END CERTIFICATE-----

@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAuXbmiyNvL5cT9sxnqHqxFSZzZf3UfvVLuRseVy/gS+MYrtUb
xrZ8NPFkrXWkGXnvMnsMH42YDAMj7LPPb7qZfhXYEEQYKGmdg6wSdmpNorVrkHM9
eii5cG1gXBt7bxn5u2jL5ojnH3wfbwu8B2hMVL1W4ssFAkffsbVscgd8d7FU9QMm
CXWGwCMi+rj62Wmij268B2bPWq6Hk7HumeUByPou/3+gjqf3eiQmIW6VtD7J7m9C
o6BE2x4KcPmfJ6LNBu/EFTI8HueD4E3wznPd3oLXCpqrRdcJS1Foac/3vT5ItYtQ
jgsk3PLbsbE9jOUfSCyVoDRBlCEjOHmNUiE9HwIDAQABAoIBAQCTgQBM6wq0A+lJ
4ToUIjiSxLkFBgMqUjc+alYQK7CtSlnIOw/TVDGm/dH/r0+rP3JBaOG0eq3R5/F7
gWraxsLrJ75m+XFpOs6e+YzZhyRl4vpAsZbUgG00AJmhx+286CDZr7hzirCfNt3d
OKz8CzSiNNBUoflC3h0IPm2Yp2GT4yW9FBPWzcc5wnl+3hY3itowdNEyY+dMFIuA
EjJNx06Yu6CxA4F6z5r7rkoyDwrdNGf70FG7ZFBP9FmPXLVCRWuU02bURTR0qnj1
HQd9ktJGEZxaUlYz45yYrmo0NjdYrUN3rFKa3HxhfDi66TpfAgMwBUiuv6qvEmCs
JQu0DZUJAoGBAPW/Sg/j956DMP7TXA+xM4dWNrtfi9JS+J1QRarRKdGb6DKtw8wK
SUuX7ICfijGUD+NNBDpmLZvcBHBagOj0E5Skb/+PLHZfrbdL7O+O8ohvf20PiACX
+HjNKanIKBtqsMT/IXneQpExthxBXKAKttia+vc9Ui/Aqt6ssVG/C2IdAoGBAMEz
wmJh+THKGQdmgHehrSMKgX6THSRzFzLMNWMfzvH1Hii3OR+8CS7+YNqxHpynyEjs
KMEYE40aXXxOXNTLhES3Wr3rUjxC2SxFh8mm/PX4W6LvMtMKWmPHBYgwlP91puk0
COyhUZ18rvt9lPQ5XdKtcmg/QO6uT7gOWs0dhzdrAoGBAOf0pZB4Kcq5o+5zS8sY
BD4zFzgnCE/+tuGt2gRQpztNAI+NSml2MBalELubWxJO4ew3Ts1ckqIxuxLdqh23
/B9qUriSyHH2/34qsTqw36X+L/WeGk4NI5/Kbw/teEXgn3diJZPlQUnQ9UaYPzhk
xI+RQV9Kxx+BqQbDVB+HxtPVAoGAFYa0081ivH9uBnsPOUUUS2EySG4Pwy3nmctS
73Zt0lujPpobjUOgKlJBbFxrsrym/ikB6XHLS99yJxV8FmGOnTFotNxxTzGLjPk6
ReeLK8S+QQsxuH3g0FkubpwrHcN4E2euzt6yfz+TJ4Y4gHWb1Itqwd66V12omDNR
PqVZmX0CgYEAruOtn+ejOX38/mRlZ4h8PjpkPhVWtQAiZSerbTABvNO+paoBnMAU
vgmpE6a2Lgl8wg64ni5pcLRE8P5hWgBDGzm0DxjpfXigNl/32h6nIrgB02nmqiNg
lPmYo8HvzEU8bUuMmyWQTMZdFTEaHWp1RL1VS2bVF2rRDCawrngWJBQ=
-----END RSA PRIVATE KEY-----

@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC5duaLI28vlxP2
zGeoerEVJnNl/dR+9Uu5Gx5XL+BL4xiu1RvGtnw08WStdaQZee8yewwfjZgMAyPs
s89vupl+FdgQRBgoaZ2DrBJ2ak2itWuQcz16KLlwbWBcG3tvGfm7aMvmiOcffB9v
C7wHaExUvVbiywUCR9+xtWxyB3x3sVT1AyYJdYbAIyL6uPrZaaKPbrwHZs9aroeT
se6Z5QHI+i7/f6COp/d6JCYhbpW0Psnub0KjoETbHgpw+Z8nos0G78QVMjwe54Pg
TfDOc93egtcKmqtF1wlLUWhpz/e9Pki1i1COCyTc8tuxsT2M5R9ILJWgNEGUISM4
eY1SIT0fAgMBAAECggEBAJOBAEzrCrQD6UnhOhQiOJLEuQUGAypSNz5qVhArsK1K
Wcg7D9NUMab90f+vT6s/ckFo4bR6rdHn8XuBatrGwusnvmb5cWk6zp75jNmHJGXi
+kCxltSAbTQAmaHH7bzoINmvuHOKsJ823d04rPwLNKI00FSh+ULeHQg+bZinYZPj
Jb0UE9bNxznCeX7eFjeK2jB00TJj50wUi4ASMk3HTpi7oLEDgXrPmvuuSjIPCt00
Z/vQUbtkUE/0WY9ctUJFa5TTZtRFNHSqePUdB32S0kYRnFpSVjPjnJiuajQ2N1it
Q3esUprcfGF8OLrpOl8CAzAFSK6/qq8SYKwlC7QNlQkCgYEA9b9KD+P3noMw/tNc
D7Ezh1Y2u1+L0lL4nVBFqtEp0ZvoMq3DzApJS5fsgJ+KMZQP400EOmYtm9wEcFqA
6PQTlKRv/48sdl+tt0vs747yiG9/bQ+IAJf4eM0pqcgoG2qwxP8hed5CkTG2HEFc
oAq22Jr69z1SL8Cq3qyxUb8LYh0CgYEAwTPCYmH5McoZB2aAd6GtIwqBfpMdJHMX
Msw1Yx/O8fUeKLc5H7wJLv5g2rEenKfISOwowRgTjRpdfE5c1MuERLdavetSPELZ
LEWHyab89fhbou8y0wpaY8cFiDCU/3Wm6TQI7KFRnXyu+32U9Dld0q1yaD9A7q5P
uA5azR2HN2sCgYEA5/SlkHgpyrmj7nNLyxgEPjMXOCcIT/624a3aBFCnO00Aj41K
aXYwFqUQu5tbEk7h7DdOzVySojG7Et2qHbf8H2pSuJLIcfb/fiqxOrDfpf4v9Z4a
Tg0jn8pvD+14ReCfd2Ilk+VBSdD1Rpg/OGTEj5FBX0rHH4GpBsNUH4fG09UCgYAV
hrTTzWK8f24Gew85RRRLYTJIbg/DLeeZy1Lvdm3SW6M+mhuNQ6AqUkFsXGuyvKb+
KQHpcctL33InFXwWYY6dMWi03HFPMYuM+TpF54srxL5BCzG4feDQWS5unCsdw3gT
Z67O3rJ/P5MnhjiAdZvUi2rB3rpXXaiYM1E+pVmZfQKBgQCu462f56M5ffz+ZGVn
iHw+OmQ+FVa1ACJlJ6ttMAG8076lqgGcwBS+CakTprYuCXzCDrieLmlwtETw/mFa
AEMbObQPGOl9eKA2X/faHqciuAHTaeaqI2CU+Zijwe/MRTxtS4ybJZBMxl0VMRod
anVEvVVLZtUXatEMJrCueBYkFA==
-----END PRIVATE KEY-----

@ -0,0 +1,21 @@
-----BEGIN CERTIFICATE-----
MIIDcDCCAligAwIBAgIUZdhIUs9nU/AbFG1MZN8L9vB0Y24wDQYJKoZIhvcNAQEL
BQAwNDEyMDAGA1UEAxMpRWxhc3RpYyBDZXJ0aWZpY2F0ZSBUb29sIEF1dG9nZW5l
cmF0ZWQgQ0EwHhcNMjEwOTAzMDkxNDU0WhcNMjIwOTAzMDkxNDU0WjAmMSQwIgYD
VQQDExtxYS1lbGFzdGljLXN0YWNrLWVsYXN0aWMtMDIwggEiMA0GCSqGSIb3DQEB
AQUAA4IBDwAwggEKAoIBAQCXPCLBDe1hXMuWpkVCDM1f7DaSXiPPfbWe+46PC+V4
d9qy5LEgT76jt/++YpcMDZPtbtPFZc40vqqLomgF4GZnbDhraAziz4VSHDiENpPQ
4utn+pG0AjGXZTO5kx8AR0mYU8LcV8iyKT7OheS63yz3idqkA4a93cfPuktIomDb
9+2rbklvlVvUHnqP1DBDdCW3G/o8JEa7K5rbhFurRlkMJjPv4xOHpalrGtXWunvX
TbvmUVq9Y6k+SHlDb0vbATf460E+96Cfn07zJTlj7unbUxQR2j9ULobqLMryxxYX
HzjfWqskJEl4sBsSyr59yNMbm+Fr/pMVv+WAngNm6KeJAgMBAAGjgYcwgYQwHQYD
VR0OBBYEFB/noWJSEFEccTCtKFfrMBk2mBklMB8GA1UdIwQYMBaAFGrc0er/QgI/
2k4cM31+FiFXbp4KMDcGA1UdEQQwMC6CG3FhLWVsYXN0aWMtc3RhY2stZWxhc3Rp
Yy0wMoIJbG9jYWxob3N0hwQKAQADMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQAD
ggEBAFUoxnZuJkgCWLTDd5SrbAuzF7MUKstO9eSt7bqCPYG3HeJWAH0PF/6vFdGJ
B0L0vRyps2mZ7Y4UwFKCDWka2PXiVuZAhszPPU4icdJKthkDrdGwMKUi49N52BoG
OCWTzHpL5nuz1rjQZBWU1EaTaV3xWXsBSdmY22mvby4lzsoDQhLVDA227WftWnpP
wcj0YQjjnNGtWK0SeV2/XkEyZmEctsoMq0b2sbjXJabUdyMFocx2xQ2CaIJfr+Zq
vwmZeNpZNJoir4qBng5ueNdZI4wtaWZ5DdhWMoQzZQJDtlW8PtL4SBxVkoh2JA7F
tbh/6jpRWhZQ1Dmc62zgxwwhY60=
-----END CERTIFICATE-----

@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAlzwiwQ3tYVzLlqZFQgzNX+w2kl4jz321nvuOjwvleHfasuSx
IE++o7f/vmKXDA2T7W7TxWXONL6qi6JoBeBmZ2w4a2gM4s+FUhw4hDaT0OLrZ/qR
tAIxl2UzuZMfAEdJmFPC3FfIsik+zoXkut8s94napAOGvd3Hz7pLSKJg2/ftq25J
b5Vb1B56j9QwQ3Qltxv6PCRGuyua24Rbq0ZZDCYz7+MTh6WpaxrV1rp710275lFa
vWOpPkh5Q29L2wE3+OtBPvegn59O8yU5Y+7p21MUEdo/VC6G6izK8scWFx8431qr
JCRJeLAbEsq+fcjTG5vha/6TFb/lgJ4DZuiniQIDAQABAoIBAEQbduNOLFsueRkN
JB+MuGi8bg8YijQFPuesDhVpnBvWjg0GZKZSg14jnO7WY4OwEbBZutEo+eZS/2cG
6qXK2xM0b2wfXb4/CqFhyCnykjr+FlmrRDa2zjKKBvNJyCpN8FzDS/wDJITngjtr
nQhzPUL1OBuo4uNan4NzODgruEcW+oVUoBbs5awkUaOIlWj+/LQEbEmo28ix7GD8
a8brpaCjAvbN6V0xMPxm+qU/QpSySbgK8qstgWb71NnRcmXK7V5A2D6DE1Pqsj3A
hxNBGbC4i/U5O7RK4Q7ibHW1xePamVZnUK+GQkYFVjeRm1XNr0r67WlF3DnCnGcK
SItySCECgYEA6XUQ1sZYJQphTNmrYvc1u0hZHMqkVwdm/7uqirjubGgyp71Q8X1F
YdkmvH/sU0Ocl33lcDoCYh2nZ8hb8GO4WCDHoJndTZb6kMC6EYMYnFvQw06TH1ak
bqve6CK9SnPdNOV02V2/WqxO6YwDwSZ1/VtngYU8UzMnq/ed72xzGMUCgYEApdaU
FLFHpvMCXPNcMesKjHo8UEjPOFu2rwyNosXVkaqozMRsNZ3To+Xqq4sk5gOhDqsZ
roqGlnRJUzbYMyOfYJazqUFF0QEP97xBuOgsdecFTVR3vhWGt7ApZGGnIA4LyyvN
KK3+xiIHVI+b2vr9gmyNVIlzqzf5BgP44eFrV/UCgYAaZzcEU2JcrhPbETMk+jiF
eeU6MGDtxtSLT7o1/jxY3l/8QJkK9tQGAP00jHM554eqSn7MdoMWfawVPL/JLD4J
GYv6SeyRfeXQwTtKB72c0XWG4Tgabz4hliabsnIeHYSDGwBgJQ4jPyGdoEw8aBEo
GlJWf68W6c4u0M536ZgK0QKBgBEg7aCJgv4SYW8aT650OV2zDmG4c3a9ukuwPzzN
tDZcaxzjOM385CwshiV7tK7xNwRd1cQ6WJZXom8u3fvCNSbzydC0hjKFKpIK5rrj
eBwhZWHMVKXUcVqtnkjY8TsVWFB+0Kzf882hHCK2xoFCpUaAUcSmgcTwfg8J//3M
m5q1AoGAY2VFk6dQZc4OHbdl2YpfH/3/RbQ6bLtx3lDHXCFMT3XEyurz0NQA7wTR
v5rM4DQSfDNjgjSsveLXyS4CVowJat4Ogkaxox6bRZ3IySDaiPCbYj6pX9lq3LIp
PiaOnmyqh/j/fQopimZx3eUnhgeJJ201bPmoerdSBptwM0kpVLY=
-----END RSA PRIVATE KEY-----

@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCXPCLBDe1hXMuW
pkVCDM1f7DaSXiPPfbWe+46PC+V4d9qy5LEgT76jt/++YpcMDZPtbtPFZc40vqqL
omgF4GZnbDhraAziz4VSHDiENpPQ4utn+pG0AjGXZTO5kx8AR0mYU8LcV8iyKT7O
heS63yz3idqkA4a93cfPuktIomDb9+2rbklvlVvUHnqP1DBDdCW3G/o8JEa7K5rb
hFurRlkMJjPv4xOHpalrGtXWunvXTbvmUVq9Y6k+SHlDb0vbATf460E+96Cfn07z
JTlj7unbUxQR2j9ULobqLMryxxYXHzjfWqskJEl4sBsSyr59yNMbm+Fr/pMVv+WA
ngNm6KeJAgMBAAECggEARBt2404sWy55GQ0kH4y4aLxuDxiKNAU+56wOFWmcG9aO
DQZkplKDXiOc7tZjg7ARsFm60Sj55lL/ZwbqpcrbEzRvbB9dvj8KoWHIKfKSOv4W
WatENrbOMooG80nIKk3wXMNL/AMkhOeCO2udCHM9QvU4G6ji41qfg3M4OCu4Rxb6
hVSgFuzlrCRRo4iVaP78tARsSajbyLHsYPxrxuuloKMC9s3pXTEw/Gb6pT9ClLJJ
uAryqy2BZvvU2dFyZcrtXkDYPoMTU+qyPcCHE0EZsLiL9Tk7tErhDuJsdbXF49qZ
VmdQr4ZCRgVWN5GbVc2vSvrtaUXcOcKcZwpIi3JIIQKBgQDpdRDWxlglCmFM2ati
9zW7SFkcyqRXB2b/u6qKuO5saDKnvVDxfUVh2Sa8f+xTQ5yXfeVwOgJiHadnyFvw
Y7hYIMegmd1NlvqQwLoRgxicW9DDTpMfVqRuq97oIr1Kc9005XTZXb9arE7pjAPB
JnX9W2eBhTxTMyer953vbHMYxQKBgQCl1pQUsUem8wJc81wx6wqMejxQSM84W7av
DI2ixdWRqqjMxGw1ndOj5eqriyTmA6EOqxmuioaWdElTNtgzI59glrOpQUXRAQ/3
vEG46Cx15wVNVHe+FYa3sClkYacgDgvLK80orf7GIgdUj5va+v2CbI1UiXOrN/kG
A/jh4WtX9QKBgBpnNwRTYlyuE9sRMyT6OIV55TowYO3G1ItPujX+PFjeX/xAmQr2
1AYA/TSMcznnh6pKfsx2gxZ9rBU8v8ksPgkZi/pJ7JF95dDBO0oHvZzRdYbhOBpv
PiGWJpuych4dhIMbAGAlDiM/IZ2gTDxoESgaUlZ/rxbpzi7QznfpmArRAoGAESDt
oImC/hJhbxpPrnQ5XbMOYbhzdr26S7A/PM20NlxrHOM4zfzkLCyGJXu0rvE3BF3V
xDpYlleiby7d+8I1JvPJ0LSGMoUqkgrmuuN4HCFlYcxUpdRxWq2eSNjxOxVYUH7Q
rN/zzaEcIrbGgUKlRoBRxKaBxPB+Dwn//cybmrUCgYBjZUWTp1Blzg4dt2XZil8f
/f9FtDpsu3HeUMdcIUxPdcTK6vPQ1ADvBNG/mszgNBJ8M2OCNKy94tfJLgJWjAlq
3g6CRrGjHptFncjJINqI8JtiPqlf2Wrcsik+Jo6ebKqH+P99CimKZnHd5SeGB4kn
bTVs+ah6t1IGm3AzSSlUtg==
-----END PRIVATE KEY-----

@ -0,0 +1,21 @@
-----BEGIN CERTIFICATE-----
MIIDcTCCAlmgAwIBAgIVAO3ZfUCdu3qBME0oY7kFXNf+dwXjMA0GCSqGSIb3DQEB
CwUAMDQxMjAwBgNVBAMTKUVsYXN0aWMgQ2VydGlmaWNhdGUgVG9vbCBBdXRvZ2Vu
ZXJhdGVkIENBMB4XDTIxMDkwMzA5MTQ1NFoXDTIyMDkwMzA5MTQ1NFowJjEkMCIG
A1UEAxMbcWEtZWxhc3RpYy1zdGFjay1lbGFzdGljLTAzMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAiCvZ7vXhnYpUEHSnLxeIMIAws1lc2C8tVUueDwFX
saGyUj6ENBXiK6n6G0kJV+6eGLmR4IUwSFJ/310gzM7wtAETuTvUvbmLY4UgTYdm
a+S+9a918RhrD4AFkeAxFeNgDCETEIGkV1n8nHjXy1FcsJWSasl+jXRU+VsUWV41
pDrnCvDKLxXNKS33utdoc4D1ntUn4OYt6otV/8/tbuFL+sDE0PZSYCYf8Y2apOZU
h/sdCRtWdm/vXP/OnqgkSzpv7TzR8ySlQFCL4iBgpxvdHsFaGdvKZcwFEwujirRV
D9jX6EsZ+C0/8SIObkqaFFipfdmC8yiamw31a0myzozU4QIDAQABo4GHMIGEMB0G
A1UdDgQWBBSEprr66VH/opc7QCtWsgnvUIu4ZDAfBgNVHSMEGDAWgBRq3NHq/0IC
P9pOHDN9fhYhV26eCjA3BgNVHREEMDAugglsb2NhbGhvc3SCG3FhLWVsYXN0aWMt
c3RhY2stZWxhc3RpYy0wM4cECgEABDAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUA
A4IBAQAdITo+v9en++64VHPKFsM1VFuhrDJOJSrDtZ7JAGNYpewck+IWHHwo8TFl
aYnYTa9ezAv0Rsw6uzdJa34NmEa0DOPoLFLj6QIon4ZNdExI+LGtpjb9EUR6yHdw
fjNcHoPj9Pkw8LRWkF2ZREvvf5bQnR540Pvf1j8MIw63syg3kHKJnBaQa/C+QB5m
vpG5+VLK3uRhCzlQbab/thbtmGp+aLqka3uyxPaWoIvGld9j60+s9wb8csjVznCx
LGADAM+jSa/3PFSUhL0mF1sYKmpyFMIeLdO9OPY3BCifHYsRnTDjqXyuqBHEyKgt
t1qc2TmOszeTGlqKimQz+QzX/AXs
-----END CERTIFICATE-----

@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAiCvZ7vXhnYpUEHSnLxeIMIAws1lc2C8tVUueDwFXsaGyUj6E
NBXiK6n6G0kJV+6eGLmR4IUwSFJ/310gzM7wtAETuTvUvbmLY4UgTYdma+S+9a91
8RhrD4AFkeAxFeNgDCETEIGkV1n8nHjXy1FcsJWSasl+jXRU+VsUWV41pDrnCvDK
LxXNKS33utdoc4D1ntUn4OYt6otV/8/tbuFL+sDE0PZSYCYf8Y2apOZUh/sdCRtW
dm/vXP/OnqgkSzpv7TzR8ySlQFCL4iBgpxvdHsFaGdvKZcwFEwujirRVD9jX6EsZ
+C0/8SIObkqaFFipfdmC8yiamw31a0myzozU4QIDAQABAoIBAH18O6dUe4dcdD99
4JsrClv3pemBDmhCgXo65vtY92FAaz4TUm1VRUmLqGoAklWwFY0fZWkMFARx0lka
TyGuCm83Ft/6XQBBvkwF4FDR1/bRo5BxEzUMlYyBI6Dcgx9ym45R5Gmvrqy4xmvD
iMlavxoTnAxAhxj//VaVMllw0en27Gzt22NOutNCdyNsefehzGGZc+n5vmYFYwaJ
yAeUQ4NDZaELCzH/lmpTPx0dM3GgWs0Y3vlGvKuHYotw9HZFn0V+P4l7y8Fs5Ylf
TAnb8Lqk5hzAvjexFPx6MXM6H/iG8EQ57nIzYun+NfsmnhQt4WoXOTA14VrGI8Lj
rnfvH4ECgYEAzHpjZ6QNQXKdbv+Pwq5cu/1AbquAsj2HcC/tSu7Cut02avULw5i/
6OOsfEX7//aM+5vR9+bPnVCQzwNgqs1x39Ix2MenxUizEzoNyWEkfjk+dVP0CyR6
eQdGf0aygBspHza6tv2btDAujw3TbFMRJp1TgFyD/DosHqBMPlLLWYkCgYEAqntq
kNoE7wdtc6xrj76hs/U7EwGkSLe02yOU85ePE+kpXN3jgNh+0u7yIJCghX06kU8X
Lmpvm6rfVe5cx4O51tJS0TC61TZfXCDIVD52sbiHyDRu9AbZ35y3VyAoK9cyfpmH
bELiO0lPQokLqxOw3Wj+g8Grzz/YzLERVn23QpkCgYBeTNMrKO00EbepSRLzpZX+
3HyqjU185gNgKbo1pIcJxpsiGICkY/2dWeJiLaRaF0pNfz8GJNv6oP0ne1dJbhXm
MvnqD6m/whdT9qIFDVfXHm8/jMgvm1MgHcrVR7Vqfxwn2QWi/rKgFthiAO5QNr7i
IAwyVnhICkvuk96Vn3lIgQKBgQCixZVY2iCtzCyvredA5qVjuff+TKn7mBMAzDdS
YNmGDC+m8GBgS9TDNstNVmk9KvT5ekdK1Orc+UeltyE0iUutlUDnZJxuKCziPJap
AL65LtPNzmpFaikpvGq8sAJK4XvfrlzDfBSewH8BqvHOFM3giHfBeu+8wFwSC9ne
98c6uQKBgGzdul2VkjMocmnERuCL8PvMp9l481QJP99mnZDSSJT3ZjVBnBnnand9
7NypEfKKrcJqRWZ2aR6Hu8KHS0Mi5W8D0FzJW04+ZmEROtiYrgHCoLTMCKq9ZKP/
nBqFfrR/uEZFUK1z0B9GQiMvMSnwokWQNxaOfM/Yt4D/Ag6fS678
-----END RSA PRIVATE KEY-----

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save