From 26d099df2d591ac2b661b75d32ba183dde324f66 Mon Sep 17 00:00:00 2001 From: "kiril.kjiroski@finki.ukim.mk" <kiril.kjiroski@finki.ukim.mk> Date: Fri, 29 Jan 2021 14:10:42 +0000 Subject: [PATCH] Working version with implemented keycloak integration for thehive & user creation via API --- buildimages.yml | 2 +- inventories/build/group_vars/all.yml | 4 + inventories/build/hosts.yml | 12 + inventories/deploy/group_vars/haproxy.yml | 11 + inventories/deploy/group_vars/nifi.yml | 19 + inventories/deploy/group_vars/zookeeper.yml | 7 + inventories/deploy/hosts.yml.example | 21 + razliki | 466 +++++++++++++++ roles/build/files/cassandraDockerfile | 35 ++ roles/build/files/cortexDockerfile | 32 + roles/build/files/elasticDockerfile | 21 + roles/build/files/haproxyDockerfile | 71 +++ roles/build/files/keycloakDockerfile | 41 ++ roles/build/files/kibanaDockerfile | 18 + roles/build/files/mispDockerfile | 84 +++ roles/build/files/mispstart.sh | 25 + roles/build/files/mispsupervisord.conf | 25 + roles/build/files/mysqlDockerfile | 13 + roles/build/files/mysqlsupervisord.conf | 7 + roles/build/files/nifiDockerfile | 97 +++ roles/build/files/odfeesDockerfile | 16 + roles/build/files/odfekibanaDockerfile | 18 + roles/build/files/openjdkDockerfile | 11 + roles/build/files/thehiveDockerfile | 24 + roles/build/files/thehive_button/.eslintrc | 7 + .../.kibana-plugin-helpers.json | 2 + roles/build/files/thehive_button/index.js | 19 + roles/build/files/thehive_button/package.json | 35 ++ .../thehive_button/public/create_case.js | 101 ++++ .../build/files/thehive_button/public/env.js | 4 + .../build/files/thehive_button/public/main.js | 54 ++ .../thehive_button/public/options_editor.js | 176 ++++++ .../public/options_template.html | 8 + .../thehive_button/public/request_handler.js | 195 ++++++ .../files/thehive_button/public/vis.less | 3 + .../thehive_button/public/vis_controller.js | 555 ++++++++++++++++++ .../thehive_button/server/routes/newcase.js | 153 +++++ .../thehive_button/thehive_button/.eslintrc | 7 + .../.kibana-plugin-helpers.json | 2 + .../thehive_button/thehive_button/index.js | 19 + .../thehive_button/package.json | 35 ++ .../thehive_button/public/create_case.js | 101 ++++ .../thehive_button/public/env.js | 4 + .../thehive_button/public/main.js | 54 ++ .../thehive_button/public/options_editor.js | 176 ++++++ .../public/options_template.html | 8 + .../thehive_button/public/request_handler.js | 195 ++++++ .../thehive_button/public/vis.less | 3 + .../thehive_button/public/vis_controller.js | 555 ++++++++++++++++++ .../thehive_button/server/routes/newcase.js | 153 +++++ roles/build/files/zookeeperDockerfile | 34 ++ roles/build/tasks/cassandra.yml | 11 + roles/build/tasks/cortex.yml | 11 + roles/build/tasks/haproxy.yml | 10 + roles/build/tasks/keycloak.yml | 18 + roles/build/tasks/misp.yml | 20 + roles/build/tasks/mysql.yml | 15 + roles/build/tasks/nifi.yml | 11 + roles/build/tasks/odfees.yml | 18 + roles/build/tasks/odfekibana.yml | 22 + roles/build/tasks/openjdk.yml | 11 + roles/build/tasks/thehive.yml | 11 + roles/build/tasks/zookeeper.yml | 11 + .../templates/cassandra/cassandra.repo.j2 | 6 + roles/build/templates/cassandra/start.sh.j2 | 10 + .../templates/cassandra/supervisord.conf.j2 | 10 + .../build/templates/misp/supervisord.conf.j2 | 25 + .../build/templates/mysql/supervisord.conf.j2 | 7 + .../templates/odfees/Dockerfile-elastic.j2 | 21 + .../odfees/Dockerfile-odfeelastic.j2 | 16 + .../odfekibana/Dockerfile-odfekibana.j2 | 18 + roles/build/templates/thehive/start.sh | 10 + .../build/templates/thehive/supervisord.conf | 10 + roles/build/templates/thehive/thehive.repo | 7 + roles/ca/files/CA/.rnd | Bin 0 -> 1024 bytes roles/ca/files/CA/ca.crt | 20 + .../01EC4DAD3E5E47CF4E4B98495932B337.pem | 88 +++ .../1DD9AF5415359961C578D1B98BFA6E9F.pem | 84 +++ .../560A99C5A03FC4B9FC92FDC62F419BB9.pem | 88 +++ .../5969918F10EF8D2BAE46B26D6D629D8E.pem | 88 +++ .../5DC4BC495FA076A813A4C23261640D92.pem | 88 +++ .../61095C2C8D35EE291C99CEABD42B3CA4.pem | 88 +++ .../7587FCE4CF3EC68117199076B12CD5D2.pem | 88 +++ .../7DFC33457573E8F16094A74E6B2F23F1.pem | 88 +++ .../8B69055F8586CEDD21660B2493412660.pem | 88 +++ .../97D2D0CF2300C0A966D103CA89A99212.pem | 88 +++ .../A7217943DDD1145BC6F68CBA362CB35B.pem | 84 +++ .../D27B43CB9BFB09CFCC86EFD1019A42FC.pem | 88 +++ .../FE7583DEF2355A2C2BBA09720BD80948.pem | 88 +++ roles/ca/files/CA/extensions.temp | 15 + roles/ca/files/CA/index.txt | 13 + roles/ca/files/CA/index.txt.attr | 1 + roles/ca/files/CA/index.txt.attr.old | 1 + roles/ca/files/CA/index.txt.old | 12 + roles/ca/files/CA/issued/Arne Oslebo.crt | 84 +++ roles/ca/files/CA/issued/Bozidar Proevski.crt | 84 +++ roles/ca/files/CA/issued/dsoclab-cortex.crt | 88 +++ roles/ca/files/CA/issued/dsoclab-haproxy.crt | 88 +++ roles/ca/files/CA/issued/dsoclab-keycloak.crt | 88 +++ roles/ca/files/CA/issued/dsoclab-kibana.crt | 88 +++ roles/ca/files/CA/issued/dsoclab-misp.crt | 88 +++ roles/ca/files/CA/issued/dsoclab-nifi-1.crt | 88 +++ roles/ca/files/CA/issued/dsoclab-nifi-2.crt | 88 +++ roles/ca/files/CA/issued/dsoclab-nifi-3.crt | 88 +++ roles/ca/files/CA/issued/dsoclab-odfe-1.crt | 88 +++ roles/ca/files/CA/issued/dsoclab-odfe-2.crt | 88 +++ roles/ca/files/CA/issued/dsoclab-thehive.crt | 88 +++ roles/ca/files/CA/openssl-easyrsa.cnf | 140 +++++ roles/ca/files/CA/private/Arne Oslebo.key | 28 + roles/ca/files/CA/private/Arne Oslebo.p12 | Bin 0 -> 3325 bytes .../ca/files/CA/private/Bozidar Proevski.key | 28 + .../ca/files/CA/private/Bozidar Proevski.p12 | Bin 0 -> 3325 bytes roles/ca/files/CA/private/ca.key | 27 + roles/ca/files/CA/private/dsoclab-cortex.key | 28 + roles/ca/files/CA/private/dsoclab-cortex.p12 | Bin 0 -> 3397 bytes roles/ca/files/CA/private/dsoclab-haproxy.key | 28 + .../ca/files/CA/private/dsoclab-keycloak.key | 28 + .../ca/files/CA/private/dsoclab-keycloak.p12 | Bin 0 -> 3397 bytes roles/ca/files/CA/private/dsoclab-kibana.key | 28 + roles/ca/files/CA/private/dsoclab-kibana.p12 | Bin 0 -> 3397 bytes roles/ca/files/CA/private/dsoclab-misp.key | 28 + roles/ca/files/CA/private/dsoclab-misp.p12 | Bin 0 -> 3389 bytes roles/ca/files/CA/private/dsoclab-nifi-1.key | 28 + roles/ca/files/CA/private/dsoclab-nifi-1.p12 | Bin 0 -> 3397 bytes roles/ca/files/CA/private/dsoclab-nifi-2.key | 28 + roles/ca/files/CA/private/dsoclab-nifi-2.p12 | Bin 0 -> 3397 bytes roles/ca/files/CA/private/dsoclab-nifi-3.key | 28 + roles/ca/files/CA/private/dsoclab-nifi-3.p12 | Bin 0 -> 3397 bytes roles/ca/files/CA/private/dsoclab-odfe-1.key | 28 + roles/ca/files/CA/private/dsoclab-odfe-1.p12 | Bin 0 -> 3397 bytes roles/ca/files/CA/private/dsoclab-odfe-2.key | 28 + roles/ca/files/CA/private/dsoclab-odfe-2.p12 | Bin 0 -> 3397 bytes roles/ca/files/CA/private/dsoclab-thehive.key | 28 + roles/ca/files/CA/private/dsoclab-thehive.p12 | Bin 0 -> 3397 bytes roles/ca/files/CA/reqs/Arne Oslebo.req | 15 + roles/ca/files/CA/reqs/Bozidar Proevski.req | 15 + roles/ca/files/CA/reqs/dsoclab-cortex.req | 17 + roles/ca/files/CA/reqs/dsoclab-haproxy.req | 17 + roles/ca/files/CA/reqs/dsoclab-keycloak.req | 17 + roles/ca/files/CA/reqs/dsoclab-kibana.req | 17 + roles/ca/files/CA/reqs/dsoclab-misp.req | 17 + roles/ca/files/CA/reqs/dsoclab-nifi-1.req | 17 + roles/ca/files/CA/reqs/dsoclab-nifi-2.req | 17 + roles/ca/files/CA/reqs/dsoclab-nifi-3.req | 17 + roles/ca/files/CA/reqs/dsoclab-odfe-1.req | 17 + roles/ca/files/CA/reqs/dsoclab-odfe-2.req | 17 + roles/ca/files/CA/reqs/dsoclab-thehive.req | 17 + roles/ca/files/CA/safessl-easyrsa.cnf | 140 +++++ roles/ca/files/CA/serial | 1 + roles/ca/files/CA/serial.old | 1 + roles/ca/files/truststore/SOCTOOLS-CA.crt | 20 + roles/ca/files/truststore/cacerts.jks | Bin 0 -> 893 bytes roles/cortex/files/SOCTOOLS-CA.crt | 20 + roles/cortex/files/cacerts.jks | Bin 0 -> 893 bytes roles/cortex/files/cortexsecret | 3 + roles/cortex/files/dsoclab-cortex.crt | 88 +++ roles/cortex/files/dsoclab-cortex.key | 28 + roles/cortex/files/dsoclab-cortex.p12 | Bin 0 -> 3397 bytes roles/cortex/files/logback.xml | 47 ++ roles/haproxy/files/dsoclab-haproxy.crt | 88 +++ roles/haproxy/files/dsoclab-haproxy.key | 28 + roles/haproxy/files/haproxy.cfg | 17 + roles/keycloak/files/SOCTOOLS-CA.crt | 20 + roles/keycloak/files/cacerts.jks | Bin 0 -> 893 bytes roles/keycloak/files/dsoclab-keycloak.crt | 88 +++ roles/keycloak/files/dsoclab-keycloak.key | 28 + roles/misp/files/SOCTOOLS-CA.crt | 20 + roles/misp/files/cacerts.jks | Bin 0 -> 893 bytes roles/misp/files/dsoclab-misp.crt | 88 +++ roles/misp/files/dsoclab-misp.key | 28 + roles/misp/templates/config.php.j2 | 84 +++ roles/nifi/files/SOCTOOLS-CA.crt | 20 + roles/nifi/files/cacerts.jks | Bin 0 -> 893 bytes roles/nifi/files/dsoclab-nifi-1.p12 | Bin 0 -> 3397 bytes roles/nifi/files/dsoclab-nifi-2.p12 | Bin 0 -> 3397 bytes roles/nifi/files/dsoclab-nifi-3.p12 | Bin 0 -> 3397 bytes roles/nifi/files/nifisecret | 3 + roles/odfees/files/Arne Oslebo.p12 | Bin 0 -> 3325 bytes roles/odfees/files/Bozidar Proevski.p12 | Bin 0 -> 3325 bytes roles/odfees/files/SOCTOOLS-CA.crt | 20 + roles/odfees/files/cacerts.jks | Bin 0 -> 893 bytes roles/odfees/files/dsoclab-odfe-1.p12 | Bin 0 -> 3397 bytes roles/odfees/files/dsoclab-odfe-2.p12 | Bin 0 -> 3397 bytes roles/odfekibana/files/Arne Oslebo.p12 | Bin 0 -> 3325 bytes roles/odfekibana/files/Bozidar Proevski.p12 | Bin 0 -> 3325 bytes roles/odfekibana/files/SOCTOOLS-CA.crt | 20 + roles/odfekibana/files/cacerts.jks | Bin 0 -> 893 bytes roles/odfekibana/files/dsoclab-kibana.crt | 88 +++ roles/odfekibana/files/dsoclab-kibana.key | 28 + roles/odfekibana/files/dsoclab-kibana.p12 | Bin 0 -> 3397 bytes roles/odfekibana/files/kibanasecret | 3 + roles/thehive/vars/main.yml | 16 + soctools-inventory | 35 ++ 193 files changed, 8198 insertions(+), 1 deletion(-) create mode 100644 inventories/build/group_vars/all.yml create mode 100644 inventories/build/hosts.yml create mode 100644 inventories/deploy/group_vars/haproxy.yml create mode 100644 inventories/deploy/group_vars/nifi.yml create mode 100644 inventories/deploy/group_vars/zookeeper.yml create mode 100644 inventories/deploy/hosts.yml.example create mode 100644 razliki create mode 100644 roles/build/files/cassandraDockerfile create mode 100644 roles/build/files/cortexDockerfile create mode 100644 roles/build/files/elasticDockerfile create mode 100644 roles/build/files/haproxyDockerfile create mode 100644 roles/build/files/keycloakDockerfile create mode 100644 roles/build/files/kibanaDockerfile create mode 100644 roles/build/files/mispDockerfile create mode 100644 roles/build/files/mispstart.sh create mode 100644 roles/build/files/mispsupervisord.conf create mode 100644 roles/build/files/mysqlDockerfile create mode 100644 roles/build/files/mysqlsupervisord.conf create mode 100644 roles/build/files/nifiDockerfile create mode 100644 roles/build/files/odfeesDockerfile create mode 100644 roles/build/files/odfekibanaDockerfile create mode 100644 roles/build/files/openjdkDockerfile create mode 100644 roles/build/files/thehiveDockerfile create mode 100644 roles/build/files/thehive_button/.eslintrc create mode 100644 roles/build/files/thehive_button/.kibana-plugin-helpers.json create mode 100644 roles/build/files/thehive_button/index.js create mode 100644 roles/build/files/thehive_button/package.json create mode 100644 roles/build/files/thehive_button/public/create_case.js create mode 100644 roles/build/files/thehive_button/public/env.js create mode 100644 roles/build/files/thehive_button/public/main.js create mode 100644 roles/build/files/thehive_button/public/options_editor.js create mode 100644 roles/build/files/thehive_button/public/options_template.html create mode 100644 roles/build/files/thehive_button/public/request_handler.js create mode 100644 roles/build/files/thehive_button/public/vis.less create mode 100644 roles/build/files/thehive_button/public/vis_controller.js create mode 100644 roles/build/files/thehive_button/server/routes/newcase.js create mode 100644 roles/build/files/thehive_button/thehive_button/.eslintrc create mode 100644 roles/build/files/thehive_button/thehive_button/.kibana-plugin-helpers.json create mode 100644 roles/build/files/thehive_button/thehive_button/index.js create mode 100644 roles/build/files/thehive_button/thehive_button/package.json create mode 100644 roles/build/files/thehive_button/thehive_button/public/create_case.js create mode 100644 roles/build/files/thehive_button/thehive_button/public/env.js create mode 100644 roles/build/files/thehive_button/thehive_button/public/main.js create mode 100644 roles/build/files/thehive_button/thehive_button/public/options_editor.js create mode 100644 roles/build/files/thehive_button/thehive_button/public/options_template.html create mode 100644 roles/build/files/thehive_button/thehive_button/public/request_handler.js create mode 100644 roles/build/files/thehive_button/thehive_button/public/vis.less create mode 100644 roles/build/files/thehive_button/thehive_button/public/vis_controller.js create mode 100644 roles/build/files/thehive_button/thehive_button/server/routes/newcase.js create mode 100644 roles/build/files/zookeeperDockerfile create mode 100644 roles/build/tasks/cassandra.yml create mode 100644 roles/build/tasks/cortex.yml create mode 100644 roles/build/tasks/haproxy.yml create mode 100644 roles/build/tasks/keycloak.yml create mode 100644 roles/build/tasks/misp.yml create mode 100644 roles/build/tasks/mysql.yml create mode 100644 roles/build/tasks/nifi.yml create mode 100644 roles/build/tasks/odfees.yml create mode 100644 roles/build/tasks/odfekibana.yml create mode 100644 roles/build/tasks/openjdk.yml create mode 100644 roles/build/tasks/thehive.yml create mode 100644 roles/build/tasks/zookeeper.yml create mode 100644 roles/build/templates/cassandra/cassandra.repo.j2 create mode 100644 roles/build/templates/cassandra/start.sh.j2 create mode 100644 roles/build/templates/cassandra/supervisord.conf.j2 create mode 100644 roles/build/templates/misp/supervisord.conf.j2 create mode 100644 roles/build/templates/mysql/supervisord.conf.j2 create mode 100644 roles/build/templates/odfees/Dockerfile-elastic.j2 create mode 100644 roles/build/templates/odfees/Dockerfile-odfeelastic.j2 create mode 100644 roles/build/templates/odfekibana/Dockerfile-odfekibana.j2 create mode 100644 roles/build/templates/thehive/start.sh create mode 100644 roles/build/templates/thehive/supervisord.conf create mode 100644 roles/build/templates/thehive/thehive.repo create mode 100644 roles/ca/files/CA/.rnd create mode 100644 roles/ca/files/CA/ca.crt create mode 100644 roles/ca/files/CA/certs_by_serial/01EC4DAD3E5E47CF4E4B98495932B337.pem create mode 100644 roles/ca/files/CA/certs_by_serial/1DD9AF5415359961C578D1B98BFA6E9F.pem create mode 100644 roles/ca/files/CA/certs_by_serial/560A99C5A03FC4B9FC92FDC62F419BB9.pem create mode 100644 roles/ca/files/CA/certs_by_serial/5969918F10EF8D2BAE46B26D6D629D8E.pem create mode 100644 roles/ca/files/CA/certs_by_serial/5DC4BC495FA076A813A4C23261640D92.pem create mode 100644 roles/ca/files/CA/certs_by_serial/61095C2C8D35EE291C99CEABD42B3CA4.pem create mode 100644 roles/ca/files/CA/certs_by_serial/7587FCE4CF3EC68117199076B12CD5D2.pem create mode 100644 roles/ca/files/CA/certs_by_serial/7DFC33457573E8F16094A74E6B2F23F1.pem create mode 100644 roles/ca/files/CA/certs_by_serial/8B69055F8586CEDD21660B2493412660.pem create mode 100644 roles/ca/files/CA/certs_by_serial/97D2D0CF2300C0A966D103CA89A99212.pem create mode 100644 roles/ca/files/CA/certs_by_serial/A7217943DDD1145BC6F68CBA362CB35B.pem create mode 100644 roles/ca/files/CA/certs_by_serial/D27B43CB9BFB09CFCC86EFD1019A42FC.pem create mode 100644 roles/ca/files/CA/certs_by_serial/FE7583DEF2355A2C2BBA09720BD80948.pem create mode 100644 roles/ca/files/CA/extensions.temp create mode 100644 roles/ca/files/CA/index.txt create mode 100644 roles/ca/files/CA/index.txt.attr create mode 100644 roles/ca/files/CA/index.txt.attr.old create mode 100644 roles/ca/files/CA/index.txt.old create mode 100644 roles/ca/files/CA/issued/Arne Oslebo.crt create mode 100644 roles/ca/files/CA/issued/Bozidar Proevski.crt create mode 100644 roles/ca/files/CA/issued/dsoclab-cortex.crt create mode 100644 roles/ca/files/CA/issued/dsoclab-haproxy.crt create mode 100644 roles/ca/files/CA/issued/dsoclab-keycloak.crt create mode 100644 roles/ca/files/CA/issued/dsoclab-kibana.crt create mode 100644 roles/ca/files/CA/issued/dsoclab-misp.crt create mode 100644 roles/ca/files/CA/issued/dsoclab-nifi-1.crt create mode 100644 roles/ca/files/CA/issued/dsoclab-nifi-2.crt create mode 100644 roles/ca/files/CA/issued/dsoclab-nifi-3.crt create mode 100644 roles/ca/files/CA/issued/dsoclab-odfe-1.crt create mode 100644 roles/ca/files/CA/issued/dsoclab-odfe-2.crt create mode 100644 roles/ca/files/CA/issued/dsoclab-thehive.crt create mode 100644 roles/ca/files/CA/openssl-easyrsa.cnf create mode 100644 roles/ca/files/CA/private/Arne Oslebo.key create mode 100644 roles/ca/files/CA/private/Arne Oslebo.p12 create mode 100644 roles/ca/files/CA/private/Bozidar Proevski.key create mode 100644 roles/ca/files/CA/private/Bozidar Proevski.p12 create mode 100644 roles/ca/files/CA/private/ca.key create mode 100644 roles/ca/files/CA/private/dsoclab-cortex.key create mode 100644 roles/ca/files/CA/private/dsoclab-cortex.p12 create mode 100644 roles/ca/files/CA/private/dsoclab-haproxy.key create mode 100644 roles/ca/files/CA/private/dsoclab-keycloak.key create mode 100644 roles/ca/files/CA/private/dsoclab-keycloak.p12 create mode 100644 roles/ca/files/CA/private/dsoclab-kibana.key create mode 100644 roles/ca/files/CA/private/dsoclab-kibana.p12 create mode 100644 roles/ca/files/CA/private/dsoclab-misp.key create mode 100644 roles/ca/files/CA/private/dsoclab-misp.p12 create mode 100644 roles/ca/files/CA/private/dsoclab-nifi-1.key create mode 100644 roles/ca/files/CA/private/dsoclab-nifi-1.p12 create mode 100644 roles/ca/files/CA/private/dsoclab-nifi-2.key create mode 100644 roles/ca/files/CA/private/dsoclab-nifi-2.p12 create mode 100644 roles/ca/files/CA/private/dsoclab-nifi-3.key create mode 100644 roles/ca/files/CA/private/dsoclab-nifi-3.p12 create mode 100644 roles/ca/files/CA/private/dsoclab-odfe-1.key create mode 100644 roles/ca/files/CA/private/dsoclab-odfe-1.p12 create mode 100644 roles/ca/files/CA/private/dsoclab-odfe-2.key create mode 100644 roles/ca/files/CA/private/dsoclab-odfe-2.p12 create mode 100644 roles/ca/files/CA/private/dsoclab-thehive.key create mode 100644 roles/ca/files/CA/private/dsoclab-thehive.p12 create mode 100644 roles/ca/files/CA/reqs/Arne Oslebo.req create mode 100644 roles/ca/files/CA/reqs/Bozidar Proevski.req create mode 100644 roles/ca/files/CA/reqs/dsoclab-cortex.req create mode 100644 roles/ca/files/CA/reqs/dsoclab-haproxy.req create mode 100644 roles/ca/files/CA/reqs/dsoclab-keycloak.req create mode 100644 roles/ca/files/CA/reqs/dsoclab-kibana.req create mode 100644 roles/ca/files/CA/reqs/dsoclab-misp.req create mode 100644 roles/ca/files/CA/reqs/dsoclab-nifi-1.req create mode 100644 roles/ca/files/CA/reqs/dsoclab-nifi-2.req create mode 100644 roles/ca/files/CA/reqs/dsoclab-nifi-3.req create mode 100644 roles/ca/files/CA/reqs/dsoclab-odfe-1.req create mode 100644 roles/ca/files/CA/reqs/dsoclab-odfe-2.req create mode 100644 roles/ca/files/CA/reqs/dsoclab-thehive.req create mode 100644 roles/ca/files/CA/safessl-easyrsa.cnf create mode 100644 roles/ca/files/CA/serial create mode 100644 roles/ca/files/CA/serial.old create mode 100644 roles/ca/files/truststore/SOCTOOLS-CA.crt create mode 100644 roles/ca/files/truststore/cacerts.jks create mode 100644 roles/cortex/files/SOCTOOLS-CA.crt create mode 100644 roles/cortex/files/cacerts.jks create mode 100644 roles/cortex/files/cortexsecret create mode 100644 roles/cortex/files/dsoclab-cortex.crt create mode 100644 roles/cortex/files/dsoclab-cortex.key create mode 100644 roles/cortex/files/dsoclab-cortex.p12 create mode 100644 roles/cortex/files/logback.xml create mode 100644 roles/haproxy/files/dsoclab-haproxy.crt create mode 100644 roles/haproxy/files/dsoclab-haproxy.key create mode 100644 roles/haproxy/files/haproxy.cfg create mode 100644 roles/keycloak/files/SOCTOOLS-CA.crt create mode 100644 roles/keycloak/files/cacerts.jks create mode 100644 roles/keycloak/files/dsoclab-keycloak.crt create mode 100644 roles/keycloak/files/dsoclab-keycloak.key create mode 100644 roles/misp/files/SOCTOOLS-CA.crt create mode 100644 roles/misp/files/cacerts.jks create mode 100644 roles/misp/files/dsoclab-misp.crt create mode 100644 roles/misp/files/dsoclab-misp.key create mode 100644 roles/misp/templates/config.php.j2 create mode 100644 roles/nifi/files/SOCTOOLS-CA.crt create mode 100644 roles/nifi/files/cacerts.jks create mode 100644 roles/nifi/files/dsoclab-nifi-1.p12 create mode 100644 roles/nifi/files/dsoclab-nifi-2.p12 create mode 100644 roles/nifi/files/dsoclab-nifi-3.p12 create mode 100644 roles/nifi/files/nifisecret create mode 100644 roles/odfees/files/Arne Oslebo.p12 create mode 100644 roles/odfees/files/Bozidar Proevski.p12 create mode 100644 roles/odfees/files/SOCTOOLS-CA.crt create mode 100644 roles/odfees/files/cacerts.jks create mode 100644 roles/odfees/files/dsoclab-odfe-1.p12 create mode 100644 roles/odfees/files/dsoclab-odfe-2.p12 create mode 100644 roles/odfekibana/files/Arne Oslebo.p12 create mode 100644 roles/odfekibana/files/Bozidar Proevski.p12 create mode 100644 roles/odfekibana/files/SOCTOOLS-CA.crt create mode 100644 roles/odfekibana/files/cacerts.jks create mode 100644 roles/odfekibana/files/dsoclab-kibana.crt create mode 100644 roles/odfekibana/files/dsoclab-kibana.key create mode 100644 roles/odfekibana/files/dsoclab-kibana.p12 create mode 100644 roles/odfekibana/files/kibanasecret create mode 100644 soctools-inventory diff --git a/buildimages.yml b/buildimages.yml index 8a93583..d30f905 100644 --- a/buildimages.yml +++ b/buildimages.yml @@ -1,7 +1,7 @@ --- - name: Build docker images - hosts: soctoolsmain + hosts: dsldev roles: - build diff --git a/inventories/build/group_vars/all.yml b/inventories/build/group_vars/all.yml new file mode 100644 index 0000000..7043236 --- /dev/null +++ b/inventories/build/group_vars/all.yml @@ -0,0 +1,4 @@ +--- + +docker_image_path: images +base_image: python:2.7-stretch diff --git a/inventories/build/hosts.yml b/inventories/build/hosts.yml new file mode 100644 index 0000000..4854638 --- /dev/null +++ b/inventories/build/hosts.yml @@ -0,0 +1,12 @@ +all: + hosts: + nifi-image: + ansible_connection: docker + ansible_python_interpreter: /usr/bin/python + localhost: + ansible_python_interpreter: /usr/bin/python + ansible_connection: local + children: + nifi: + hosts: + localhost: diff --git a/inventories/deploy/group_vars/haproxy.yml b/inventories/deploy/group_vars/haproxy.yml new file mode 100644 index 0000000..b53d50d --- /dev/null +++ b/inventories/deploy/group_vars/haproxy.yml @@ -0,0 +1,11 @@ +--- +index: haproxy +scale: "{{ haproxy_scale | default('1')}}" +docker: + haproxy: + image: haproxy:latest + volumes: + - /usr/local/etc/haproxy/:/usr/local/etc/haproxy:ro + ports: + - "80:80" + source: pull \ No newline at end of file diff --git a/inventories/deploy/group_vars/nifi.yml b/inventories/deploy/group_vars/nifi.yml new file mode 100644 index 0000000..5b71869 --- /dev/null +++ b/inventories/deploy/group_vars/nifi.yml @@ -0,0 +1,19 @@ +--- +index: nifi +scale: "{{ nifi_scale | default('1')}}" +docker: + nifi: +# image: nifi-soctools #For nifi image built by soctools +# source: load + image: apache/nifi:latest + source: pull + command: /opt/nifi/nifi-current/scripts/start.sh + env: + NIFI_HOME: "/opt/nifi/nifi-current" + NIFI_LOG_DIR: "/opt/nifi/nifi-current/logs" + NIFI_PID_DIR: "/opt/nifi/nifi-current/run" + NIFI_CLUSTER_IS_NODE: "true" + NIFI_ZK_CONNECT_STRING: "zookeeper_1:2181" + NIFI_CLUSTER_NODE_PROTOCOL_PORT: "8082" + NIFI_ELECTION_MAX_WAIT: "1 min" + load_path: "{{ image_location }}/nifi-soctools.tar" diff --git a/inventories/deploy/group_vars/zookeeper.yml b/inventories/deploy/group_vars/zookeeper.yml new file mode 100644 index 0000000..5604be8 --- /dev/null +++ b/inventories/deploy/group_vars/zookeeper.yml @@ -0,0 +1,7 @@ +--- +index: zookeeper +scale: "{{ zookeeper_scale | default('1')}}" +docker: + zookeeper: + image: zookeeper:latest + source: pull \ No newline at end of file diff --git a/inventories/deploy/hosts.yml.example b/inventories/deploy/hosts.yml.example new file mode 100644 index 0000000..7d85e5b --- /dev/null +++ b/inventories/deploy/hosts.yml.example @@ -0,0 +1,21 @@ +all: + hosts: + host1: + ansible_ssh_user: debian + ansible_python_interpreter: /usr/bin/python + become: yes + children: + soctools_server: + hosts: + host1: + nifi: + hosts: + host1: + nifi_scale: 3 + haproxy: + hosts: + host1: + zookeeper: + hosts: + host1: + zookeeper_scale: 3 \ No newline at end of file diff --git a/razliki b/razliki new file mode 100644 index 0000000..10e6a9e --- /dev/null +++ b/razliki @@ -0,0 +1,466 @@ +diff --git a/group_vars/all/main.yml b/group_vars/all/main.yml +index 6bb820d..c6adf5f 100644 +--- a/group_vars/all/main.yml ++++ b/group_vars/all/main.yml +@@ -4,8 +4,32 @@ dslproxy: "dsoclab.gn4-3-wp8-soc.sunet.se" + + # TheHive Button plugin + THEHIVE_URL: "https://hive.gn4-3-wp8-soc.sunet.se/" +-THEHIVE_API_KEY: "5LymseWiurZBrQN8Kqp8O+9KniTL5cE0" +-THEHIVE_OWNER: "admin" ++# here enter API key for default admin user ++THEHIVE_API_KEY: "bs2Jc3tGJqhVv0AYyX2NYlhMlorPz7mX" ++# ID of the default admin user ++THEHIVE_OWNER: "admin@thehive.local" ++ ++# TheHive Create Organisation and Users ++# Login as default admin user and create API key, populate it here ++# thehive_admin_api: "KoHrKbIJm8XMsJxA9nZLs6YemCu76o3u" ++# thehive_writer: "[write]" ++ ++#THEHIVE_API_KEY: "1gFdNhmUSxO3BRe1SBB5JYEvkW9UOo6s" ++THEHIVE_USERS: ++ - kiril: ++ username: "kiril" ++ name: "Kiril" ++ surname: "Kiroski" ++ roles: '["read", "write", "admin"]' ++ organization: "uninett.no" ++ - temur: ++ username: "temur" ++ name: "Temur" ++ surname: "Maisuradze" ++ roles: '["read", "write", "admin"]' ++ organization: "uninett.no" ++ ++ + + soctools_netname: "soctoolsnet" + soctools_network: "172.22.0.0/16" +@@ -82,6 +106,13 @@ soctools_users: + DN: "CN=Arne Oslebo" + CN: "Arne Oslebo" + password: "Pass002" ++ - firstname: "Kiril" ++ lastname: "Kjiroski" ++ username: "kiril.kjiroski" ++ email: "kiril.kjiroski@finki.ukim.mk" ++ DN: "CN=Kiril Kjiroski" ++ CN: "Kiril Kjiroski" ++ password: "Pass003" + + odfees_img: "{{repo}}/odfees:{{version}}{{suffix}}" + odfekibana_img: "{{repo}}/odfekibana:{{version}}{{suffix}}" +diff --git a/roles/ca/tasks/main.yml b/roles/ca/tasks/main.yml +index ec25dad..6ca350a 100644 +--- a/roles/ca/tasks/main.yml ++++ b/roles/ca/tasks/main.yml +@@ -229,6 +229,7 @@ + - keycloak + - misp + - cortex ++ - thehive + + - name: Copy ca cert to roles + copy: +diff --git a/roles/cortex/tasks/main.yml b/roles/cortex/tasks/main.yml +index 5d1eeb2..06b2639 100644 +--- a/roles/cortex/tasks/main.yml ++++ b/roles/cortex/tasks/main.yml +@@ -31,6 +31,12 @@ + - start + - startcortex + ++- name: Get openid authkey ++ set_fact: ++ cortexsecret: "{{lookup('file', 'files/cortexsecret',convert_data=False) | from_json }}" ++ tags: ++ - start ++ + - name: Configure embedded Elasticsearch 6 + remote_user: root + template: +@@ -61,6 +67,13 @@ + - start + - startcortex + ++- name: Configure Cortex logging ++ copy: ++ src: logback.xml ++ dest: /etc/cortex/logback.xml ++ tags: ++ - start ++ + - name: Start Cortex + command: > + daemonize +diff --git a/roles/cortex/templates/application.conf.j2 b/roles/cortex/templates/application.conf.j2 +index 35323e0..6d6d09c 100644 +--- a/roles/cortex/templates/application.conf.j2 ++++ b/roles/cortex/templates/application.conf.j2 +@@ -66,7 +66,7 @@ auth { + # the "ad" section below. + # - ldap : use LDAP to authenticate users. The associated configuration shall be done in the + # "ldap" section below. +- provider = [local] ++ provider = [local,oauth2] + + ad { + # The Windows domain name in DNS format. This parameter is required if you do not use +@@ -108,6 +108,84 @@ auth { + # If 'true', use SSL to connect to the LDAP directory server. + #useSSL = true + } ++ oauth2 { ++ # URL of the authorization server ++ clientId = "dsoclab-cortex" ++ clientSecret = {{cortexsecret.value}} ++ redirectUri = "https://{{dslproxy}}:9001/api/ssoLogin" ++ responseType = "code" ++ grantType = "authorization_code" ++ ++ # URL from where to get the access token ++ authorizationUrl = "https://{{dslproxy}}:12443/auth/realms/{{openid_realm}}/protocol/openid-connect/auth" ++ authorizationHeader = "Bearer" ++ tokenUrl = "https://{{dslproxy}}:12443/auth/realms/{{openid_realm}}/protocol/openid-connect/token" ++ ++ ++ # The endpoint from which to obtain user details using the OAuth token, after successful login ++ userUrl = "https://{{dslproxy}}:12443/auth/realms/{{openid_realm}}/protocol/openid-connect/userinfo" ++ scope = "profile" ++ userIdField = "email" ++ #userUrl = "https://auth-site.com/api/User" ++ #scope = ["openid profile"] ++ } ++ ++ ws.ssl.trustManager { ++ stores = [ ++ { ++ type = "JKS" // JKS or PEM ++ path = "cacerts.jks" ++ password = "{{tspass}}" ++ } ++ ] ++ } ++ ++ ++ # Single-Sign On ++ sso { ++ # Autocreate user in database? ++ autocreate = true ++ ++ # Autoupdate its profile and roles? ++ autoupdate = true ++ ++ # Autologin user using SSO? ++ autologin = true ++ ++ # Name of mapping class from user resource to backend user ('simple' or 'group') ++ #mapper = group ++ #mapper = simple ++ #attributes { ++ # login = "user" ++ # name = "name" ++ # groups = "groups" ++ # organization = "org" ++ #} ++# defaultRoles = ["read", "write", "admin"] ++# defaultOrganization = "uninett.no" ++ #defaultRoles = ["read"] ++ #defaultOrganization = "csirt" ++ #groups { ++ # # URL to retreive groups (leave empty if you are using OIDC) ++ # #url = "https://auth-site.com/api/Groups" ++ # # Group mappings, you can have multiple roles for each group: they are merged ++ # mappings { ++ # admin-profile-name = ["admin"] ++ # editor-profile-name = ["write"] ++ # reader-profile-name = ["read"] ++ # } ++ #} ++ ++ mapper = simple ++ attributes { ++ login = "user" ++ name = "name" ++ roles = "roles" ++ organization = "org" ++ } ++ defaultRoles = ["read", "analyze"] ++ defaultOrganization = "uninett.no" ++ } + } + + ## ANALYZERS +diff --git a/roles/docker/tasks/thehive.yml b/roles/docker/tasks/thehive.yml +index f8effea..30b11c8 100644 +--- a/roles/docker/tasks/thehive.yml ++++ b/roles/docker/tasks/thehive.yml +@@ -15,6 +15,7 @@ + with_items: "{{ groups['thehive'] }}" + tags: + - start ++ - thehivestart + + - name: Disconnect thehive containers from network and remove + docker_container: +@@ -23,4 +24,4 @@ + with_items: "{{ groups['thehive'] }}" + tags: + - stop +- ++ - thehivestop +diff --git a/roles/keycloak/tasks/main.yml b/roles/keycloak/tasks/main.yml +index 9c8f81e..2bb6a62 100644 +--- a/roles/keycloak/tasks/main.yml ++++ b/roles/keycloak/tasks/main.yml +@@ -4,7 +4,7 @@ + copy: + src: "{{ item.local }}" + dest: "{{ item.remote }}" +- mode: "{{ item.mode}}" ++ mode: "{{ item.mode }}" + with_items: + - local: "files/{{ inventory_hostname }}.crt" + remote: /etc/x509/https/tls.crt +@@ -20,6 +20,7 @@ + mode: '0644' + tags: + - start ++ - startkeycloak + + - name: Generate Keycloak secure config + command: "/opt/jboss/tools/x509.sh" +@@ -27,11 +28,14 @@ + X509_CA_BUNDLE: "/etc/x509/ca/ca.crt" + tags: + - start ++ - startkeycloak + + - name: Set admin password + command: /opt/jboss/keycloak/bin/add-user-keycloak.sh --user "admin" --password "{{keycloak_adminpass}}" ++ ignore_errors: yes + tags: + - start ++ - startkeycloak + + - name: Configure Keycloak start script + template: +@@ -43,12 +47,14 @@ + - initkeycloakrealm.sh + tags: + - start ++ - startkeycloak + + + - name: Start Keycloak IdP + command: /opt/jboss/tools/startkeycloak.sh + tags: + - start ++ - startkeycloak + + - name: Wait for Keycloak + wait_for: +@@ -58,11 +64,13 @@ + delay: 5 + tags: + - start ++ - startkeycloak + + - name: Initialize Keycloak realm + command: /opt/jboss/tools/initkeycloakrealm.sh + tags: + - start ++ - startkeycloak + + - name: Copy secrets from Keycloak + fetch: +@@ -74,10 +82,16 @@ + local: "roles/nifi/files/nifisecret" + - remote: "{{ ansible_facts.env['JBOSS_HOME'] }}/kibanasecret" + local: "roles/odfekibana/files/kibanasecret" ++ - remote: "{{ ansible_facts.env['JBOSS_HOME'] }}/thehivesecret" ++ local: "roles/thehive/files/thehivesecret" ++ - remote: "{{ ansible_facts.env['JBOSS_HOME'] }}/cortexsecret" ++ local: "roles/cortex/files/cortexsecret" + tags: + - start ++ - startkeycloak + + - name: Stop Keycloak + command: "pkill -SIGTERM -F {{inventory_hostname}}.pid" + tags: + - stop ++ - stopkeycloak +diff --git a/roles/keycloak/templates/initkeycloakrealm.sh.j2 b/roles/keycloak/templates/initkeycloakrealm.sh.j2 +index f3f0073..d6fc946 100644 +--- a/roles/keycloak/templates/initkeycloakrealm.sh.j2 ++++ b/roles/keycloak/templates/initkeycloakrealm.sh.j2 +@@ -28,6 +28,12 @@ kcadm.sh get realms/{{openid_realm}}/clients/${NIFICLIENT}/client-secret --field + KIBANACLIENT=$(kcadm.sh create realms/{{openid_realm}}/clients -i -b '{"enabled":true, "clientId":"dsoclab-kibana","protocol":"openid-connect","clientAuthenticatorType": "client-secret","rootUrl": "https://{{dslproxy}}:5601","adminUrl": "","redirectUris": ["https://{{dslproxy}}:5601", "https://{{dslproxy}}:5601/auth/openid/login", "https://{{dslproxy}}:5601/app/kibana" ],"webOrigins": [], "publicClient": false }') + kcadm.sh get realms/{{openid_realm}}/clients/${KIBANACLIENT}/client-secret --fields value > /opt/jboss/keycloak/kibanasecret + ++THEHIVECLIENT=$(kcadm.sh create realms/{{openid_realm}}/clients -i -b '{"enabled":true, "clientId":"dsoclab-thehive","protocol":"openid-connect","clientAuthenticatorType": "client-secret","adminUrl": "","redirectUris": ["https://{{dslproxy}}:9000/api/ssoLogin"],"webOrigins": [], "publicClient": false }') ++kcadm.sh get realms/{{openid_realm}}/clients/${THEHIVECLIENT}/client-secret --fields value > /opt/jboss/keycloak/thehivesecret ++ ++CORTEXCLIENT=$(kcadm.sh create realms/{{openid_realm}}/clients -i -b '{"enabled":true, "clientId":"dsoclab-cortex","protocol":"openid-connect","clientAuthenticatorType": "client-secret","adminUrl": "","redirectUris": ["https://{{dslproxy}}:9001/api/ssoLogin"],"webOrigins": [], "publicClient": false }') ++kcadm.sh get realms/{{openid_realm}}/clients/${CORTEXCLIENT}/client-secret --fields value > /opt/jboss/keycloak/cortexsecret ++ + + kcadm.sh config truststore --delete + +diff --git a/roles/thehive/tasks/main.yml b/roles/thehive/tasks/main.yml +index 7d8f859..0e560e7 100644 +--- a/roles/thehive/tasks/main.yml ++++ b/roles/thehive/tasks/main.yml +@@ -1,5 +1,39 @@ + --- + ++- name: Copy cacert to ca-trust dir ++ remote_user: root ++ copy: ++ src: "files/{{ca_cn}}.crt" ++ dest: /etc/pki/ca-trust/source/anchors/ca.crt ++ tags: ++ - start ++ ++- name: Install cacert to root truststore ++ remote_user: root ++ command: "update-ca-trust" ++ tags: ++ - start ++ ++- name: Copy certificates in thehive conf dir ++ copy: ++ src: "{{ item }}" ++ dest: "/etc/thehive/{{ item }}" ++ mode: 0600 ++ with_items: ++ - "{{ inventory_hostname }}.crt" ++ - "{{ inventory_hostname }}.key" ++ - cacerts.jks ++ - "{{ca_cn}}.crt" ++ tags: ++ - start ++ ++- name: Get openid authkey ++ set_fact: ++ thehivesecret: "{{lookup('file', 'files/thehivesecret',convert_data=False) | from_json }}" ++ tags: ++ - start ++ ++ + - name: Configure TheHive + template: + src: application.conf.j2 +@@ -7,6 +41,14 @@ + tags: + - start + ++- name: Configure TheHive logging ++ copy: ++ src: logback.xml ++ dest: /etc/thehive/logback.xml ++ tags: ++ - start ++ ++ + - name: Start TheHive + command: > + daemonize +@@ -31,8 +73,15 @@ + tags: + - start + ++- name: Create TheHive users ++ include: createusers.yml ++ tags: ++ - createusers ++ - start ++ + - name: Stop TheHive + command: "pkill -SIGTERM -F /tmp/thehive.pid" + tags: + - stop ++ - stopthehive + +diff --git a/roles/thehive/templates/application.conf.j2 b/roles/thehive/templates/application.conf.j2 +index 6fa36eb..a92e4f7 100644 +--- a/roles/thehive/templates/application.conf.j2 ++++ b/roles/thehive/templates/application.conf.j2 +@@ -13,7 +13,7 @@ db.janusgraph { + ## Cassandra configuration + # More information at https://docs.janusgraph.org/basics/configuration-reference/#storagecql + backend: cql +- hostname: ["{{groups['cassandra'][0]}}.{{soctools_netname}}"] ++ hostname: ["{{groups['cassandra'][0]}}.{{soctools_netname}}:9042"] + # Cassandra authentication (if configured) + // username: "thehive" + // password: "password" +@@ -47,17 +47,61 @@ storage { + + ## Authentication configuration + # More information at https://github.com/TheHive-Project/TheHiveDocs/TheHive4/Administration/Authentication.md +-//auth { +-// providers: [ ++auth { ++ providers: [ + // {name: session} # required ! + // {name: basic, realm: thehive} + // {name: local} + // {name: key} +-// ] ++ {name: session} # required ! ++ {name: basic, realm: thehive} ++ {name: local} ++ {name: key} ++ { ++ name: oauth2 ++ clientId: "dsoclab-thehive" ++ clientSecret: {{thehivesecret.value}} ++ redirectUri: "https://{{dslproxy}}:9000/api/ssoLogin" ++ responseType: "code" ++ grantType: "authorization_code" ++ authorizationUrl: "https://{{dslproxy}}:12443/auth/realms/{{openid_realm}}/protocol/openid-connect/auth" ++ authorizationHeader: "Bearer" ++ tokenUrl: "https://{{dslproxy}}:12443/auth/realms/{{openid_realm}}/protocol/openid-connect/token" ++ userUrl: "https://{{dslproxy}}:12443/auth/realms/{{openid_realm}}/protocol/openid-connect/userinfo" ++// scope: ["openid", "email"] ++ scope: ["openid"] ++ userIdField: "email" ++// userIdField: "name" ++ } ++ ] ++ sso { ++ autocreate: true ++ autoupdate: true ++ autologin: true ++ mapper: "simple" ++// attributes { ++// login: "login" ++// name: "name" ++// roles: "role" ++// } ++ defaultRoles: ["read", "write", "admin"] ++ defaultOrganization: "uninett.no" ++// defaultOrganization: "demo" ++ } ++ ws.ssl.trustManager { ++ stores = [ ++ { ++ type: "JKS" // JKS or PEM ++ path: "cacerts.jks" ++ password: "{{tspass}}" ++ } ++ ] ++ } + # The format of logins must be valid email address format. If the provided login doesn't contain `@` the following + # domain is automatically appended +-// defaultUserDomain: "thehive.local" +-//} ++ defaultUserDomain: "uninett.no" ++# defaultUserDomain: "thehive.local" ++} + + ## CORTEX configuration + # More information at https://github.com/TheHive-Project/TheHiveDocs/TheHive4/Administration/Connectors.md diff --git a/roles/build/files/cassandraDockerfile b/roles/build/files/cassandraDockerfile new file mode 100644 index 0000000..c1b7388 --- /dev/null +++ b/roles/build/files/cassandraDockerfile @@ -0,0 +1,35 @@ +FROM gn43-dsl/openjdk:7a20201004 + +USER root +#COPY cassandra.repo /etc/yum.repos.d/cassandra.repo +#COPY supervisord.conf /etc/supervisord.conf +#COPY start.sh /start.sh +RUN echo "[cassandra]" > /etc/yum.repos.d/cassandra.repo && \ + echo "name=Apache Cassandra" >> /etc/yum.repos.d/cassandra.repo && \ + echo "baseurl=https://downloads.apache.org/cassandra/redhat/311x/" >> /etc/yum.repos.d/cassandra.repo && \ + echo "gpgcheck=1" >> /etc/yum.repos.d/cassandra.repo && \ + echo "repo_gpgcheck=1" >> /etc/yum.repos.d/cassandra.repo && \ + echo "gpgkey=https://downloads.apache.org/cassandra/KEYS" >> /etc/yum.repos.d/cassandra.repo && \ + echo '#!/bin/bash' > /start.sh && \ + echo 'export CASSANDRA_HOME=/usr/share/cassandra' >> /start.sh && \ + echo 'export CASSANDRA_CONF=$CASSANDRA_HOME/conf' >> /start.sh && \ + echo 'export CASSANDRA_INCLUDE=$CASSANDRA_HOME/cassandra.in.sh' >> /start.sh && \ + echo 'log_file=/var/log/cassandra/cassandra.log' >> /start.sh && \ + echo 'pid_file=/var/run/cassandra/cassandra.pid' >> /start.sh && \ + echo 'lock_file=/var/lock/subsys/cassandra' >> /start.sh && \ + echo 'CASSANDRA_PROG=/usr/sbin/cassandra' >> /start.sh && \ + echo '' >> /start.sh && \ + echo '$CASSANDRA_PROG -p $pid_file > $log_file 2>&1' >> /start.sh && \ + yum install -y epel-release && \ + yum install -y cassandra supervisor && \ + mkdir /usr/share/cassandra/conf && \ + cp -a /etc/cassandra/conf/* /usr/share/cassandra/conf && \ + chown -R cassandra:cassandra /usr/share/cassandra && \ + chown -R cassandra:cassandra /var/lib/cassandra && \ + sed -i -e 's,/etc/cassandra,/usr/share/cassandra,g' /usr/share/cassandra/cassandra.in.sh && \ + chmod a+x /start.sh && \ + yum -y clean all +EXPOSE 7000 9042 +#ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"] +USER cassandra +# ENTRYPOINT ["/start.sh"] diff --git a/roles/build/files/cortexDockerfile b/roles/build/files/cortexDockerfile new file mode 100644 index 0000000..014cdf0 --- /dev/null +++ b/roles/build/files/cortexDockerfile @@ -0,0 +1,32 @@ +FROM gn43-dsl/openjdk:7a20201004 + +USER root +#COPY thehive.repo /etc/yum.repos.d/thehive.repo +#COPY supervisord.conf /etc/supervisord.conf +#COPY start.sh /start.sh +RUN echo "[thehive-project]" > /etc/yum.repos.d/thehive.repo && \ + echo "enabled=1" >> /etc/yum.repos.d/thehive.repo && \ + echo "priority=1" >> /etc/yum.repos.d/thehive.repo && \ + echo "name=TheHive-Project RPM repository" >> /etc/yum.repos.d/thehive.repo && \ + echo "baseurl=http://rpm.thehive-project.org/stable/noarch" >> /etc/yum.repos.d/thehive.repo && \ + echo "gpgcheck=1" >> /etc/yum.repos.d/thehive.repo && \ + yum install -y epel-release && \ + rpm --import https://raw.githubusercontent.com/TheHive-Project/TheHive/master/PGP-PUBLIC-KEY && \ + rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch && \ + yum install -y cortex supervisor daemonize vim net-tools telnet htop python3-pip.noarch git gcc python3-devel.x86_64 ssdeep-devel.x86_64 python3-wheel.noarch libexif-devel.x86_64 libexif.x86_64 perl-Image-ExifTool.noarch gcc-c++ whois && \ + rpm -Uvh https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-oss-6.8.13.rpm && \ + chown -R elasticsearch:elasticsearch /etc/elasticsearch && \ + mkdir -p /home/cortex && \ + chown -R cortex:cortex /home/cortex && \ + chown -R cortex:cortex /etc/cortex && \ + cd /opt && \ + git clone https://github.com/TheHive-Project/Cortex-Analyzers && \ + chown -R cortex:cortex /opt/Cortex-Analyzers && \ + cd /opt/Cortex-Analyzers && \ + for I in analyzers/*/requirements.txt; do LC_ALL=en_US.UTF-8 pip3 install --no-cache-dir -U -r $I || true; done && \ + for I in responders/*/requirements.txt; do LC_ALL=en_US.UTF-8 pip3 install --no-cache-dir -U -r $I || true; done && \ + yum -y clean all +EXPOSE 9001 +#ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"] +USER cortex +# ENTRYPOINT ["/start.sh"] diff --git a/roles/build/files/elasticDockerfile b/roles/build/files/elasticDockerfile new file mode 100644 index 0000000..dba4003 --- /dev/null +++ b/roles/build/files/elasticDockerfile @@ -0,0 +1,21 @@ +FROM gn43-dsl/openjdk:7a20201004 + +ENV PATH="/usr/share/elasticsearch/bin:${PATH}" + +RUN groupadd -g 1000 elasticsearch && \ + adduser -u 1000 -g 1000 -d /usr/share/elasticsearch elasticsearch + +WORKDIR /usr/share/elasticsearch + +RUN rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch && \ + rpm -Uvh https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-oss-7.4.2-no-jdk-x86_64.rpm && \ + cp -a /etc/elasticsearch/ /usr/share/elasticsearch/config/ && \ + chown -R elasticsearch /usr/share/elasticsearch/config && \ + mkdir -p /usr/share/elasticsearch/data && \ + chown -R elasticsearch /usr/share/elasticsearch/data && \ + sed -i -e 's,ES_PATH_CONF=/etc/elasticsearch,ES_PATH_CONF=/usr/share/elasticsearch/config,g' /etc/sysconfig/elasticsearch + +EXPOSE 9200 9300 +USER elasticsearch +ENTRYPOINT ["/bin/bash"] + diff --git a/roles/build/files/haproxyDockerfile b/roles/build/files/haproxyDockerfile new file mode 100644 index 0000000..f36d8f4 --- /dev/null +++ b/roles/build/files/haproxyDockerfile @@ -0,0 +1,71 @@ +FROM gn43-dsl/centos:7a20201004 + +ENV HAPROXY_VERSION 2.2.3 +ENV HAPROXY_URL https://www.haproxy.org/download/2.2/src/haproxy-2.2.3.tar.gz +ENV HAPROXY_SHA256 7209db363d4dbecb21133f37b01048df666aebc14ff543525dbea79be202064e +ENV OPENSSL_VERSION=1.0.2u + + +# see https://sources.debian.net/src/haproxy/jessie/debian/rules/ for some helpful navigation of the possible "make" arguments +RUN \ + yum install -y epel-release && \ + yum update -y && \ + `# Install build tools. Note: perl needed to compile openssl...` \ + yum install -y \ + inotify-tools \ + wget \ + tar \ + gzip \ + make \ + gcc \ + perl \ + pcre-devel \ + zlib-devel \ + iptables \ + pcre2-devel \ + daemonize \ + pth-devel && \ + `# Install newest openssl...` \ + wget -O /tmp/openssl.tgz https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz && \ + tar -zxf /tmp/openssl.tgz -C /tmp && \ + cd /tmp/openssl-* && \ + ./config --prefix=/usr \ + --openssldir=/etc/ssl \ + --libdir=lib \ + no-shared zlib-dynamic && \ + make -j$(getconf _NPROCESSORS_ONLN) V= && make install_sw && \ + cd && rm -rf /tmp/openssl* && \ + `# Install HAProxy...` \ + && wget -O haproxy.tar.gz "$HAPROXY_URL" \ + && echo "$HAPROXY_SHA256 *haproxy.tar.gz" | sha256sum -c \ + && mkdir -p /usr/src/haproxy \ + && tar -xzf haproxy.tar.gz -C /usr/src/haproxy --strip-components=1 \ + && rm haproxy.tar.gz \ + \ + && makeOpts=' \ + TARGET=linux-glibc \ + USE_GETADDRINFO=1 \ + USE_OPENSSL=1 \ + USE_PCRE2=1 USE_PCRE2_JIT=1 \ + USE_ZLIB=1 \ + \ + EXTRA_OBJS=" \ +# see https://github.com/docker-library/haproxy/issues/94#issuecomment-505673353 for more details about prometheus support + contrib/prometheus-exporter/service-prometheus.o \ + " \ + ' \ + && nproc="$(nproc)" \ + && eval "make -C /usr/src/haproxy -j '$nproc' all $makeOpts" \ + && eval "make -C /usr/src/haproxy install-bin $makeOpts" \ + \ + && mkdir -p /usr/local/etc/haproxy \ + && cp -R /usr/src/haproxy/examples/errorfiles /usr/local/etc/haproxy/errors \ + && rm -rf /usr/src/haproxy + +ENTRYPOINT ["/bin/bash"] + +# https://www.haproxy.org/download/1.8/doc/management.txt +# "4. Stopping and restarting HAProxy" +# "when the SIGTERM signal is sent to the haproxy process, it immediately quits and all established connections are closed" +# "graceful stop is triggered when the SIGUSR1 signal is sent to the haproxy process" +STOPSIGNAL SIGUSR1 diff --git a/roles/build/files/keycloakDockerfile b/roles/build/files/keycloakDockerfile new file mode 100644 index 0000000..ba6e7c1 --- /dev/null +++ b/roles/build/files/keycloakDockerfile @@ -0,0 +1,41 @@ +FROM gn43-dsl/openjdk:7a20201004 + +ENV KEYCLOAK_VERSION 10.0.1 +ENV JDBC_POSTGRES_VERSION 42.2.5 +ENV JBOSS_HOME /opt/jboss/keycloak + +ARG KEYCLOAK_DIST=https://downloads.jboss.org/keycloak/$KEYCLOAK_VERSION/keycloak-$KEYCLOAK_VERSION.tar.gz + +USER root + +#ADD //root/ansible-soctools-scm-uninett-no/soctools-buildtest-20201022/roles/build/templates/keycloak/keycloak-tools /opt/jboss/tools +ADD keycloak-tools /opt/jboss/tools +#ADD ../templates/keycloak/keycloak-tools /opt/jboss/tools +RUN yum -y install openssl && yum -y clean all && \ + mkdir -p /opt/jboss/ && cd /opt/jboss/ && \ + curl -L $KEYCLOAK_DIST | tar zx && \ + mv /opt/jboss/keycloak-* /opt/jboss/keycloak && \ + mkdir -p /opt/jboss/keycloak/modules/system/layers/base/org/postgresql/jdbc/main && \ + cd /opt/jboss/keycloak/modules/system/layers/base/org/postgresql/jdbc/main && \ + curl -L https://repo1.maven.org/maven2/org/postgresql/postgresql/$JDBC_POSTGRES_VERSION/postgresql-$JDBC_POSTGRES_VERSION.jar > postgres-jdbc.jar && \ + cp /opt/jboss/tools/databases/postgres/module.xml . && \ + cd /opt/jboss/keycloak && \ + bin/jboss-cli.sh --file=/opt/jboss/tools/cli/standalone-configuration.cli && \ + rm -rf /opt/jboss/keycloak/standalone/configuration/standalone_xml_history && \ + rm -rf /opt/jboss/keycloak/standalone/tmp/auth && \ + rm -rf /opt/jboss/keycloak/domain/tmp/auth && \ + adduser -u 1000 -g 0 -d /opt/jboss jboss && \ + chown -R jboss:root /opt/jboss && \ + chmod -R g+rwX /opt/jboss && \ + mkdir -p /etc/x509/{https,ca} && chown -R jboss:root /etc/x509/{https,ca} + +ENV PATH="/opt/jboss/keycloak/bin:${PATH}" + +WORKDIR /opt/jboss/keycloak + +EXPOSE 8080 +EXPOSE 8443 + +USER jboss +ENTRYPOINT ["/bin/bash"] + diff --git a/roles/build/files/kibanaDockerfile b/roles/build/files/kibanaDockerfile new file mode 100644 index 0000000..0f137e0 --- /dev/null +++ b/roles/build/files/kibanaDockerfile @@ -0,0 +1,18 @@ +FROM gn43-dsl/centos:7a20201004 + +ENV PATH="/usr/share/kibana/bin:${PATH}" + +RUN groupadd -g 1000 kibana && \ + adduser -u 1000 -g 1000 -d /usr/share/kibana kibana + +WORKDIR /usr/share/kibana + +RUN rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch && \ + rpm -Uvh https://artifacts.elastic.co/downloads/kibana/kibana-oss-7.4.2-x86_64.rpm && \ + cp -a /etc/kibana/ /usr/share/kibana/config/ && \ + chown -R kibana /usr/share/kibana/config/ + +EXPOSE 5601 +USER kibana +ENTRYPOINT ["/bin/bash"] + diff --git a/roles/build/files/mispDockerfile b/roles/build/files/mispDockerfile new file mode 100644 index 0000000..26f09fb --- /dev/null +++ b/roles/build/files/mispDockerfile @@ -0,0 +1,84 @@ +FROM gn43-dsl/centos:7a20201004 + +USER root +RUN yum install -y epel-release centos-release-scl scl-utils ; \ + yum install -y gcc git zip openssl supervisor rh-git218 httpd24 mod_ssl mod_auth_openidc rh-redis32 libxslt-devel zlib-devel libcaca-devel ssdeep-devel rh-php72 rh-php72-php-fpm rh-php72-php-devel rh-php72-php-mysqlnd rh-php72-php-mbstring rh-php72-php-xml rh-php72-php-bcmath rh-php72-php-opcache rh-php72-php-gd mariadb devtoolset-7 make cmake3 cppcheck libcxx-devel gpgme-devel openjpeg-devel gcc gcc-c++ poppler-cpp-devel pkgconfig python-devel redhat-rpm-config rubygem-rouge rubygem-asciidoctor zbar-devel opencv-devel wget screen rh-python36-mod_wsgi postfix curl make cmake python3 python3-devel python3-pip python3-yara python3-wheel python3-redis python3-zmq python3-setuptools redis sudo vim zip sqlite moreutils rng-tools libxml2-devel libxslt-devel zlib-devel libpqxx openjpeg2-devel ssdeep-devel ruby asciidoctor tesseract ImageMagick poppler-cpp-devel python36-virtualenv opencv-devel zbar zbar-devel ; \ + yum -y clean all ; \ + sed -i "s/max_execution_time = 30/max_execution_time = 300/" /etc/opt/rh/rh-php72/php.ini ; \ + sed -i "s/memory_limit = 128M/memory_limit = 2048M/" /etc/opt/rh/rh-php72/php.ini ; \ + sed -i "s/upload_max_filesize = 2M/upload_max_filesize = 50M/" /etc/opt/rh/rh-php72/php.ini ; \ + sed -i "s/post_max_size = 8M/post_max_size = 50M/" /etc/opt/rh/rh-php72/php.ini ; \ + mkdir -p /var/www/MISP ; \ + chown -R apache:apache /var/www/MISP + +USER apache +WORKDIR /var/www/MISP +RUN git clone https://github.com/MISP/MISP.git /var/www/MISP ; \ + git submodule update --init --recursive ; \ + git submodule foreach --recursive git config core.filemode false ; \ + git config core.filemode false + +USER root +RUN pip3 install --upgrade pip ; \ + pip3 install git+https://github.com/CybOXProject/mixbox.git ; \ + pip3 install git+https://github.com/CybOXProject/python-cybox.git ; \ + pip3 install git+https://github.com/STIXProject/python-stix.git ; \ + pip3 install git+https://github.com/MAECProject/python-maec.git ; \ + pip3 install /var/www/MISP/cti-python-stix2 ; \ + pip3 install /var/www/MISP/PyMISP ; \ + pip3 install git+https://github.com/kbandla/pydeep.git ; \ + pip3 install https://github.com/lief-project/packages/raw/lief-master-latest/pylief-0.9.0.dev.zip ; \ + pip3 install jsonschema ; \ + pip3 install reportlab ; \ + pip3 install python-magic ; \ + pip3 install pyzmq ; \ + pip3 install redis + +USER apache +WORKDIR /var/www/MISP +RUN git submodule init ; \ + git submodule update + +USER root +WORKDIR /usr/local/src +RUN git clone https://github.com/MISP/misp-modules.git +WORKDIR /usr/local/src/misp-modules +RUN git checkout ; \ + # sudo pip3 install -I -r REQUIREMENTS ; \ + LANG=en_US.UTF-8 pip3 install -I -r REQUIREMENTS; \ + pip3 install -I . ; \ + mkdir /var/www/.composer && chown -R apache:apache /var/www/.composer ; \ + cd /tmp ; \ + wget https://github.com/ssdeep-project/ssdeep/releases/download/release-2.14.1/ssdeep-2.14.1.tar.gz ; \ + tar zxvf ssdeep-2.14.1.tar.gz && cd ssdeep-2.14.1 && ./configure && make && make install ; \ + /usr/bin/scl enable rh-php72 "pecl install ssdeep" ; \ + echo "extension=ssdeep.so" > /etc/opt/rh/rh-php72/php.d/88-ssdeep.ini ; \ + cd + +USER apache +WORKDIR /var/www/MISP/app +RUN wget https://getcomposer.org/download/1.2.1/composer.phar -O composer.phar ; \ + COMPOSER_CACHE_DIR=/var/www/.composer /usr/bin/scl enable rh-php72 "php composer.phar require kamisama/cake-resque:4.1.2" ; \ + COMPOSER_CACHE_DIR=/var/www/.composer /usr/bin/scl enable rh-php72 "php composer.phar config vendor-dir Vendor" ; \ + COMPOSER_CACHE_DIR=/var/www/.composer /usr/bin/scl enable rh-php72 "php composer.phar install" ; \ + sed -i -e "s/bind 127.0.0.1/bind 0.0.0.0/" /etc/redis.conf ; \ + cp -fa /var/www/MISP/INSTALL/setup/config.php /var/www/MISP/app/Plugin/CakeResque/Config/config.php ; \ + cp -a /var/www/MISP/app/Config/bootstrap.default.php /var/www/MISP/app/Config/bootstrap.php ; \ + cp -a /var/www/MISP/app/Config/database.default.php /var/www/MISP/app/Config/database.php ; \ + cp -a /var/www/MISP/app/Config/core.default.php /var/www/MISP/app/Config/core.php ; \ + cp -a /var/www/MISP/app/Config/config.default.php /var/www/MISP/app/Config/config.php + +USER root +COPY mispstart.sh /var/www/MISP/app/Console/worker/start.sh +RUN chown -R apache:apache /var/www/MISP ; \ + chmod -R 750 /var/www/MISP ; \ + chmod -R g+ws /var/www/MISP/app/tmp ; \ + chmod -R g+ws /var/www/MISP/app/files ; \ + chmod -R g+ws /var/www/MISP/app/files/scripts/tmp + +# 80/443 - MISP web server, 3306 - mysql, 6379 - redis, 6666 - MISP modules, 50000 - MISP ZeroMQ +EXPOSE 80 443 6443 6379 6666 50000 + +COPY mispsupervisord.conf /etc/supervisord.conf +#ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"] + diff --git a/roles/build/files/mispstart.sh b/roles/build/files/mispstart.sh new file mode 100644 index 0000000..d6a5fc0 --- /dev/null +++ b/roles/build/files/mispstart.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash +#dockerfile from ansible + +# Check if run as root +if [ "$EUID" -eq 0 ]; then + echo "Please DO NOT run the worker script as root" + exit 1 +fi + +PATH_TO_MISP='/var/www/MISP' +RUN_PHP="/usr/bin/scl enable rh-php72" +PHP_INI="/etc/opt/rh/rh-php72/php.ini" +CAKE="${PATH_TO_MISP}/app/Console/cake" + +# Extract base directory where this script is and cd into it +cd "${0%/*}" +$RUN_PHP -- $CAKE CakeResque.CakeResque stop --all +$RUN_PHP -- $CAKE CakeResque.CakeResque start --interval 5 --queue default +$RUN_PHP -- $CAKE CakeResque.CakeResque start --interval 5 --queue prio +$RUN_PHP -- $CAKE CakeResque.CakeResque start --interval 5 --queue cache +$RUN_PHP -- $CAKE CakeResque.CakeResque start --interval 5 --queue email +$RUN_PHP -- $CAKE CakeResque.CakeResque start --interval 5 --queue update +$RUN_PHP -- $CAKE CakeResque.CakeResque startscheduler --interval 5 + +exit 0 diff --git a/roles/build/files/mispsupervisord.conf b/roles/build/files/mispsupervisord.conf new file mode 100644 index 0000000..fbd4dea --- /dev/null +++ b/roles/build/files/mispsupervisord.conf @@ -0,0 +1,25 @@ +[supervisord] +nodaemon=false +user=root + +[program:php-fpm] +# EnvironmentFile=/etc/opt/rh/rh-php72/sysconfig/php-fpm +command=/opt/rh/rh-php72/root/usr/sbin/php-fpm --nodaemonize + +[program:redis-server] +process_name = redis-server +directory = /var/opt/rh/rh-redis32/lib/redis/ +command=/opt/rh/rh-redis32/root/usr/bin/redis-server /etc/opt/rh/rh-redis32/redis.conf +user=redis + +[program:apache2] +command=/usr/sbin/httpd -DFOREGROUND + +[program:misp-modules] +command=/bin/bash -c "/usr/local/bin/misp-modules -l '0.0.0.0' -s" +user = apache +startsecs = 0 + +[program:workers] +command=/bin/bash /var/www/MISP/app/Console/worker/start.sh +user=apache diff --git a/roles/build/files/mysqlDockerfile b/roles/build/files/mysqlDockerfile new file mode 100644 index 0000000..7c547b1 --- /dev/null +++ b/roles/build/files/mysqlDockerfile @@ -0,0 +1,13 @@ +FROM gn43-dsl/centos:7a20201004 + +USER root +RUN yum -y update && yum install -y epel-release centos-release-scl scl-utils && \ + yum install -y rh-mariadb103 python36-PyMySQL MySQL-python supervisor && \ + /usr/bin/scl enable rh-mariadb103 -- /opt/rh/rh-mariadb103/root/usr/libexec/mysql-prepare-db-dir /var/opt/rh/rh-mariadb103/lib/mysql +RUN yum clean all + +EXPOSE 3306 +COPY mysqlsupervisord.conf /etc/supervisord.conf + +ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"] + diff --git a/roles/build/files/mysqlsupervisord.conf b/roles/build/files/mysqlsupervisord.conf new file mode 100644 index 0000000..e44e9fe --- /dev/null +++ b/roles/build/files/mysqlsupervisord.conf @@ -0,0 +1,7 @@ +[supervisord] +loglevel=debug +nodaemon=true +[program:mysql] +user=mysql +directory=/var/lib/mysql +command=/opt/rh/rh-mariadb103/root/usr/libexec/mysqld-scl-helper enable rh-mariadb103 -- /opt/rh/rh-mariadb103/root/usr/libexec/mysqld --basedir=/opt/rh/rh-mariadb103/root/usr diff --git a/roles/build/files/nifiDockerfile b/roles/build/files/nifiDockerfile new file mode 100644 index 0000000..c3ef342 --- /dev/null +++ b/roles/build/files/nifiDockerfile @@ -0,0 +1,97 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +FROM gn43-dsl/openjdk:7a20201004 +#LABEL maintainer="Apache NiFi <dev@nifi.apache.org>" +#LABEL site="https://nifi.apache.org" + +ARG UID=1000 +ARG GID=1000 +ARG NIFI_VERSION=1.11.4 +ARG BASE_URL=https://archive.apache.org/dist +ARG MIRROR_BASE_URL=${MIRROR_BASE_URL:-${BASE_URL}} +ARG NIFI_BINARY_PATH=${NIFI_BINARY_PATH:-/nifi/${NIFI_VERSION}/nifi-${NIFI_VERSION}-bin.zip} +ARG NIFI_TOOLKIT_BINARY_PATH=${NIFI_TOOLKIT_BINARY_PATH:-/nifi/${NIFI_VERSION}/nifi-toolkit-${NIFI_VERSION}-bin.zip} + +ENV NIFI_BASE_DIR=/opt/nifi +ENV NIFI_HOME ${NIFI_BASE_DIR}/nifi-current +ENV NIFI_TOOLKIT_HOME ${NIFI_BASE_DIR}/nifi-toolkit-current + +ENV NIFI_PID_DIR=${NIFI_HOME}/run +ENV NIFI_LOG_DIR=${NIFI_HOME}/logs + +# ADD sh/ ${NIFI_BASE_DIR}/scripts/ + +# Setup NiFi user and create necessary directories +RUN groupadd -g ${GID} nifi || groupmod -n nifi `getent group ${GID} | cut -d: -f1` \ + && useradd --shell /bin/bash -u ${UID} -g ${GID} -m nifi \ + && mkdir -p ${NIFI_BASE_DIR} \ + && chown -R nifi:nifi ${NIFI_BASE_DIR} \ + && yum -y install jq xmlstarlet procps-ng + +USER nifi + +# Download, validate, and expand Apache NiFi Toolkit binary. +RUN curl -fSL ${MIRROR_BASE_URL}/${NIFI_TOOLKIT_BINARY_PATH} -o ${NIFI_BASE_DIR}/nifi-toolkit-${NIFI_VERSION}-bin.zip \ + && echo "$(curl ${BASE_URL}/${NIFI_TOOLKIT_BINARY_PATH}.sha256) *${NIFI_BASE_DIR}/nifi-toolkit-${NIFI_VERSION}-bin.zip" | sha256sum -c - \ + && unzip ${NIFI_BASE_DIR}/nifi-toolkit-${NIFI_VERSION}-bin.zip -d ${NIFI_BASE_DIR} \ + && rm ${NIFI_BASE_DIR}/nifi-toolkit-${NIFI_VERSION}-bin.zip \ + && mv ${NIFI_BASE_DIR}/nifi-toolkit-${NIFI_VERSION} ${NIFI_TOOLKIT_HOME} \ + && ln -s ${NIFI_TOOLKIT_HOME} ${NIFI_BASE_DIR}/nifi-toolkit-${NIFI_VERSION} + +# Download, validate, and expand Apache NiFi binary. +RUN curl -fSL ${MIRROR_BASE_URL}/${NIFI_BINARY_PATH} -o ${NIFI_BASE_DIR}/nifi-${NIFI_VERSION}-bin.zip \ + && echo "$(curl ${BASE_URL}/${NIFI_BINARY_PATH}.sha256) *${NIFI_BASE_DIR}/nifi-${NIFI_VERSION}-bin.zip" | sha256sum -c - \ + && unzip ${NIFI_BASE_DIR}/nifi-${NIFI_VERSION}-bin.zip -d ${NIFI_BASE_DIR} \ + && rm ${NIFI_BASE_DIR}/nifi-${NIFI_VERSION}-bin.zip \ + && mv ${NIFI_BASE_DIR}/nifi-${NIFI_VERSION} ${NIFI_HOME} \ + && mkdir -p ${NIFI_HOME}/conf \ + && mkdir -p ${NIFI_HOME}/database_repository \ + && mkdir -p ${NIFI_HOME}/flowfile_repository \ + && mkdir -p ${NIFI_HOME}/content_repository \ + && mkdir -p ${NIFI_HOME}/provenance_repository \ + && mkdir -p ${NIFI_HOME}/state \ + && mkdir -p ${NIFI_LOG_DIR} \ + && ln -s ${NIFI_HOME} ${NIFI_BASE_DIR}/nifi-${NIFI_VERSION} + +#VOLUME ${NIFI_LOG_DIR} \ +# ${NIFI_HOME}/conf \ +# ${NIFI_HOME}/database_repository \ +# ${NIFI_HOME}/flowfile_repository \ +# ${NIFI_HOME}/content_repository \ +# ${NIFI_HOME}/provenance_repository \ +# ${NIFI_HOME}/state + +# Clear nifi-env.sh in favour of configuring all environment variables in the Dockerfile +RUN echo "#!/bin/sh\n" > $NIFI_HOME/bin/nifi-env.sh + +# Web HTTP(s) & Socket Site-to-Site Ports +EXPOSE 8080 8443 10000 8000 + +WORKDIR ${NIFI_HOME} + +# Apply configuration and start NiFi +# +# We need to use the exec form to avoid running our command in a subshell and omitting signals, +# thus being unable to shut down gracefully: +# https://docs.docker.com/engine/reference/builder/#entrypoint +# +# Also we need to use relative path, because the exec form does not invoke a command shell, +# thus normal shell processing does not happen: +# https://docs.docker.com/engine/reference/builder/#exec-form-entrypoint-example +ENTRYPOINT ["/bin/bash"] diff --git a/roles/build/files/odfeesDockerfile b/roles/build/files/odfeesDockerfile new file mode 100644 index 0000000..fedbee1 --- /dev/null +++ b/roles/build/files/odfeesDockerfile @@ -0,0 +1,16 @@ +FROM gn43-dsl/elasticsearch:7a20201004 + +ENV PATH="/usr/share/elasticsearch/bin:${PATH}" + +USER root +WORKDIR /usr/share/elasticsearch + +RUN for PLUGIN in \ + https://d3g5vo6xdbdb9a.cloudfront.net/downloads/elasticsearch-plugins/opendistro-security/opendistro_security-1.4.0.0.zip \ + https://d3g5vo6xdbdb9a.cloudfront.net/downloads/elasticsearch-plugins/opendistro-alerting/opendistro_alerting-1.4.0.0.zip \ + https://d3g5vo6xdbdb9a.cloudfront.net/downloads/elasticsearch-plugins/opendistro-sql/opendistro_sql-1.4.0.0.zip; \ + do bin/elasticsearch-plugin install -b ${PLUGIN}; done && \ + chown -R elasticsearch plugins/opendistro_security + +USER elasticsearch + diff --git a/roles/build/files/odfekibanaDockerfile b/roles/build/files/odfekibanaDockerfile new file mode 100644 index 0000000..1945e27 --- /dev/null +++ b/roles/build/files/odfekibanaDockerfile @@ -0,0 +1,18 @@ +FROM gn43-dsl/kibana:7a20201004 + +ENV PATH="/usr/share/kibana/bin:${PATH}" + +USER root +WORKDIR /usr/share/kibana + +RUN for PLUGIN in \ + https://d3g5vo6xdbdb9a.cloudfront.net/downloads/kibana-plugins/opendistro-security/opendistro_security_kibana_plugin-1.4.0.0.zip \ + https://d3g5vo6xdbdb9a.cloudfront.net/downloads/kibana-plugins/opendistro-alerting/opendistro-alerting-1.4.0.0.zip \ + https://d3g5vo6xdbdb9a.cloudfront.net/downloads/kibana-plugins/opendistro-index-management/opendistro_index_management_kibana-1.4.0.0.zip; \ + do bin/kibana-plugin install --allow-root ${PLUGIN}; done + +ADD thehive_button /usr/share/kibana/plugins/thehive_button +RUN chown -R kibana:kibana /usr/share/kibana/plugins/thehive_button + +USER kibana + diff --git a/roles/build/files/openjdkDockerfile b/roles/build/files/openjdkDockerfile new file mode 100644 index 0000000..2d83f47 --- /dev/null +++ b/roles/build/files/openjdkDockerfile @@ -0,0 +1,11 @@ +FROM gn43-dsl/centos:7a20201004 + +RUN yum update -y; \ + yum install -y wget unzip curl java-1.8.0-openjdk-headless.x86_64 + +RUN ln -svT "/usr/lib/jvm/java-1.8.0-openjdk-$(rpm -q --queryformat "%{VERSION}-%{RELEASE}.%{ARCH}\n" java-1.8.0-openjdk-headless)" /docker-java-home +ENV JAVA_HOME /docker-java-home/jre + +RUN yum clean all + +CMD ["/bin/bash"] diff --git a/roles/build/files/thehiveDockerfile b/roles/build/files/thehiveDockerfile new file mode 100644 index 0000000..ce8ddb8 --- /dev/null +++ b/roles/build/files/thehiveDockerfile @@ -0,0 +1,24 @@ +FROM gn43-dsl/openjdk:7a20201004 + +USER root +#COPY thehive.repo /etc/yum.repos.d/thehive.repo +#COPY supervisord.conf /etc/supervisord.conf +#COPY start.sh /start.sh +RUN echo "[thehive-project]" > /etc/yum.repos.d/thehive.repo && \ + echo "enabled=1" >> /etc/yum.repos.d/thehive.repo && \ + echo "priority=1" >> /etc/yum.repos.d/thehive.repo && \ + echo "name=TheHive-Project RPM repository" >> /etc/yum.repos.d/thehive.repo && \ + echo "baseurl=http://rpm.thehive-project.org/stable/noarch" >> /etc/yum.repos.d/thehive.repo && \ + echo "gpgcheck=1" >> /etc/yum.repos.d/thehive.repo && \ + yum install -y epel-release && \ + rpm --import https://raw.githubusercontent.com/TheHive-Project/TheHive/master/PGP-PUBLIC-KEY && \ + yum install -y thehive4 supervisor daemonize vim net-tools telnet htop && \ + mkdir -p /opt/thp_data/files/thehive && \ + chown -R thehive:thehive /opt/thp_data/files/thehive && \ + mkdir -p /home/thehive && \ + chown -R thehive:thehive /home/thehive /etc/thehive && \ + yum -y clean all +EXPOSE 9000 +#ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"] +USER thehive +# ENTRYPOINT ["/start.sh"] diff --git a/roles/build/files/thehive_button/.eslintrc b/roles/build/files/thehive_button/.eslintrc new file mode 100644 index 0000000..64eba86 --- /dev/null +++ b/roles/build/files/thehive_button/.eslintrc @@ -0,0 +1,7 @@ +--- +extends: "@elastic/kibana" + +settings: + import/resolver: + '@elastic/eslint-import-resolver-kibana': + rootPackageName: 'thehive_button' diff --git a/roles/build/files/thehive_button/.kibana-plugin-helpers.json b/roles/build/files/thehive_button/.kibana-plugin-helpers.json new file mode 100644 index 0000000..2c63c08 --- /dev/null +++ b/roles/build/files/thehive_button/.kibana-plugin-helpers.json @@ -0,0 +1,2 @@ +{ +} diff --git a/roles/build/files/thehive_button/index.js b/roles/build/files/thehive_button/index.js new file mode 100644 index 0000000..fa69c75 --- /dev/null +++ b/roles/build/files/thehive_button/index.js @@ -0,0 +1,19 @@ +import newCaseRoute from './server/routes/newcase'; + +export default function (kibana) { + return new kibana.Plugin({ + require: [], //['elasticsearch'], + name: 'thehive_button', + uiExports: { + visTypes: [ + 'plugins/thehive_button/main', + ], + }, + + init(server, options) { // eslint-disable-line no-unused-vars + // Add server routes and initialize the plugin here + newCaseRoute(server); + } + }); +} + diff --git a/roles/build/files/thehive_button/package.json b/roles/build/files/thehive_button/package.json new file mode 100644 index 0000000..e1c070d --- /dev/null +++ b/roles/build/files/thehive_button/package.json @@ -0,0 +1,35 @@ +{ + "name": "thehive_button", + "version": "1.0.0", + "description": "Visualisation plugin which creates a simple button to create a new case in The Hive.", + "main": "index.js", + "kibana": { + "version": "7.4.2" + }, + "scripts": { + "lint": "eslint .", + "start": "plugin-helpers start", + "build": "plugin-helpers build" + }, + "dependencies": { + "request": "^2.88.0", + "@elastic/eui": "10.4.2", + "react": "^16.8.0" + }, + "devDependencies": { + "@elastic/eslint-config-kibana": "link:../../packages/eslint-config-kibana", + "@elastic/eslint-import-resolver-kibana": "link:../../packages/kbn-eslint-import-resolver-kibana", + "@kbn/plugin-helpers": "link:../../packages/kbn-plugin-helpers", + "babel-eslint": "^9.0.0", + "eslint": "^5.6.0", + "eslint-plugin-babel": "^5.2.0", + "eslint-plugin-import": "^2.14.0", + "eslint-plugin-jest": "^21.26.2", + "eslint-plugin-jsx-a11y": "^6.1.2", + "eslint-plugin-mocha": "^5.2.0", + "eslint-plugin-no-unsanitized": "^3.0.2", + "eslint-plugin-prefer-object-spread": "^1.2.1", + "eslint-plugin-react": "^7.11.1", + "expect.js": "^0.3.1" + } +} diff --git a/roles/build/files/thehive_button/public/create_case.js b/roles/build/files/thehive_button/public/create_case.js new file mode 100644 index 0000000..fc8edd6 --- /dev/null +++ b/roles/build/files/thehive_button/public/create_case.js @@ -0,0 +1,101 @@ +// Functions to send data to Kibana endpoints + +import chrome from 'ui/chrome'; + +// Create a new Case in The Hive via its API +// Return a Promise which resolves to object with ID of the new case ('id' attr) or error message ('error' attr) +export function createTheHiveCase(base_url, api_key, title, descr, severity, startDate, owner, flag, tlp, tags) { + // Prepare data + var data = JSON.stringify({ + "base_url": base_url, + "api_key": api_key, + "body": { + "title": title, + "description": descr, + "severity": severity, // number: 1=low, 2=medium, 3=high + "startDate": startDate, + "owner": owner, // user name the case will be assigned to + "flag": flag, // bool + "tlp": tlp, // number: 0=white, 1=green, 2=amber, 3=red + "tags": tags, // array of strings + } + }); + console.log("TheHiveButton: Sending request to API endpoint 'new_case':", data); + var kibana_endpoint_url = chrome.addBasePath('/api/thehive_button/new_case'); + + return new Promise(function (resolve, reject) { + // Create AJAX request + var xhr = new XMLHttpRequest(); + + // Listener to process reply + xhr.onreadystatechange = function () { + if (this.readyState != 4) { + return; // response not ready yet + } + if (this.status == 200) { + const resp = JSON.parse(this.responseText); + console.log("TheHiveButton: Response from backend:", resp); + if ("error" in resp) { + resolve({"error": resp.error}); + } + else if (resp.status_code != 201) { + resolve({"error": "Unexpected reply received from The Hive: [" + resp.status_code + "] " + resp.status_msg}); + } + else { + resolve({"id": resp.body.id}); // return ID of the new case + } + } + else { + console.log("TheHiveButton: Error " + this.status + ": " + this.statusText); + resolve({"error": "Error " + this.status + ": " + this.statusText}); + } + } + + // Send the AJAX request + xhr.open("POST", kibana_endpoint_url); + xhr.setRequestHeader("Content-Type", "application/json"); + xhr.setRequestHeader("kbn-xsrf", "thehive_plugin"); // this header must be set, although its content is probably irrelevant + xhr.send(data); + }); +} + +// Add observables to an existing Case in The Hive +// (send the list of observables to our backend endpoint, it pushes them to The Hive) +export function addCaseObservables(base_url, api_key, caseid, observables) { + const kibana_endpoint_url = chrome.addBasePath('/api/thehive_button/add_observables'); + const data = JSON.stringify({ + "base_url": base_url, + "api_key": api_key, + "caseid": caseid, + "observables": observables, + }); + console.log("TheHiveButton: Sending request to API endpoint 'add_observables':", data); + + return new Promise(function (resolve, reject) { + // Create AJAX request + var xhr = new XMLHttpRequest(); + + // Listener to process reply + xhr.onreadystatechange = function () { + if (this.readyState != 4) { + return; // response not ready yet + } + if (this.status == 200) { + const resp = JSON.parse(this.responseText); + console.log("TheHiveButton: Response from backend:", resp); + resolve(resp); + } + else { + console.log("TheHiveButton: Error " + this.status + ": " + this.statusText); + resolve({"error": "Error " + this.status + ": " + this.statusText}); + } + } + + // Send the AJAX request + xhr.open("POST", kibana_endpoint_url); + xhr.setRequestHeader("Content-Type", "application/json"); + xhr.setRequestHeader("kbn-xsrf", "thehive_plugin"); // this header must be set, although its content is probably irrelevant + xhr.send(data); + }); +} + diff --git a/roles/build/files/thehive_button/public/env.js b/roles/build/files/thehive_button/public/env.js new file mode 100644 index 0000000..4321b85 --- /dev/null +++ b/roles/build/files/thehive_button/public/env.js @@ -0,0 +1,4 @@ +// Default plugin configuration +export const THEHIVE_URL = 'https://hive.gn4-3-wp8-soc.sunet.se/'; +export const THEHIVE_API_KEY = '5LymseWiurZBrQN8Kqp8O+9KniTL5cE0'; +export const THEHIVE_OWNER = 'admin'; // default owner account of the created cases diff --git a/roles/build/files/thehive_button/public/main.js b/roles/build/files/thehive_button/public/main.js new file mode 100644 index 0000000..ee46d73 --- /dev/null +++ b/roles/build/files/thehive_button/public/main.js @@ -0,0 +1,54 @@ +import { THEHIVE_API_KEY, THEHIVE_URL, THEHIVE_OWNER } from './env'; +import { TheHiveButtonVisComponent } from './vis_controller'; +import { theHiveButtonRequestHandlerProvider } from './request_handler'; +import { optionsEditor } from './options_editor'; + +import { VisFactoryProvider } from 'ui/vis/vis_factory'; +import { VisTypesRegistryProvider } from 'ui/registry/vis_types'; +import { DefaultEditorSize } from 'ui/vis/editor_size'; + + +function TheHiveButtonVisProvider(Private) { + const VisFactory = Private(VisFactoryProvider); + + //console.log("default URL:", THEHIVE_URL); + //console.log("default API key:", THEHIVE_API_KEY); + + return VisFactory.createReactVisualization({ + name: 'thehive_button', + title: 'The Hive Case', + icon: 'alert', + description: 'A button to create a new Case in The Hive.', + //requiresUpdateStatus: [Status.PARAMS, Status.RESIZE, Status.UI_STATE], + visConfig: { + component: TheHiveButtonVisComponent, + defaults: { + // add default parameters + url: THEHIVE_URL, + apikey: THEHIVE_API_KEY, + owner: THEHIVE_OWNER, + obsFields: [], // list of objects, e.g. {name: "clientip", type: "ip", cnt: 100} + } + }, + //editor: 'default', + editorConfig: { + optionTabs: [ + { + name: "options", + title: "Options", + editor: optionsEditor, + } + ], + defaultSize: DefaultEditorSize.LARGE, + }, +// optionsTemplate: optionsEditor, //optionsTemplate, +// //enableAutoApply: true, +// }, + requestHandler: 'theHiveButtonRequestHandler', // own request handler + responseHandler: 'none', // pass data as returned by requestHandler + }); +} + +// register the provider with the visTypes registry +VisTypesRegistryProvider.register(TheHiveButtonVisProvider); + diff --git a/roles/build/files/thehive_button/public/options_editor.js b/roles/build/files/thehive_button/public/options_editor.js new file mode 100644 index 0000000..38762bd --- /dev/null +++ b/roles/build/files/thehive_button/public/options_editor.js @@ -0,0 +1,176 @@ +import React from 'react'; +import { + EuiForm, + EuiFormRow, + EuiTitle, + EuiSpacer, + EuiFieldText, + EuiFieldNumber, + EuiSelect, + EuiFlexGroup, + EuiFlexItem, + EuiButton, + EuiButtonIcon, +} from '@elastic/eui'; + +// Default data types in The Hive +const DEFAULT_THE_HIVE_TYPES = [ + '', + 'autonomous-system', + 'domain', + 'file', + 'filename', + 'fqdn', + 'hash', + 'ip', + 'mail', + 'mail_subject', + 'regexp', + 'registry', + 'uri_path', + 'url', + 'user-agent', + 'other', +]; + +// Options for EuiSelect for selection of field's data type in TheHive +const typesOptions = DEFAULT_THE_HIVE_TYPES.map( dt => ({value: dt, text: dt}) ); + +export function optionsEditor(props) { + //console.log("editor render(), props:", props); + const { stateParams, setValue, setValidity, vis } = props; + + // onClick/onChange handlers + const obsAddNew = () => { + const newObsFields = [...stateParams.obsFields, {name: "", type: "", cnt: 100}]; + // For some reason, first click on the button after editor is loaded does + // nothing. Calling setValue twice here fixes it. + setValue("obsFields", newObsFields); + setValue("obsFields", newObsFields); +// setValidity(false); // since new row is empty, form is always invalid + }; + const obsRemove = (ix) => { + let newArray = [...stateParams.obsFields]; + newArray.splice(ix, 1); + setValue("obsFields", newArray); +// validate(); + } + const obsSetName = (ix, name) => { + let newArray = [...stateParams.obsFields]; + newArray[ix].name = name; + setValue("obsFields", newArray); +// validate(); + } + const obsSetType = (ix, type) => { + let newArray = [...stateParams.obsFields]; + newArray[ix].type = type; + setValue("obsFields", newArray); +// validate(); + } + const obsSetCnt = (ix, cnt) => { + let newArray = [...stateParams.obsFields]; + newArray[ix].cnt = parseInt(cnt); + setValue("obsFields", newArray); +// validate(); + } +// const validate = () => { +// let valid = true; +// for (let field of stateParams.obsFields) { +// if (field.name == "" || field.type == "" || field.cnt == "") { +// valid = false; +// break; +// } +// } +// // TODO check for duplicate fields +// setValidity(valid); +// } + + // Get list of all fields in index (except those beginning with "_" or "@") + // and create "options" parameter for EuiSelect. + // Also, fields with "aggregatable=false" are removed, as they can't be used + // with "terms" aggregation we need. + // See this for details: https://www.elastic.co/guide/en/elasticsearch/reference/7.x/fielddata.html + // Empty field is added at the beginning, meaning "no selection yet". + const fieldOptions = [{value: "", text: ""}].concat( + vis.indexPattern.fields.raw.filter( f => (f.name[0] != "_" && f.name[0] != "@" && f.aggregatable) ).map( f => ({value: f.name, text: `${f.name} (${f.type})`}) ) + ); + + return <EuiForm> + <EuiFormRow fullWidth={true} label="Base URL of The Hive"> + <EuiFieldText + fullWidth={true} + value={stateParams.url} + onChange={e => setValue('url', e.target.value)} + isInvalid={stateParams.url == ""} + /> + </EuiFormRow> + <EuiFlexGroup> + <EuiFlexItem grow={1}> + <EuiFormRow label="API key to access The Hive" helpText="API key of a user with write permission."> + <EuiFieldText + fullWidth={true} + value={stateParams.apikey} + onChange={e => setValue('apikey', e.target.value)} + isInvalid={stateParams.apikey == ""} + /> + </EuiFormRow> + </EuiFlexItem> + <EuiFlexItem grow={1}> + <EuiFormRow label="Assignee" helpText="User to assign created cases to. Must be a valid username from The Hive instance."> + <EuiFieldText + value={stateParams.owner} + onChange={e => setValue('owner', e.target.value)} + isInvalid={stateParams.owner == ""} + /> + </EuiFormRow> + </EuiFlexItem> + </EuiFlexGroup> + <EuiTitle size="s"><h3>Fields to get potential observables from ...</h3></EuiTitle> + <EuiSpacer size="s" /> + {stateParams.obsFields.map( (field, ix) => ( + <EuiFlexGroup key={ix} gutterSize="s"> + <EuiFlexItem grow={3}> + <EuiFormRow label="Field name"> + <EuiSelect + options={fieldOptions} + value={field.name} + onChange={ e => obsSetName(ix, e.target.value) } + isInvalid={field.name == ""} + /> + </EuiFormRow> + </EuiFlexItem> + <EuiFlexItem grow={2}> + <EuiFormRow label="Data type in The Hive"> + <EuiSelect + options={typesOptions} + value={field.type} + onChange={ e => obsSetType(ix, e.target.value) } + isInvalid={field.type == ""} + /> + </EuiFormRow> + </EuiFlexItem> + <EuiFlexItem grow={1}> + <EuiFormRow label="Max items shown"> + <EuiFieldNumber + min={1} + max={1000} + value={parseInt(field.cnt)} + onChange={ e => obsSetCnt(ix, e.target.value) } + isInvalid={!(field.cnt > 0)} + /> + </EuiFormRow> + </EuiFlexItem> + <EuiFlexItem grow={false}> + <EuiFormRow hasEmptyLabelSpace> + <EuiButtonIcon iconType="trash" iconSize="m" color="danger" aria-label="Remove field" onClick={ e => obsRemove(ix) } /> + </EuiFormRow> + </EuiFlexItem> + </EuiFlexGroup> + ))} + <EuiFlexGroup> + <EuiFlexItem grow={false}> + <EuiButton iconType="plusInCircleFilled" color="primary" onClick={obsAddNew}>Add new field ...</EuiButton> + </EuiFlexItem> + </EuiFlexGroup> + </EuiForm> +} diff --git a/roles/build/files/thehive_button/public/options_template.html b/roles/build/files/thehive_button/public/options_template.html new file mode 100644 index 0000000..ef99657 --- /dev/null +++ b/roles/build/files/thehive_button/public/options_template.html @@ -0,0 +1,8 @@ +<div class="form-group"> + <p><label>Base URL of The Hive</label> + <input ng-model="editorState.params.url" class=form-control /></p> + <p><label>API key</label> + <input ng-model="editorState.params.apikey" class=form-control /></p> + <p><label>User name to use as the owner of cases created from here</label> + <input ng-model="editorState.params.owner" class=form-control /></p> +</div> diff --git a/roles/build/files/thehive_button/public/request_handler.js b/roles/build/files/thehive_button/public/request_handler.js new file mode 100644 index 0000000..bdbb0f4 --- /dev/null +++ b/roles/build/files/thehive_button/public/request_handler.js @@ -0,0 +1,195 @@ +import { CourierRequestHandlerProvider as courierRequestHandlerProvider } from 'ui/vis/request_handlers/courier'; +import { SearchSourceProvider } from 'ui/courier/search_source'; +import { RequestAdapter, DataAdapter } from 'ui/inspector/adapters'; +import { VisRequestHandlersRegistryProvider } from 'ui/registry/vis_request_handlers'; +import { AggConfig } from 'ui/vis/agg_config'; +import { AggConfigs } from 'ui/vis/agg_configs'; +import { getTime } from 'ui/timefilter/get_time'; +import { i18n } from '@kbn/i18n'; +import { has } from 'lodash'; +import { calculateObjectHash } from 'ui/vis/lib/calculate_object_hash'; +import { getRequestInspectorStats, getResponseInspectorStats } from 'ui/courier/utils/courier_inspector_utils'; +import chrome from 'ui/chrome'; + +// Maximum number of unique values of each field (observables) to fetch +const MAX_NUMBER_OF_TERMS = 5; + +const handleCourierRequest = courierRequestHandlerProvider().handler; + +// Register new RaquestHandlerProvider +const theHiveButtonRequestHandlerProvider = function () { + return { + name: 'theHiveButtonRequestHandler', + handler: theHiveButtonRequestHandler, + } +} +VisRequestHandlersRegistryProvider.register(theHiveButtonRequestHandlerProvider); + +export {theHiveButtonRequestHandlerProvider, theHiveButtonRequestHandler}; + + +// The request handler function itself +async function theHiveButtonRequestHandler(params) { + //console.log("theHiveButtonRequestHandler params:", params); + + let index = params.index; + let partialRows = params.partialRows; + let metricsAtAllLevels = params.metricsAtAllLevels; + let timeRange = params.timeRange; + let query = params.query; + let filters = params.filters; + let inspectorAdapters = params.inspectorAdapters; + let queryFilter = params.queryFilter; + let forceFetch = params.forceFetch; + // our own confiuration: + // list of fields to get potential observables from + // (each "field" is object {name: str, type: str, cnt: int}) + let obsFields = params.visParams.obsFields; + + // filter out invalid field specifications + obsFields = obsFields.filter( f => (f.name != "" && f.type != "" && f.cnt > 0) ); + + if (obsFields.length == 0) { + //console.log("theHiveButtonRequestHandler: Empty obsFields, nothing to do") + return {} // no fields specified, nothing to do + } + + // === Prepare request to ask for unique values of all selected fields === + + // Construct a query for ElasticSearch + // Get "terms" (most common unique values) for each field of obsFields + const aggs_dsl = {} + for (let field of obsFields) { + aggs_dsl[field.name] = { + terms: { + field: field.name, + size: field.cnt, + order: {_count: "desc"} + } + }; + } + //console.log("aggs_dsl:", aggs_dsl); + + // Create empty AggConfigs + // (We could pass specifications of a metric and the buckets here, + // but default processing functions assume multiple buckets are sub-buckets, + // which is not what we want. So we must do a "hack" and manually create + // query directly in format for ElasticSearch) + const aggs = new AggConfigs(params.index, []); + + // === Some magic to get searchSource object === + // (inspired by https://github.com/fbaligand/kibana-enhanced-table/blob/7.4/public/data_load/enhanced-table-request-handler.js) + // (I don't understand it, but it works) + + let $injector = await chrome.dangerouslyGetActiveInjector(); + let Private = $injector.get('Private'); + let SearchSource = Private(SearchSourceProvider); + let searchSource = new SearchSource(); + searchSource.setField('index', index); + searchSource.setField('size', 0); + + inspectorAdapters.requests = new RequestAdapter(); + inspectorAdapters.data = new DataAdapter(); + + + // === Execute query === + // We could call standard "courier" here, but it tries to convert the response + // to a table, which fails in our case, so we copied the main code of courier + // and modified it here. + + const abortSignal = false; + + const timeFilterSearchSource = searchSource.createChild({ callParentStartHandlers: true }); + const requestSearchSource = timeFilterSearchSource.createChild({ callParentStartHandlers: true }); + + aggs.setTimeRange(timeRange); + + // For now we need to mirror the history of the passed search source, since + // the request inspector wouldn't work otherwise. + Object.defineProperty(requestSearchSource, 'history', { + get() { + return searchSource.history; + }, + set(history) { + return searchSource.history = history; + } + }); + + // This has been modified to override DSL format by ours +// requestSearchSource.setField('aggs', function () { +// return aggs.toDsl(metricsAtAllLevels); +// }); + requestSearchSource.setField('aggs', aggs_dsl); + + requestSearchSource.onRequestStart((searchSource, searchRequest) => { + return aggs.onSearchRequestStart(searchSource, searchRequest); + }); + + if (timeRange) { + timeFilterSearchSource.setField('filter', () => { + return getTime(searchSource.getField('index'), timeRange); + }); + } + + requestSearchSource.setField('filter', filters); + requestSearchSource.setField('query', query); + + const reqBody = await requestSearchSource.getSearchRequestBody(); + + const queryHash = calculateObjectHash(reqBody); + // We only need to reexecute the query, if forceFetch was true or the hash of the request body has changed + // since the last request + const shouldQuery = forceFetch || (searchSource.lastQuery !== queryHash); + + if (shouldQuery) { + inspectorAdapters.requests.reset(); + const request = inspectorAdapters.requests.start( + i18n.translate('common.ui.vis.courier.inspector.dataRequest.title', { defaultMessage: 'Data' }), + { + description: i18n.translate('common.ui.vis.courier.inspector.dataRequest.description', + { defaultMessage: 'This request queries Elasticsearch to fetch the data for the visualization.' }), + } + ); + request.stats(getRequestInspectorStats(requestSearchSource)); + + try { + // Abort any in-progress requests before fetching again + if (abortSignal) { + abortSignal.addEventListener('abort', () => requestSearchSource.cancelQueued()); + } + + const response = await requestSearchSource.fetch(); + //console.log("raw response:", response); + + searchSource.lastQuery = queryHash; + + request + .stats(getResponseInspectorStats(searchSource, response)) + .ok({ json: response }); + + searchSource.rawResponse = response; + } catch(e) { + // Log any error during request to the inspector + request.error({ json: e }); + throw e; + } finally { + // Add the request body no matter if things went fine or not + requestSearchSource.getSearchRequestBody().then(req => { + request.json(req); + }); + } + } + + // === Copy of courier code ends here, now we parse the response === + + const resp = searchSource.rawResponse; + // Return as object containing a list of unique values (terms) for each + // requested field + let unique_values_lists = {} + for (let field of obsFields) { + unique_values_lists[field.name] = resp.aggregations[field.name].buckets.map( (x) => x.key ); + } + + //console.log("Final lists:", unique_values_lists); + return unique_values_lists; +} diff --git a/roles/build/files/thehive_button/public/vis.less b/roles/build/files/thehive_button/public/vis.less new file mode 100644 index 0000000..b6f887a --- /dev/null +++ b/roles/build/files/thehive_button/public/vis.less @@ -0,0 +1,3 @@ +.myvis-container-div { + padding: 1em; +} diff --git a/roles/build/files/thehive_button/public/vis_controller.js b/roles/build/files/thehive_button/public/vis_controller.js new file mode 100644 index 0000000..8b23222 --- /dev/null +++ b/roles/build/files/thehive_button/public/vis_controller.js @@ -0,0 +1,555 @@ +//import { Status } from 'ui/vis/update_status'; +import { toastNotifications } from 'ui/notify'; +import { createTheHiveCase, addCaseObservables } from './create_case'; +//import vis_template from './vis_template.html'; + +import React, { Component } from 'react'; +import { + EuiButton, + EuiButtonEmpty, + EuiModal, + EuiModalBody, + EuiModalFooter, + EuiModalHeader, + EuiModalHeaderTitle, + EuiOverlayMask, + EuiTitle, + EuiFlexGroup, + EuiFlexItem, + EuiSpacer, + EuiForm, + EuiFormRow, + EuiFieldText, + EuiTextArea, + EuiSuperSelect, + EuiBasicTable, + EuiCheckbox, + makeId, +} from '@elastic/eui'; + + +// ********** React components ********** + +// Main React component - the root of visualization +export class TheHiveButtonVisComponent extends Component { + render() { + //console.log("TheHiveButtonVisComponent.render(), props:", this.props); + return ( + <div> + <NewCaseButton params={this.props.vis.params} observables={this.props.visData} /> + </div> + ); + } + + componentDidMount() { + this.props.renderComplete(); + } + + componentDidUpdate() { + this.props.renderComplete(); + } +} + +// Button to show the pop-up window (modal) +// Props: +// .params - visualization parameters (from vis.params) +// .observables - object with lists of potential observables to add to the Case +// for each field in params.obsFields there should be a key in this object +// containing list of observables (this is returned by request_handler) +class NewCaseButton extends Component { + + constructor(props) { + super(props); + // Filter out invalid obsField specifications + this.obsFields = props.params.obsFields.filter( f => (f.name != "" && f.type != "" && f.cnt > 0) ); + //console.log("Filtered field specs:", this.obsFields); + + // The complete state is here, so it's kept even when modal is closed + this.state = { + isModalVisible: false, + isWorking: false, // used to show a spinner on submit button + ...this.create_initial_state(), + } + + this.resetCnt = 0; // used to change Modal component key on each form reset + + // Each handler function in a class (method) must be "binded" this way + this.closeModal = this.closeModal.bind(this); + this.showModal = this.showModal.bind(this); + this.resetForm = this.resetForm.bind(this); + + this.onTitleChange = this.onTitleChange.bind(this); + this.onSeverityChange = this.onSeverityChange.bind(this); + this.onTLPChange = this.onTLPChange.bind(this); + this.onDescriptionChange = this.onDescriptionChange.bind(this); + + this.onObsSelectionChange = this.onObsSelectionChange.bind(this); + this.onObsDataChange = this.onObsDataChange.bind(this); + + this.submitCase = this.submitCase.bind(this); + } + + create_initial_state() { + // create a new instance of initial state definition + let initial_state = { + // Case parameters + title: "", + description: "\n\n--\nCreated from Kibana", + severity: "2", // medium + tlp: "2", // amber + tags: [], // TODO (not implemented yet) + obsData: {}, // state of observables form fields (obsData->field->index->{descr,tlp,ioc,tags}) + obsSel: {}, // list of observable selections (obsSel->field->list_of_selected_indices) + } + // pre-fill state of each observable to defaults + const initial_field_data = {descr: "", tlp: 2, ioc: false, tags: []}; + for (let field of this.obsFields) { + const n_obs = this.props.observables[field.name].length; + // fill obsData with new copies of initial_field_data + initial_state.obsData[field.name] = new Array(n_obs).fill().map((_)=>({...initial_field_data})); + // nothing is selected + initial_state.obsSel[field.name] = new Array(); + } + return initial_state; + } + + componentDidUpdate(prevProps) { + // If list of observables was updated or obsFields setting has changed, + // reset the component state and precomputed variables. + if (this.props.observables != prevProps.observables) { + if (this.props.params.obsFields != prevProps.params.obsFields) { + // when obsFields change, observables must change as well, so this "if" + // can be inside the first one. + // Filter out invalid obsField specifications + this.obsFields = this.props.params.obsFields.filter( f => (f.name != "" && f.type != "" && f.cnt && f.cnt > 0) ); + //console.log("Filtered field specs:", this.obsFields); + } + //console.log("New list of observables, resetting form."); + this.resetForm(); + } + } + + resetForm() { + this.setState(this.create_initial_state()); + this.resetCnt += 1; // this changes the key of ModalContent, causing it to be replaced by new DOM elelments (otherwise, not all things are reset properly) + this.forceUpdate(); + } + + closeModal() { + this.setState({ isModalVisible: false }); + } + + showModal() { + this.setState({ isModalVisible: true }); + } + + // Event handlers for change of case parameter + onTitleChange(evt) { + this.setState({title: evt.target.value}); + } + onSeverityChange(value) { + this.setState({severity: value}); + } + onTLPChange(value) { + this.setState({tlp: value}); + } + onDescriptionChange(evt) { + this.setState({description: evt.target.value}); + } + + // Event handler for observable (de)selection + onObsSelectionChange(fieldName, selectedItems) { + // Extract indices from the items and store them into state + const selectedIndices = selectedItems.map(item4 => item4.i); + this.setState((state, props) => { + let newObsSel = {...this.state.obsSel}; + newObsSel[fieldName] = selectedIndices; + return {obsSel: newObsSel}; + }); + } + + // Event handler for edit of a form field in observable row + // - fieldName: which field (table of observables) + // - ix: index of the observable in the field's table + // - param: one of: descr,tlp,ioc,tags + // - value: new value of the form field + onObsDataChange(fieldName, ix, param, value) { + this.setState((state, props) => { + let newObsData = {...this.state.obsData}; + newObsData[fieldName][ix][param] = value; + return {obsData: newObsData}; + }); + } + + // Render function + render() { + let modal; + if (this.state.isModalVisible) { + modal = <ModalContent + resetCnt={this.resetCnt} // used to change "key" of modalBody, causing all form fields to be re-created (some things are not reset properly by reseting state only) + close={this.closeModal} + reset={this.resetForm} + fields={this.obsFields} + observables={this.props.observables} + // form state + title={this.state.title} + description={this.state.description} + severity={this.state.severity} + tlp={this.state.tlp} + tags={this.state.tags} + obsData={this.state.obsData} + obsSel={this.state.obsSel} + spinner={this.state.isWorking} + // event handlers + onTitleChange={this.onTitleChange} + onSeverityChange={this.onSeverityChange} + onTLPChange={this.onTLPChange} + onDescriptionChange={this.onDescriptionChange} + onObsSelectionChange={this.onObsSelectionChange} + onObsDataChange={this.onObsDataChange} + submitCase={this.submitCase} + />; + } + return ( + <div> + <EuiButton fill iconType="alert" color="danger" onClick={this.showModal}>Create new Case ...</EuiButton> + {modal} + </div> + ); + } + + // Submit case button handler + async submitCase(evt) { + const params = this.props.params; + + // Get case parameters + const title = this.state.title; + const descr = this.state.description; + const severity = parseInt(this.state.severity); + const start_date = null; + const owner = params.owner; + const flag = false; + const tlp = parseInt(this.state.tlp); + const tags = this.state.tags; + + if (!title) { + toastNotifications.addDanger("Title can't be empty"); + return; + } + + // Get list of selected observables and their params + let observables = []; + for (let field of this.obsFields) { + let selectionIndices = [...this.state.obsSel[field.name]]; // make a copy + selectionIndices.sort(); + for (let i = 0; i < selectionIndices.length; i++) { + const j = selectionIndices[i]; // index of a selected obs. in the list of all observables + // fill in observable definition according to model at + // https://github.com/TheHive-Project/TheHiveDocs/blob/master/api/artifact.md + const obs = { + dataType: field.type, + data: this.props.observables[field.name][j], + message: this.state.obsData[field.name][j].descr, + tlp: this.state.obsData[field.name][j].tlp, + ioc: this.state.obsData[field.name][j].ioc, + tags: this.state.obsData[field.name][j].tags, + }; + observables.push(obs); + } + } + + //console.log("Selected observables:", observables); + + // Check '/' at the end of base URL, add it if needed + let base_url = params.url; + if (base_url[base_url.length-1] != "/") { + base_url += "/"; + } + + // Show spinner at submit button + this.setState({isWorking: true}); + + // Submit request to create the case, handle response + let resp; + resp = await createTheHiveCase(base_url, params.apikey, title, descr, severity, start_date, owner, flag, tlp, tags); + + if ('error' in resp) { + // Error contacting The Hive + console.error("TheHiveButton: ERROR when trying to create new case:", resp.error); + toastNotifications.addDanger("ERROR: " + resp.error); + this.setState({isWorking: false}); // Hide spinner + return; + } + + console.log("TheHiveButton: Case created:", resp); + const case_id = resp.id; + const case_url = base_url + "index.html#/case/" + case_id + "/details"; + + // Show notification + let obs_text; + if (observables.length > 0) { + obs_text = "Adding " + observables.length + " observables in background ..."; + } + else { + obs_text = "(no observables added)"; + } + toastNotifications.add({ + title: "Case created", + color: "success", + iconType: "checkInCircleFilled", + text: ( + <div> + <p><b><a href={case_url} target="_blank">Edit the new Case</a></b></p> + <p>{obs_text}</p> + </div> + ), + }); + + // Close the popup window, reset form fields and hide spinner + this.closeModal(); + this.resetForm(); + this.setState({isWorking: false}); + + // Open a new window with the case in The Hive + // (adding observables may take some time, so the case is opened first; + // The Hive web is dynamic so the observables appear as they are added) + window.open(case_url, '_blank'); + + if (observables.length == 0) + return; + + // Submit request to add observables + console.log("TheHiveButton: adding " + observables.length + " observables ..."); + resp = await addCaseObservables(base_url, params.apikey, case_id, observables); + + if ('error' in resp) { + console.error("TheHiveButton: ERROR when trying to add observables: " + resp.error); + toastNotifications.addDanger("ERROR when trying to add observables: " + resp.error); + } + else { + console.log("TheHiveButton: Done, observables added."); + toastNotifications.add("Done, observables added."); + } + } +} + + +// The popup window with a form +// props: +// - spinner: when true, disable form and show a spinner over it +class ModalContent extends Component { + constructor(props) { + super(props); + // No state here, everything is in the parent class (NewCaseButton) + + // "Select" options + this.severityOptions = [ + {value: "1", inputDisplay: "low"}, + {value: "2", inputDisplay: "medium"}, + {value: "3", inputDisplay: "high"}, + ]; + this.tlpOptions = [ + {value: "0", inputDisplay: "white"}, + {value: "1", inputDisplay: "green"}, + {value: "2", inputDisplay: "amber"}, + {value: "3", inputDisplay: "red"}, + ]; + } + + // Main render function + render() { + // TODO: replace Modal with Flyout? + + // Note: onClick on EuiOverlayMask causes close of modal when clicked outside, + // implementation inspired by PR: https://github.com/elastic/eui/pull/3462/files#diff-c8fda532e48f75c94c343247cbc6b2d3R53-R60 + return ( + <EuiOverlayMask onClick={(evt) => {if (evt.target.classList.contains("euiOverlayMask")) this.props.close();} }> + <EuiModal onClose={this.props.close} maxWidth={false} initialFocus="[name=title]"> + <EuiModalHeader> + <EuiModalHeaderTitle>Create a new case in The Hive</EuiModalHeaderTitle> + </EuiModalHeader> + + <EuiModalBody key={this.props.resetCnt}> + <EuiForm style={{width: "800px"}}> + <EuiFlexGroup> + <EuiFlexItem grow={1}> + <EuiFormRow label="Title" fullWidth> + <EuiFieldText name="title" value={this.props.title} onChange={this.props.onTitleChange} required={true} fullWidth /> + </EuiFormRow> + </EuiFlexItem> + <EuiFlexItem grow={false}> + <EuiFormRow label="Severity"> + <EuiSuperSelect + options={this.severityOptions} + valueOfSelected={this.props.severity} + onChange={this.props.onSeverityChange} + /> + </EuiFormRow> + </EuiFlexItem> + <EuiFlexItem grow={false}> + <EuiFormRow label="TLP"> + <EuiSuperSelect + prepend="TLP" + options={this.tlpOptions} + valueOfSelected={this.props.tlp} + onChange={this.props.onTLPChange} + /> + </EuiFormRow> + </EuiFlexItem> + </EuiFlexGroup> + <EuiFormRow label="Description" fullWidth> + <EuiTextArea + defaultValue={this.props.description} + onChange={this.props.onDescriptionChange} + rows={4} + fullWidth + /> + </EuiFormRow> + + {this.props.fields.length > 0 && <EuiTitle size="s"><h3>Add observables from current query ...</h3></EuiTitle>} + {this.props.fields.map((field,ix) => ( + <ObservablesTable + key={field.name + ":" + this.props.resetCnt} + fieldName={field.name} + observables={this.props.observables[field.name]} + obsData={this.props.obsData[field.name]} + obsSel={this.props.obsSel[field.name]} + onObsSelectionChange={this.props.onObsSelectionChange} + onObsDataChange={this.props.onObsDataChange} + /> + ))} + </EuiForm> + </EuiModalBody> + + <EuiModalFooter> + <EuiButtonEmpty onClick={this.props.close}>Close</EuiButtonEmpty> + <EuiButtonEmpty onClick={this.props.reset}>Reset</EuiButtonEmpty> + <EuiButton onClick={this.props.submitCase} fill isLoading={this.props.spinner}>Create Case</EuiButton> + </EuiModalFooter> + </EuiModal> + </EuiOverlayMask> + ); + } +} + +// Table of potential observables taken from a given field, allowing to select +// which observables to send to The Hive. +// Props: +// fieldName - name of the field this table is for +// observables - list of observable IDs of this field +// obsData - array of objects specifying state of form fields in the table (.descr, .tlp, ...) +// obsSel - array of indices of selected observables +class ObservablesTable extends Component { + + constructor(props) { + super(props); + + // Table columns definition + this.columns = [ + { + field: "id", + name: "Observable", + }, + { + field: "descr", + name: "Description", + description: "Description of the observable in the context of the case", + render: (value, item1) => (<EuiFieldText + value={item1.descr} + onChange={(e) => this.props.onObsDataChange(props.fieldName, item1.i, "descr", e.target.value)} + disabled={!item1.selected} + />) + }, + /*{ + field: "tlp", + name: "TLP", + dataType: "number", + // TODO render and process changes + },*/ + { + field: "ioc", + name: "Is IOC", + dataType: "boolean", + description: "Indicates if the observable is an IOC", + render: (value, item2) => (<EuiCheckbox + id={"ioc-checkbox-"+item2.id} + checked={item2.ioc} + onChange={(e) => this.props.onObsDataChange(props.fieldName, item2.i, "ioc", e.target.checked)} + disabled={!item2.selected} + />) + }, + /*{ + field: "tags", + name: "Tags", + // TODO render and process changes + },*/ + ] + + // Create a reference to EuiBasicTable, so it's node can be accessed in componentDidMount + this.tableRef = React.createRef(); + } + + render() { + // Table data definition (convert props to format suitable for EuiBasicTable) + const n_obs = this.props.observables.length; + this.table_data = new Array(n_obs); + for (let i = 0; i < n_obs; i++) { + this.table_data[i] = { + id: this.props.observables[i], + descr: this.props.obsData[i].descr, + tlp: this.props.obsData[i].tlp, + ioc: this.props.obsData[i].ioc, + tags: this.props.obsData[i].tags, + // auxiliary fields, not shown in table: + i: i, // row index + selected: this.props.obsSel.includes(i), + }; + } + + return ( + <> + <EuiTitle size="xs"><h4>{this.props.fieldName}</h4></EuiTitle> + <EuiBasicTable + ref={this.tableRef} + columns={this.columns} + items={this.table_data} + itemId={(item3) => item3.id} + selection={ {onSelectionChange: (selectedItems) => this.props.onObsSelectionChange(this.props.fieldName, selectedItems) } } + noItemsMessage="No observables found" + rowProps={{ + // Hack to allow selection by clicking anywhere in the table row + // (except input elements) + onClick: (e) => { + if (e.target.tagName != "INPUT") { + // simulate click on the first checkbox in the row to (de)select the row + e.currentTarget.querySelector("input").click(); + e.currentTarget.blur(); // without this the focus remains on the row after click (results in different color) + } + }, + tabIndex: "-1", // prevents focus on row by keyboard navigation + }} + /> + <EuiSpacer size="l" /> + </> + ) + } + + componentDidMount() { + // There's no way to specify initially selected items in EuiBasicTable by + // props, but we may need to select some (in case a user selects some obs., + // closes the modal and opens it again). + // However, the selection is stored as a 'selection' field of table's state, + // so here we directly edit the state just after the table is created. + + // Prepare the 'selection' array - it should contain a list of selected row specifications + let selection = []; + for (let ix of this.props.obsSel) { + selection.push(this.table_data[ix]); + } + + // Get ref to EuiBasicTable element and update its state + const table_node = this.tableRef.current; + table_node.setState({selection: selection}); + } +} + diff --git a/roles/build/files/thehive_button/server/routes/newcase.js b/roles/build/files/thehive_button/server/routes/newcase.js new file mode 100644 index 0000000..175dee8 --- /dev/null +++ b/roles/build/files/thehive_button/server/routes/newcase.js @@ -0,0 +1,153 @@ +const request = require('request'); +//const fs = require('fs'); +//const path = require('path'); + +//const caFile = path.resolve(__dirname, '../../ca.cert.pem'); // TODO resolve where the CA file should be located / configured + +export default function (server) { + server.route({ + path: '/api/thehive_button/new_case', + method: 'POST', + handler: newCaseHandler, + }); + server.route({ + path: '/api/thehive_button/add_observables', + method: 'POST', + handler: addObservablesHandler, + }); +} + +// Handler of ajax requests to create a new Case in The Hive +function newCaseHandler(req, resp) { + // Parse the request to get connection parameters + // (everything is configured in forntend and sent as part of the request, + // since I don't know how to configure the backend) + var base_url = req.payload['base_url']; + var api_key = req.payload['api_key']; + var req_body = req.payload['body']; + + // check it's a valid URL with slash at the end + if (!base_url) { + return {'error': 'Base URL not set'}; + } + if (!base_url.match(/https?:\/\/(([a-z\d.-]+)|((\d{1,3}\.){3}\d{1,3}))(\:\d+)?(\/[-a-z\d%_.~+]*)*\//i)) { + //if (!base_url.match(/https?:\/\/.*\//)) { + return {'error': 'Invalid base URL (it must begin with "http[s]" and end with "/")'}; + } + if (!api_key) { + return {'error': 'API key not set'}; + } + + return new Promise( function(resolve, reject) { + request({ + method: 'POST', + url: base_url + 'api/case', + auth: {'bearer': api_key}, + json: true, + body: req_body, + //ca: fs.readFileSync(caFile), // TODO resolve the issue with custom CA, where to get its cert? + rejectUnauthorized: false, + }, + // handler of the reply from The Hive - just return as reply + function (error, response, body) { + // TODO: find out how to set response code, for now we always return sucess and encode original status code in the content + if (error) { + console.error("ERROR when trying to send request to The Hive:", error); + resolve({'error': error.message}); + } + else { + if (response.statusCode < 200 || response.statusCode >= 300) { + console.error("ERROR Unexpected reply received from The Hive:", response.statusCode, response.statusMessage, "\n", body) + } + resolve({ + 'status_code': response.statusCode, + 'status_msg': response.statusMessage, + 'body': body + }); + } + } // handler function + ); // request() + }); // Promise() +} + +// Note: +// There are two ways to create multiple Observables (artifacts) via The Hive API: +// 1. post one request with an array of observables in "data" field +// - this allows to create all in one request, but doesn't allow to set +// different parameters (IOC, TLP, etc.) to different observables +// 2. post each observable in a separate request +// The second way is used here. + +// Handler of ajax requests to add Observables to a Case in The Hive +function addObservablesHandler(req, resp) { + // Parse the request to get connection parameters + // (everything is configured in forntend and sent as part of the request, + // since I don't know how to configure the backend) + var base_url = req.payload['base_url']; + var api_key = req.payload['api_key']; + + // check it's a valid URL with slash at the end + if (!base_url) { + return {'error': 'Base URL not set'}; + } + if (!base_url.match(/https?:\/\/(([a-z\d.-]+)|((\d{1,3}\.){3}\d{1,3}))(\:\d+)?(\/[-a-z\d%_.~+]*)*\//i)) { + //if (!base_url.match(/https?:\/\/.*\//)) { + return {'error': 'Invalid base URL (it must begin with "http[s]" and end with "/")'}; + } + // TODO add "/" to the end automatically + if (!api_key) { + return {'error': 'API key not set'}; + } + + const caseid = req.payload['caseid']; + const observables = req.payload['observables']; // array of obersvable specifications + + return new Promise( async function(resolve, reject) { + // Run one request for each observable + // (A way to run multiple async tasks sequentially inspired by: + // https://jrsinclair.com/articles/2019/how-to-run-async-js-in-parallel-or-sequential/ ) + const starterPromise = Promise.resolve(null); + await observables.reduce( + (p, obs) => p.then(() => addObservable(base_url, api_key, caseid, obs)), + starterPromise + ).catch((err_msg) => { + console.error(err_msg); // log whole message + resolve({'error': err_msg.split("\n", 1)[0]}); // send the first line to frontend + return; + } + ); + resolve({}); + }); +} + +function addObservable(base_url, api_key, caseid, obs) { + return new Promise( function(resolve, reject) { + //console.log("Adding observable:", obs); + request({ + method: 'POST', + url: base_url + 'api/case/' + caseid + "/artifact", + auth: {'bearer': api_key}, + json: true, + body: obs, + //ca: fs.readFileSync(caFile), // TODO resolve the issue with custom CA, where to get its cert? + rejectUnauthorized: false, + }, + // handler of the reply from The Hive - just return as reply + function (error, response, body) { + if (error) { + reject("ERROR when trying to send request to The Hive: " + error); + } + else if (response.statusCode < 200 || response.statusCode >= 300) { + reject("ERROR: Unexpected reply received from The Hive: " + response.statusCode + " " + response.statusMessage + "\n" + JSON.stringify(body)); + } + else { + // success - continue with the next observable + resolve("OK"); + resolve({}) + } + } // handler function + ); // request() + }); //Promise() +} + + diff --git a/roles/build/files/thehive_button/thehive_button/.eslintrc b/roles/build/files/thehive_button/thehive_button/.eslintrc new file mode 100644 index 0000000..64eba86 --- /dev/null +++ b/roles/build/files/thehive_button/thehive_button/.eslintrc @@ -0,0 +1,7 @@ +--- +extends: "@elastic/kibana" + +settings: + import/resolver: + '@elastic/eslint-import-resolver-kibana': + rootPackageName: 'thehive_button' diff --git a/roles/build/files/thehive_button/thehive_button/.kibana-plugin-helpers.json b/roles/build/files/thehive_button/thehive_button/.kibana-plugin-helpers.json new file mode 100644 index 0000000..2c63c08 --- /dev/null +++ b/roles/build/files/thehive_button/thehive_button/.kibana-plugin-helpers.json @@ -0,0 +1,2 @@ +{ +} diff --git a/roles/build/files/thehive_button/thehive_button/index.js b/roles/build/files/thehive_button/thehive_button/index.js new file mode 100644 index 0000000..fa69c75 --- /dev/null +++ b/roles/build/files/thehive_button/thehive_button/index.js @@ -0,0 +1,19 @@ +import newCaseRoute from './server/routes/newcase'; + +export default function (kibana) { + return new kibana.Plugin({ + require: [], //['elasticsearch'], + name: 'thehive_button', + uiExports: { + visTypes: [ + 'plugins/thehive_button/main', + ], + }, + + init(server, options) { // eslint-disable-line no-unused-vars + // Add server routes and initialize the plugin here + newCaseRoute(server); + } + }); +} + diff --git a/roles/build/files/thehive_button/thehive_button/package.json b/roles/build/files/thehive_button/thehive_button/package.json new file mode 100644 index 0000000..e1c070d --- /dev/null +++ b/roles/build/files/thehive_button/thehive_button/package.json @@ -0,0 +1,35 @@ +{ + "name": "thehive_button", + "version": "1.0.0", + "description": "Visualisation plugin which creates a simple button to create a new case in The Hive.", + "main": "index.js", + "kibana": { + "version": "7.4.2" + }, + "scripts": { + "lint": "eslint .", + "start": "plugin-helpers start", + "build": "plugin-helpers build" + }, + "dependencies": { + "request": "^2.88.0", + "@elastic/eui": "10.4.2", + "react": "^16.8.0" + }, + "devDependencies": { + "@elastic/eslint-config-kibana": "link:../../packages/eslint-config-kibana", + "@elastic/eslint-import-resolver-kibana": "link:../../packages/kbn-eslint-import-resolver-kibana", + "@kbn/plugin-helpers": "link:../../packages/kbn-plugin-helpers", + "babel-eslint": "^9.0.0", + "eslint": "^5.6.0", + "eslint-plugin-babel": "^5.2.0", + "eslint-plugin-import": "^2.14.0", + "eslint-plugin-jest": "^21.26.2", + "eslint-plugin-jsx-a11y": "^6.1.2", + "eslint-plugin-mocha": "^5.2.0", + "eslint-plugin-no-unsanitized": "^3.0.2", + "eslint-plugin-prefer-object-spread": "^1.2.1", + "eslint-plugin-react": "^7.11.1", + "expect.js": "^0.3.1" + } +} diff --git a/roles/build/files/thehive_button/thehive_button/public/create_case.js b/roles/build/files/thehive_button/thehive_button/public/create_case.js new file mode 100644 index 0000000..fc8edd6 --- /dev/null +++ b/roles/build/files/thehive_button/thehive_button/public/create_case.js @@ -0,0 +1,101 @@ +// Functions to send data to Kibana endpoints + +import chrome from 'ui/chrome'; + +// Create a new Case in The Hive via its API +// Return a Promise which resolves to object with ID of the new case ('id' attr) or error message ('error' attr) +export function createTheHiveCase(base_url, api_key, title, descr, severity, startDate, owner, flag, tlp, tags) { + // Prepare data + var data = JSON.stringify({ + "base_url": base_url, + "api_key": api_key, + "body": { + "title": title, + "description": descr, + "severity": severity, // number: 1=low, 2=medium, 3=high + "startDate": startDate, + "owner": owner, // user name the case will be assigned to + "flag": flag, // bool + "tlp": tlp, // number: 0=white, 1=green, 2=amber, 3=red + "tags": tags, // array of strings + } + }); + console.log("TheHiveButton: Sending request to API endpoint 'new_case':", data); + var kibana_endpoint_url = chrome.addBasePath('/api/thehive_button/new_case'); + + return new Promise(function (resolve, reject) { + // Create AJAX request + var xhr = new XMLHttpRequest(); + + // Listener to process reply + xhr.onreadystatechange = function () { + if (this.readyState != 4) { + return; // response not ready yet + } + if (this.status == 200) { + const resp = JSON.parse(this.responseText); + console.log("TheHiveButton: Response from backend:", resp); + if ("error" in resp) { + resolve({"error": resp.error}); + } + else if (resp.status_code != 201) { + resolve({"error": "Unexpected reply received from The Hive: [" + resp.status_code + "] " + resp.status_msg}); + } + else { + resolve({"id": resp.body.id}); // return ID of the new case + } + } + else { + console.log("TheHiveButton: Error " + this.status + ": " + this.statusText); + resolve({"error": "Error " + this.status + ": " + this.statusText}); + } + } + + // Send the AJAX request + xhr.open("POST", kibana_endpoint_url); + xhr.setRequestHeader("Content-Type", "application/json"); + xhr.setRequestHeader("kbn-xsrf", "thehive_plugin"); // this header must be set, although its content is probably irrelevant + xhr.send(data); + }); +} + +// Add observables to an existing Case in The Hive +// (send the list of observables to our backend endpoint, it pushes them to The Hive) +export function addCaseObservables(base_url, api_key, caseid, observables) { + const kibana_endpoint_url = chrome.addBasePath('/api/thehive_button/add_observables'); + const data = JSON.stringify({ + "base_url": base_url, + "api_key": api_key, + "caseid": caseid, + "observables": observables, + }); + console.log("TheHiveButton: Sending request to API endpoint 'add_observables':", data); + + return new Promise(function (resolve, reject) { + // Create AJAX request + var xhr = new XMLHttpRequest(); + + // Listener to process reply + xhr.onreadystatechange = function () { + if (this.readyState != 4) { + return; // response not ready yet + } + if (this.status == 200) { + const resp = JSON.parse(this.responseText); + console.log("TheHiveButton: Response from backend:", resp); + resolve(resp); + } + else { + console.log("TheHiveButton: Error " + this.status + ": " + this.statusText); + resolve({"error": "Error " + this.status + ": " + this.statusText}); + } + } + + // Send the AJAX request + xhr.open("POST", kibana_endpoint_url); + xhr.setRequestHeader("Content-Type", "application/json"); + xhr.setRequestHeader("kbn-xsrf", "thehive_plugin"); // this header must be set, although its content is probably irrelevant + xhr.send(data); + }); +} + diff --git a/roles/build/files/thehive_button/thehive_button/public/env.js b/roles/build/files/thehive_button/thehive_button/public/env.js new file mode 100644 index 0000000..4321b85 --- /dev/null +++ b/roles/build/files/thehive_button/thehive_button/public/env.js @@ -0,0 +1,4 @@ +// Default plugin configuration +export const THEHIVE_URL = 'https://hive.gn4-3-wp8-soc.sunet.se/'; +export const THEHIVE_API_KEY = '5LymseWiurZBrQN8Kqp8O+9KniTL5cE0'; +export const THEHIVE_OWNER = 'admin'; // default owner account of the created cases diff --git a/roles/build/files/thehive_button/thehive_button/public/main.js b/roles/build/files/thehive_button/thehive_button/public/main.js new file mode 100644 index 0000000..ee46d73 --- /dev/null +++ b/roles/build/files/thehive_button/thehive_button/public/main.js @@ -0,0 +1,54 @@ +import { THEHIVE_API_KEY, THEHIVE_URL, THEHIVE_OWNER } from './env'; +import { TheHiveButtonVisComponent } from './vis_controller'; +import { theHiveButtonRequestHandlerProvider } from './request_handler'; +import { optionsEditor } from './options_editor'; + +import { VisFactoryProvider } from 'ui/vis/vis_factory'; +import { VisTypesRegistryProvider } from 'ui/registry/vis_types'; +import { DefaultEditorSize } from 'ui/vis/editor_size'; + + +function TheHiveButtonVisProvider(Private) { + const VisFactory = Private(VisFactoryProvider); + + //console.log("default URL:", THEHIVE_URL); + //console.log("default API key:", THEHIVE_API_KEY); + + return VisFactory.createReactVisualization({ + name: 'thehive_button', + title: 'The Hive Case', + icon: 'alert', + description: 'A button to create a new Case in The Hive.', + //requiresUpdateStatus: [Status.PARAMS, Status.RESIZE, Status.UI_STATE], + visConfig: { + component: TheHiveButtonVisComponent, + defaults: { + // add default parameters + url: THEHIVE_URL, + apikey: THEHIVE_API_KEY, + owner: THEHIVE_OWNER, + obsFields: [], // list of objects, e.g. {name: "clientip", type: "ip", cnt: 100} + } + }, + //editor: 'default', + editorConfig: { + optionTabs: [ + { + name: "options", + title: "Options", + editor: optionsEditor, + } + ], + defaultSize: DefaultEditorSize.LARGE, + }, +// optionsTemplate: optionsEditor, //optionsTemplate, +// //enableAutoApply: true, +// }, + requestHandler: 'theHiveButtonRequestHandler', // own request handler + responseHandler: 'none', // pass data as returned by requestHandler + }); +} + +// register the provider with the visTypes registry +VisTypesRegistryProvider.register(TheHiveButtonVisProvider); + diff --git a/roles/build/files/thehive_button/thehive_button/public/options_editor.js b/roles/build/files/thehive_button/thehive_button/public/options_editor.js new file mode 100644 index 0000000..38762bd --- /dev/null +++ b/roles/build/files/thehive_button/thehive_button/public/options_editor.js @@ -0,0 +1,176 @@ +import React from 'react'; +import { + EuiForm, + EuiFormRow, + EuiTitle, + EuiSpacer, + EuiFieldText, + EuiFieldNumber, + EuiSelect, + EuiFlexGroup, + EuiFlexItem, + EuiButton, + EuiButtonIcon, +} from '@elastic/eui'; + +// Default data types in The Hive +const DEFAULT_THE_HIVE_TYPES = [ + '', + 'autonomous-system', + 'domain', + 'file', + 'filename', + 'fqdn', + 'hash', + 'ip', + 'mail', + 'mail_subject', + 'regexp', + 'registry', + 'uri_path', + 'url', + 'user-agent', + 'other', +]; + +// Options for EuiSelect for selection of field's data type in TheHive +const typesOptions = DEFAULT_THE_HIVE_TYPES.map( dt => ({value: dt, text: dt}) ); + +export function optionsEditor(props) { + //console.log("editor render(), props:", props); + const { stateParams, setValue, setValidity, vis } = props; + + // onClick/onChange handlers + const obsAddNew = () => { + const newObsFields = [...stateParams.obsFields, {name: "", type: "", cnt: 100}]; + // For some reason, first click on the button after editor is loaded does + // nothing. Calling setValue twice here fixes it. + setValue("obsFields", newObsFields); + setValue("obsFields", newObsFields); +// setValidity(false); // since new row is empty, form is always invalid + }; + const obsRemove = (ix) => { + let newArray = [...stateParams.obsFields]; + newArray.splice(ix, 1); + setValue("obsFields", newArray); +// validate(); + } + const obsSetName = (ix, name) => { + let newArray = [...stateParams.obsFields]; + newArray[ix].name = name; + setValue("obsFields", newArray); +// validate(); + } + const obsSetType = (ix, type) => { + let newArray = [...stateParams.obsFields]; + newArray[ix].type = type; + setValue("obsFields", newArray); +// validate(); + } + const obsSetCnt = (ix, cnt) => { + let newArray = [...stateParams.obsFields]; + newArray[ix].cnt = parseInt(cnt); + setValue("obsFields", newArray); +// validate(); + } +// const validate = () => { +// let valid = true; +// for (let field of stateParams.obsFields) { +// if (field.name == "" || field.type == "" || field.cnt == "") { +// valid = false; +// break; +// } +// } +// // TODO check for duplicate fields +// setValidity(valid); +// } + + // Get list of all fields in index (except those beginning with "_" or "@") + // and create "options" parameter for EuiSelect. + // Also, fields with "aggregatable=false" are removed, as they can't be used + // with "terms" aggregation we need. + // See this for details: https://www.elastic.co/guide/en/elasticsearch/reference/7.x/fielddata.html + // Empty field is added at the beginning, meaning "no selection yet". + const fieldOptions = [{value: "", text: ""}].concat( + vis.indexPattern.fields.raw.filter( f => (f.name[0] != "_" && f.name[0] != "@" && f.aggregatable) ).map( f => ({value: f.name, text: `${f.name} (${f.type})`}) ) + ); + + return <EuiForm> + <EuiFormRow fullWidth={true} label="Base URL of The Hive"> + <EuiFieldText + fullWidth={true} + value={stateParams.url} + onChange={e => setValue('url', e.target.value)} + isInvalid={stateParams.url == ""} + /> + </EuiFormRow> + <EuiFlexGroup> + <EuiFlexItem grow={1}> + <EuiFormRow label="API key to access The Hive" helpText="API key of a user with write permission."> + <EuiFieldText + fullWidth={true} + value={stateParams.apikey} + onChange={e => setValue('apikey', e.target.value)} + isInvalid={stateParams.apikey == ""} + /> + </EuiFormRow> + </EuiFlexItem> + <EuiFlexItem grow={1}> + <EuiFormRow label="Assignee" helpText="User to assign created cases to. Must be a valid username from The Hive instance."> + <EuiFieldText + value={stateParams.owner} + onChange={e => setValue('owner', e.target.value)} + isInvalid={stateParams.owner == ""} + /> + </EuiFormRow> + </EuiFlexItem> + </EuiFlexGroup> + <EuiTitle size="s"><h3>Fields to get potential observables from ...</h3></EuiTitle> + <EuiSpacer size="s" /> + {stateParams.obsFields.map( (field, ix) => ( + <EuiFlexGroup key={ix} gutterSize="s"> + <EuiFlexItem grow={3}> + <EuiFormRow label="Field name"> + <EuiSelect + options={fieldOptions} + value={field.name} + onChange={ e => obsSetName(ix, e.target.value) } + isInvalid={field.name == ""} + /> + </EuiFormRow> + </EuiFlexItem> + <EuiFlexItem grow={2}> + <EuiFormRow label="Data type in The Hive"> + <EuiSelect + options={typesOptions} + value={field.type} + onChange={ e => obsSetType(ix, e.target.value) } + isInvalid={field.type == ""} + /> + </EuiFormRow> + </EuiFlexItem> + <EuiFlexItem grow={1}> + <EuiFormRow label="Max items shown"> + <EuiFieldNumber + min={1} + max={1000} + value={parseInt(field.cnt)} + onChange={ e => obsSetCnt(ix, e.target.value) } + isInvalid={!(field.cnt > 0)} + /> + </EuiFormRow> + </EuiFlexItem> + <EuiFlexItem grow={false}> + <EuiFormRow hasEmptyLabelSpace> + <EuiButtonIcon iconType="trash" iconSize="m" color="danger" aria-label="Remove field" onClick={ e => obsRemove(ix) } /> + </EuiFormRow> + </EuiFlexItem> + </EuiFlexGroup> + ))} + <EuiFlexGroup> + <EuiFlexItem grow={false}> + <EuiButton iconType="plusInCircleFilled" color="primary" onClick={obsAddNew}>Add new field ...</EuiButton> + </EuiFlexItem> + </EuiFlexGroup> + </EuiForm> +} diff --git a/roles/build/files/thehive_button/thehive_button/public/options_template.html b/roles/build/files/thehive_button/thehive_button/public/options_template.html new file mode 100644 index 0000000..ef99657 --- /dev/null +++ b/roles/build/files/thehive_button/thehive_button/public/options_template.html @@ -0,0 +1,8 @@ +<div class="form-group"> + <p><label>Base URL of The Hive</label> + <input ng-model="editorState.params.url" class=form-control /></p> + <p><label>API key</label> + <input ng-model="editorState.params.apikey" class=form-control /></p> + <p><label>User name to use as the owner of cases created from here</label> + <input ng-model="editorState.params.owner" class=form-control /></p> +</div> diff --git a/roles/build/files/thehive_button/thehive_button/public/request_handler.js b/roles/build/files/thehive_button/thehive_button/public/request_handler.js new file mode 100644 index 0000000..bdbb0f4 --- /dev/null +++ b/roles/build/files/thehive_button/thehive_button/public/request_handler.js @@ -0,0 +1,195 @@ +import { CourierRequestHandlerProvider as courierRequestHandlerProvider } from 'ui/vis/request_handlers/courier'; +import { SearchSourceProvider } from 'ui/courier/search_source'; +import { RequestAdapter, DataAdapter } from 'ui/inspector/adapters'; +import { VisRequestHandlersRegistryProvider } from 'ui/registry/vis_request_handlers'; +import { AggConfig } from 'ui/vis/agg_config'; +import { AggConfigs } from 'ui/vis/agg_configs'; +import { getTime } from 'ui/timefilter/get_time'; +import { i18n } from '@kbn/i18n'; +import { has } from 'lodash'; +import { calculateObjectHash } from 'ui/vis/lib/calculate_object_hash'; +import { getRequestInspectorStats, getResponseInspectorStats } from 'ui/courier/utils/courier_inspector_utils'; +import chrome from 'ui/chrome'; + +// Maximum number of unique values of each field (observables) to fetch +const MAX_NUMBER_OF_TERMS = 5; + +const handleCourierRequest = courierRequestHandlerProvider().handler; + +// Register new RaquestHandlerProvider +const theHiveButtonRequestHandlerProvider = function () { + return { + name: 'theHiveButtonRequestHandler', + handler: theHiveButtonRequestHandler, + } +} +VisRequestHandlersRegistryProvider.register(theHiveButtonRequestHandlerProvider); + +export {theHiveButtonRequestHandlerProvider, theHiveButtonRequestHandler}; + + +// The request handler function itself +async function theHiveButtonRequestHandler(params) { + //console.log("theHiveButtonRequestHandler params:", params); + + let index = params.index; + let partialRows = params.partialRows; + let metricsAtAllLevels = params.metricsAtAllLevels; + let timeRange = params.timeRange; + let query = params.query; + let filters = params.filters; + let inspectorAdapters = params.inspectorAdapters; + let queryFilter = params.queryFilter; + let forceFetch = params.forceFetch; + // our own confiuration: + // list of fields to get potential observables from + // (each "field" is object {name: str, type: str, cnt: int}) + let obsFields = params.visParams.obsFields; + + // filter out invalid field specifications + obsFields = obsFields.filter( f => (f.name != "" && f.type != "" && f.cnt > 0) ); + + if (obsFields.length == 0) { + //console.log("theHiveButtonRequestHandler: Empty obsFields, nothing to do") + return {} // no fields specified, nothing to do + } + + // === Prepare request to ask for unique values of all selected fields === + + // Construct a query for ElasticSearch + // Get "terms" (most common unique values) for each field of obsFields + const aggs_dsl = {} + for (let field of obsFields) { + aggs_dsl[field.name] = { + terms: { + field: field.name, + size: field.cnt, + order: {_count: "desc"} + } + }; + } + //console.log("aggs_dsl:", aggs_dsl); + + // Create empty AggConfigs + // (We could pass specifications of a metric and the buckets here, + // but default processing functions assume multiple buckets are sub-buckets, + // which is not what we want. So we must do a "hack" and manually create + // query directly in format for ElasticSearch) + const aggs = new AggConfigs(params.index, []); + + // === Some magic to get searchSource object === + // (inspired by https://github.com/fbaligand/kibana-enhanced-table/blob/7.4/public/data_load/enhanced-table-request-handler.js) + // (I don't understand it, but it works) + + let $injector = await chrome.dangerouslyGetActiveInjector(); + let Private = $injector.get('Private'); + let SearchSource = Private(SearchSourceProvider); + let searchSource = new SearchSource(); + searchSource.setField('index', index); + searchSource.setField('size', 0); + + inspectorAdapters.requests = new RequestAdapter(); + inspectorAdapters.data = new DataAdapter(); + + + // === Execute query === + // We could call standard "courier" here, but it tries to convert the response + // to a table, which fails in our case, so we copied the main code of courier + // and modified it here. + + const abortSignal = false; + + const timeFilterSearchSource = searchSource.createChild({ callParentStartHandlers: true }); + const requestSearchSource = timeFilterSearchSource.createChild({ callParentStartHandlers: true }); + + aggs.setTimeRange(timeRange); + + // For now we need to mirror the history of the passed search source, since + // the request inspector wouldn't work otherwise. + Object.defineProperty(requestSearchSource, 'history', { + get() { + return searchSource.history; + }, + set(history) { + return searchSource.history = history; + } + }); + + // This has been modified to override DSL format by ours +// requestSearchSource.setField('aggs', function () { +// return aggs.toDsl(metricsAtAllLevels); +// }); + requestSearchSource.setField('aggs', aggs_dsl); + + requestSearchSource.onRequestStart((searchSource, searchRequest) => { + return aggs.onSearchRequestStart(searchSource, searchRequest); + }); + + if (timeRange) { + timeFilterSearchSource.setField('filter', () => { + return getTime(searchSource.getField('index'), timeRange); + }); + } + + requestSearchSource.setField('filter', filters); + requestSearchSource.setField('query', query); + + const reqBody = await requestSearchSource.getSearchRequestBody(); + + const queryHash = calculateObjectHash(reqBody); + // We only need to reexecute the query, if forceFetch was true or the hash of the request body has changed + // since the last request + const shouldQuery = forceFetch || (searchSource.lastQuery !== queryHash); + + if (shouldQuery) { + inspectorAdapters.requests.reset(); + const request = inspectorAdapters.requests.start( + i18n.translate('common.ui.vis.courier.inspector.dataRequest.title', { defaultMessage: 'Data' }), + { + description: i18n.translate('common.ui.vis.courier.inspector.dataRequest.description', + { defaultMessage: 'This request queries Elasticsearch to fetch the data for the visualization.' }), + } + ); + request.stats(getRequestInspectorStats(requestSearchSource)); + + try { + // Abort any in-progress requests before fetching again + if (abortSignal) { + abortSignal.addEventListener('abort', () => requestSearchSource.cancelQueued()); + } + + const response = await requestSearchSource.fetch(); + //console.log("raw response:", response); + + searchSource.lastQuery = queryHash; + + request + .stats(getResponseInspectorStats(searchSource, response)) + .ok({ json: response }); + + searchSource.rawResponse = response; + } catch(e) { + // Log any error during request to the inspector + request.error({ json: e }); + throw e; + } finally { + // Add the request body no matter if things went fine or not + requestSearchSource.getSearchRequestBody().then(req => { + request.json(req); + }); + } + } + + // === Copy of courier code ends here, now we parse the response === + + const resp = searchSource.rawResponse; + // Return as object containing a list of unique values (terms) for each + // requested field + let unique_values_lists = {} + for (let field of obsFields) { + unique_values_lists[field.name] = resp.aggregations[field.name].buckets.map( (x) => x.key ); + } + + //console.log("Final lists:", unique_values_lists); + return unique_values_lists; +} diff --git a/roles/build/files/thehive_button/thehive_button/public/vis.less b/roles/build/files/thehive_button/thehive_button/public/vis.less new file mode 100644 index 0000000..b6f887a --- /dev/null +++ b/roles/build/files/thehive_button/thehive_button/public/vis.less @@ -0,0 +1,3 @@ +.myvis-container-div { + padding: 1em; +} diff --git a/roles/build/files/thehive_button/thehive_button/public/vis_controller.js b/roles/build/files/thehive_button/thehive_button/public/vis_controller.js new file mode 100644 index 0000000..8b23222 --- /dev/null +++ b/roles/build/files/thehive_button/thehive_button/public/vis_controller.js @@ -0,0 +1,555 @@ +//import { Status } from 'ui/vis/update_status'; +import { toastNotifications } from 'ui/notify'; +import { createTheHiveCase, addCaseObservables } from './create_case'; +//import vis_template from './vis_template.html'; + +import React, { Component } from 'react'; +import { + EuiButton, + EuiButtonEmpty, + EuiModal, + EuiModalBody, + EuiModalFooter, + EuiModalHeader, + EuiModalHeaderTitle, + EuiOverlayMask, + EuiTitle, + EuiFlexGroup, + EuiFlexItem, + EuiSpacer, + EuiForm, + EuiFormRow, + EuiFieldText, + EuiTextArea, + EuiSuperSelect, + EuiBasicTable, + EuiCheckbox, + makeId, +} from '@elastic/eui'; + + +// ********** React components ********** + +// Main React component - the root of visualization +export class TheHiveButtonVisComponent extends Component { + render() { + //console.log("TheHiveButtonVisComponent.render(), props:", this.props); + return ( + <div> + <NewCaseButton params={this.props.vis.params} observables={this.props.visData} /> + </div> + ); + } + + componentDidMount() { + this.props.renderComplete(); + } + + componentDidUpdate() { + this.props.renderComplete(); + } +} + +// Button to show the pop-up window (modal) +// Props: +// .params - visualization parameters (from vis.params) +// .observables - object with lists of potential observables to add to the Case +// for each field in params.obsFields there should be a key in this object +// containing list of observables (this is returned by request_handler) +class NewCaseButton extends Component { + + constructor(props) { + super(props); + // Filter out invalid obsField specifications + this.obsFields = props.params.obsFields.filter( f => (f.name != "" && f.type != "" && f.cnt > 0) ); + //console.log("Filtered field specs:", this.obsFields); + + // The complete state is here, so it's kept even when modal is closed + this.state = { + isModalVisible: false, + isWorking: false, // used to show a spinner on submit button + ...this.create_initial_state(), + } + + this.resetCnt = 0; // used to change Modal component key on each form reset + + // Each handler function in a class (method) must be "binded" this way + this.closeModal = this.closeModal.bind(this); + this.showModal = this.showModal.bind(this); + this.resetForm = this.resetForm.bind(this); + + this.onTitleChange = this.onTitleChange.bind(this); + this.onSeverityChange = this.onSeverityChange.bind(this); + this.onTLPChange = this.onTLPChange.bind(this); + this.onDescriptionChange = this.onDescriptionChange.bind(this); + + this.onObsSelectionChange = this.onObsSelectionChange.bind(this); + this.onObsDataChange = this.onObsDataChange.bind(this); + + this.submitCase = this.submitCase.bind(this); + } + + create_initial_state() { + // create a new instance of initial state definition + let initial_state = { + // Case parameters + title: "", + description: "\n\n--\nCreated from Kibana", + severity: "2", // medium + tlp: "2", // amber + tags: [], // TODO (not implemented yet) + obsData: {}, // state of observables form fields (obsData->field->index->{descr,tlp,ioc,tags}) + obsSel: {}, // list of observable selections (obsSel->field->list_of_selected_indices) + } + // pre-fill state of each observable to defaults + const initial_field_data = {descr: "", tlp: 2, ioc: false, tags: []}; + for (let field of this.obsFields) { + const n_obs = this.props.observables[field.name].length; + // fill obsData with new copies of initial_field_data + initial_state.obsData[field.name] = new Array(n_obs).fill().map((_)=>({...initial_field_data})); + // nothing is selected + initial_state.obsSel[field.name] = new Array(); + } + return initial_state; + } + + componentDidUpdate(prevProps) { + // If list of observables was updated or obsFields setting has changed, + // reset the component state and precomputed variables. + if (this.props.observables != prevProps.observables) { + if (this.props.params.obsFields != prevProps.params.obsFields) { + // when obsFields change, observables must change as well, so this "if" + // can be inside the first one. + // Filter out invalid obsField specifications + this.obsFields = this.props.params.obsFields.filter( f => (f.name != "" && f.type != "" && f.cnt && f.cnt > 0) ); + //console.log("Filtered field specs:", this.obsFields); + } + //console.log("New list of observables, resetting form."); + this.resetForm(); + } + } + + resetForm() { + this.setState(this.create_initial_state()); + this.resetCnt += 1; // this changes the key of ModalContent, causing it to be replaced by new DOM elelments (otherwise, not all things are reset properly) + this.forceUpdate(); + } + + closeModal() { + this.setState({ isModalVisible: false }); + } + + showModal() { + this.setState({ isModalVisible: true }); + } + + // Event handlers for change of case parameter + onTitleChange(evt) { + this.setState({title: evt.target.value}); + } + onSeverityChange(value) { + this.setState({severity: value}); + } + onTLPChange(value) { + this.setState({tlp: value}); + } + onDescriptionChange(evt) { + this.setState({description: evt.target.value}); + } + + // Event handler for observable (de)selection + onObsSelectionChange(fieldName, selectedItems) { + // Extract indices from the items and store them into state + const selectedIndices = selectedItems.map(item4 => item4.i); + this.setState((state, props) => { + let newObsSel = {...this.state.obsSel}; + newObsSel[fieldName] = selectedIndices; + return {obsSel: newObsSel}; + }); + } + + // Event handler for edit of a form field in observable row + // - fieldName: which field (table of observables) + // - ix: index of the observable in the field's table + // - param: one of: descr,tlp,ioc,tags + // - value: new value of the form field + onObsDataChange(fieldName, ix, param, value) { + this.setState((state, props) => { + let newObsData = {...this.state.obsData}; + newObsData[fieldName][ix][param] = value; + return {obsData: newObsData}; + }); + } + + // Render function + render() { + let modal; + if (this.state.isModalVisible) { + modal = <ModalContent + resetCnt={this.resetCnt} // used to change "key" of modalBody, causing all form fields to be re-created (some things are not reset properly by reseting state only) + close={this.closeModal} + reset={this.resetForm} + fields={this.obsFields} + observables={this.props.observables} + // form state + title={this.state.title} + description={this.state.description} + severity={this.state.severity} + tlp={this.state.tlp} + tags={this.state.tags} + obsData={this.state.obsData} + obsSel={this.state.obsSel} + spinner={this.state.isWorking} + // event handlers + onTitleChange={this.onTitleChange} + onSeverityChange={this.onSeverityChange} + onTLPChange={this.onTLPChange} + onDescriptionChange={this.onDescriptionChange} + onObsSelectionChange={this.onObsSelectionChange} + onObsDataChange={this.onObsDataChange} + submitCase={this.submitCase} + />; + } + return ( + <div> + <EuiButton fill iconType="alert" color="danger" onClick={this.showModal}>Create new Case ...</EuiButton> + {modal} + </div> + ); + } + + // Submit case button handler + async submitCase(evt) { + const params = this.props.params; + + // Get case parameters + const title = this.state.title; + const descr = this.state.description; + const severity = parseInt(this.state.severity); + const start_date = null; + const owner = params.owner; + const flag = false; + const tlp = parseInt(this.state.tlp); + const tags = this.state.tags; + + if (!title) { + toastNotifications.addDanger("Title can't be empty"); + return; + } + + // Get list of selected observables and their params + let observables = []; + for (let field of this.obsFields) { + let selectionIndices = [...this.state.obsSel[field.name]]; // make a copy + selectionIndices.sort(); + for (let i = 0; i < selectionIndices.length; i++) { + const j = selectionIndices[i]; // index of a selected obs. in the list of all observables + // fill in observable definition according to model at + // https://github.com/TheHive-Project/TheHiveDocs/blob/master/api/artifact.md + const obs = { + dataType: field.type, + data: this.props.observables[field.name][j], + message: this.state.obsData[field.name][j].descr, + tlp: this.state.obsData[field.name][j].tlp, + ioc: this.state.obsData[field.name][j].ioc, + tags: this.state.obsData[field.name][j].tags, + }; + observables.push(obs); + } + } + + //console.log("Selected observables:", observables); + + // Check '/' at the end of base URL, add it if needed + let base_url = params.url; + if (base_url[base_url.length-1] != "/") { + base_url += "/"; + } + + // Show spinner at submit button + this.setState({isWorking: true}); + + // Submit request to create the case, handle response + let resp; + resp = await createTheHiveCase(base_url, params.apikey, title, descr, severity, start_date, owner, flag, tlp, tags); + + if ('error' in resp) { + // Error contacting The Hive + console.error("TheHiveButton: ERROR when trying to create new case:", resp.error); + toastNotifications.addDanger("ERROR: " + resp.error); + this.setState({isWorking: false}); // Hide spinner + return; + } + + console.log("TheHiveButton: Case created:", resp); + const case_id = resp.id; + const case_url = base_url + "index.html#/case/" + case_id + "/details"; + + // Show notification + let obs_text; + if (observables.length > 0) { + obs_text = "Adding " + observables.length + " observables in background ..."; + } + else { + obs_text = "(no observables added)"; + } + toastNotifications.add({ + title: "Case created", + color: "success", + iconType: "checkInCircleFilled", + text: ( + <div> + <p><b><a href={case_url} target="_blank">Edit the new Case</a></b></p> + <p>{obs_text}</p> + </div> + ), + }); + + // Close the popup window, reset form fields and hide spinner + this.closeModal(); + this.resetForm(); + this.setState({isWorking: false}); + + // Open a new window with the case in The Hive + // (adding observables may take some time, so the case is opened first; + // The Hive web is dynamic so the observables appear as they are added) + window.open(case_url, '_blank'); + + if (observables.length == 0) + return; + + // Submit request to add observables + console.log("TheHiveButton: adding " + observables.length + " observables ..."); + resp = await addCaseObservables(base_url, params.apikey, case_id, observables); + + if ('error' in resp) { + console.error("TheHiveButton: ERROR when trying to add observables: " + resp.error); + toastNotifications.addDanger("ERROR when trying to add observables: " + resp.error); + } + else { + console.log("TheHiveButton: Done, observables added."); + toastNotifications.add("Done, observables added."); + } + } +} + + +// The popup window with a form +// props: +// - spinner: when true, disable form and show a spinner over it +class ModalContent extends Component { + constructor(props) { + super(props); + // No state here, everything is in the parent class (NewCaseButton) + + // "Select" options + this.severityOptions = [ + {value: "1", inputDisplay: "low"}, + {value: "2", inputDisplay: "medium"}, + {value: "3", inputDisplay: "high"}, + ]; + this.tlpOptions = [ + {value: "0", inputDisplay: "white"}, + {value: "1", inputDisplay: "green"}, + {value: "2", inputDisplay: "amber"}, + {value: "3", inputDisplay: "red"}, + ]; + } + + // Main render function + render() { + // TODO: replace Modal with Flyout? + + // Note: onClick on EuiOverlayMask causes close of modal when clicked outside, + // implementation inspired by PR: https://github.com/elastic/eui/pull/3462/files#diff-c8fda532e48f75c94c343247cbc6b2d3R53-R60 + return ( + <EuiOverlayMask onClick={(evt) => {if (evt.target.classList.contains("euiOverlayMask")) this.props.close();} }> + <EuiModal onClose={this.props.close} maxWidth={false} initialFocus="[name=title]"> + <EuiModalHeader> + <EuiModalHeaderTitle>Create a new case in The Hive</EuiModalHeaderTitle> + </EuiModalHeader> + + <EuiModalBody key={this.props.resetCnt}> + <EuiForm style={{width: "800px"}}> + <EuiFlexGroup> + <EuiFlexItem grow={1}> + <EuiFormRow label="Title" fullWidth> + <EuiFieldText name="title" value={this.props.title} onChange={this.props.onTitleChange} required={true} fullWidth /> + </EuiFormRow> + </EuiFlexItem> + <EuiFlexItem grow={false}> + <EuiFormRow label="Severity"> + <EuiSuperSelect + options={this.severityOptions} + valueOfSelected={this.props.severity} + onChange={this.props.onSeverityChange} + /> + </EuiFormRow> + </EuiFlexItem> + <EuiFlexItem grow={false}> + <EuiFormRow label="TLP"> + <EuiSuperSelect + prepend="TLP" + options={this.tlpOptions} + valueOfSelected={this.props.tlp} + onChange={this.props.onTLPChange} + /> + </EuiFormRow> + </EuiFlexItem> + </EuiFlexGroup> + <EuiFormRow label="Description" fullWidth> + <EuiTextArea + defaultValue={this.props.description} + onChange={this.props.onDescriptionChange} + rows={4} + fullWidth + /> + </EuiFormRow> + + {this.props.fields.length > 0 && <EuiTitle size="s"><h3>Add observables from current query ...</h3></EuiTitle>} + {this.props.fields.map((field,ix) => ( + <ObservablesTable + key={field.name + ":" + this.props.resetCnt} + fieldName={field.name} + observables={this.props.observables[field.name]} + obsData={this.props.obsData[field.name]} + obsSel={this.props.obsSel[field.name]} + onObsSelectionChange={this.props.onObsSelectionChange} + onObsDataChange={this.props.onObsDataChange} + /> + ))} + </EuiForm> + </EuiModalBody> + + <EuiModalFooter> + <EuiButtonEmpty onClick={this.props.close}>Close</EuiButtonEmpty> + <EuiButtonEmpty onClick={this.props.reset}>Reset</EuiButtonEmpty> + <EuiButton onClick={this.props.submitCase} fill isLoading={this.props.spinner}>Create Case</EuiButton> + </EuiModalFooter> + </EuiModal> + </EuiOverlayMask> + ); + } +} + +// Table of potential observables taken from a given field, allowing to select +// which observables to send to The Hive. +// Props: +// fieldName - name of the field this table is for +// observables - list of observable IDs of this field +// obsData - array of objects specifying state of form fields in the table (.descr, .tlp, ...) +// obsSel - array of indices of selected observables +class ObservablesTable extends Component { + + constructor(props) { + super(props); + + // Table columns definition + this.columns = [ + { + field: "id", + name: "Observable", + }, + { + field: "descr", + name: "Description", + description: "Description of the observable in the context of the case", + render: (value, item1) => (<EuiFieldText + value={item1.descr} + onChange={(e) => this.props.onObsDataChange(props.fieldName, item1.i, "descr", e.target.value)} + disabled={!item1.selected} + />) + }, + /*{ + field: "tlp", + name: "TLP", + dataType: "number", + // TODO render and process changes + },*/ + { + field: "ioc", + name: "Is IOC", + dataType: "boolean", + description: "Indicates if the observable is an IOC", + render: (value, item2) => (<EuiCheckbox + id={"ioc-checkbox-"+item2.id} + checked={item2.ioc} + onChange={(e) => this.props.onObsDataChange(props.fieldName, item2.i, "ioc", e.target.checked)} + disabled={!item2.selected} + />) + }, + /*{ + field: "tags", + name: "Tags", + // TODO render and process changes + },*/ + ] + + // Create a reference to EuiBasicTable, so it's node can be accessed in componentDidMount + this.tableRef = React.createRef(); + } + + render() { + // Table data definition (convert props to format suitable for EuiBasicTable) + const n_obs = this.props.observables.length; + this.table_data = new Array(n_obs); + for (let i = 0; i < n_obs; i++) { + this.table_data[i] = { + id: this.props.observables[i], + descr: this.props.obsData[i].descr, + tlp: this.props.obsData[i].tlp, + ioc: this.props.obsData[i].ioc, + tags: this.props.obsData[i].tags, + // auxiliary fields, not shown in table: + i: i, // row index + selected: this.props.obsSel.includes(i), + }; + } + + return ( + <> + <EuiTitle size="xs"><h4>{this.props.fieldName}</h4></EuiTitle> + <EuiBasicTable + ref={this.tableRef} + columns={this.columns} + items={this.table_data} + itemId={(item3) => item3.id} + selection={ {onSelectionChange: (selectedItems) => this.props.onObsSelectionChange(this.props.fieldName, selectedItems) } } + noItemsMessage="No observables found" + rowProps={{ + // Hack to allow selection by clicking anywhere in the table row + // (except input elements) + onClick: (e) => { + if (e.target.tagName != "INPUT") { + // simulate click on the first checkbox in the row to (de)select the row + e.currentTarget.querySelector("input").click(); + e.currentTarget.blur(); // without this the focus remains on the row after click (results in different color) + } + }, + tabIndex: "-1", // prevents focus on row by keyboard navigation + }} + /> + <EuiSpacer size="l" /> + </> + ) + } + + componentDidMount() { + // There's no way to specify initially selected items in EuiBasicTable by + // props, but we may need to select some (in case a user selects some obs., + // closes the modal and opens it again). + // However, the selection is stored as a 'selection' field of table's state, + // so here we directly edit the state just after the table is created. + + // Prepare the 'selection' array - it should contain a list of selected row specifications + let selection = []; + for (let ix of this.props.obsSel) { + selection.push(this.table_data[ix]); + } + + // Get ref to EuiBasicTable element and update its state + const table_node = this.tableRef.current; + table_node.setState({selection: selection}); + } +} + diff --git a/roles/build/files/thehive_button/thehive_button/server/routes/newcase.js b/roles/build/files/thehive_button/thehive_button/server/routes/newcase.js new file mode 100644 index 0000000..175dee8 --- /dev/null +++ b/roles/build/files/thehive_button/thehive_button/server/routes/newcase.js @@ -0,0 +1,153 @@ +const request = require('request'); +//const fs = require('fs'); +//const path = require('path'); + +//const caFile = path.resolve(__dirname, '../../ca.cert.pem'); // TODO resolve where the CA file should be located / configured + +export default function (server) { + server.route({ + path: '/api/thehive_button/new_case', + method: 'POST', + handler: newCaseHandler, + }); + server.route({ + path: '/api/thehive_button/add_observables', + method: 'POST', + handler: addObservablesHandler, + }); +} + +// Handler of ajax requests to create a new Case in The Hive +function newCaseHandler(req, resp) { + // Parse the request to get connection parameters + // (everything is configured in forntend and sent as part of the request, + // since I don't know how to configure the backend) + var base_url = req.payload['base_url']; + var api_key = req.payload['api_key']; + var req_body = req.payload['body']; + + // check it's a valid URL with slash at the end + if (!base_url) { + return {'error': 'Base URL not set'}; + } + if (!base_url.match(/https?:\/\/(([a-z\d.-]+)|((\d{1,3}\.){3}\d{1,3}))(\:\d+)?(\/[-a-z\d%_.~+]*)*\//i)) { + //if (!base_url.match(/https?:\/\/.*\//)) { + return {'error': 'Invalid base URL (it must begin with "http[s]" and end with "/")'}; + } + if (!api_key) { + return {'error': 'API key not set'}; + } + + return new Promise( function(resolve, reject) { + request({ + method: 'POST', + url: base_url + 'api/case', + auth: {'bearer': api_key}, + json: true, + body: req_body, + //ca: fs.readFileSync(caFile), // TODO resolve the issue with custom CA, where to get its cert? + rejectUnauthorized: false, + }, + // handler of the reply from The Hive - just return as reply + function (error, response, body) { + // TODO: find out how to set response code, for now we always return sucess and encode original status code in the content + if (error) { + console.error("ERROR when trying to send request to The Hive:", error); + resolve({'error': error.message}); + } + else { + if (response.statusCode < 200 || response.statusCode >= 300) { + console.error("ERROR Unexpected reply received from The Hive:", response.statusCode, response.statusMessage, "\n", body) + } + resolve({ + 'status_code': response.statusCode, + 'status_msg': response.statusMessage, + 'body': body + }); + } + } // handler function + ); // request() + }); // Promise() +} + +// Note: +// There are two ways to create multiple Observables (artifacts) via The Hive API: +// 1. post one request with an array of observables in "data" field +// - this allows to create all in one request, but doesn't allow to set +// different parameters (IOC, TLP, etc.) to different observables +// 2. post each observable in a separate request +// The second way is used here. + +// Handler of ajax requests to add Observables to a Case in The Hive +function addObservablesHandler(req, resp) { + // Parse the request to get connection parameters + // (everything is configured in forntend and sent as part of the request, + // since I don't know how to configure the backend) + var base_url = req.payload['base_url']; + var api_key = req.payload['api_key']; + + // check it's a valid URL with slash at the end + if (!base_url) { + return {'error': 'Base URL not set'}; + } + if (!base_url.match(/https?:\/\/(([a-z\d.-]+)|((\d{1,3}\.){3}\d{1,3}))(\:\d+)?(\/[-a-z\d%_.~+]*)*\//i)) { + //if (!base_url.match(/https?:\/\/.*\//)) { + return {'error': 'Invalid base URL (it must begin with "http[s]" and end with "/")'}; + } + // TODO add "/" to the end automatically + if (!api_key) { + return {'error': 'API key not set'}; + } + + const caseid = req.payload['caseid']; + const observables = req.payload['observables']; // array of obersvable specifications + + return new Promise( async function(resolve, reject) { + // Run one request for each observable + // (A way to run multiple async tasks sequentially inspired by: + // https://jrsinclair.com/articles/2019/how-to-run-async-js-in-parallel-or-sequential/ ) + const starterPromise = Promise.resolve(null); + await observables.reduce( + (p, obs) => p.then(() => addObservable(base_url, api_key, caseid, obs)), + starterPromise + ).catch((err_msg) => { + console.error(err_msg); // log whole message + resolve({'error': err_msg.split("\n", 1)[0]}); // send the first line to frontend + return; + } + ); + resolve({}); + }); +} + +function addObservable(base_url, api_key, caseid, obs) { + return new Promise( function(resolve, reject) { + //console.log("Adding observable:", obs); + request({ + method: 'POST', + url: base_url + 'api/case/' + caseid + "/artifact", + auth: {'bearer': api_key}, + json: true, + body: obs, + //ca: fs.readFileSync(caFile), // TODO resolve the issue with custom CA, where to get its cert? + rejectUnauthorized: false, + }, + // handler of the reply from The Hive - just return as reply + function (error, response, body) { + if (error) { + reject("ERROR when trying to send request to The Hive: " + error); + } + else if (response.statusCode < 200 || response.statusCode >= 300) { + reject("ERROR: Unexpected reply received from The Hive: " + response.statusCode + " " + response.statusMessage + "\n" + JSON.stringify(body)); + } + else { + // success - continue with the next observable + resolve("OK"); + resolve({}) + } + } // handler function + ); // request() + }); //Promise() +} + + diff --git a/roles/build/files/zookeeperDockerfile b/roles/build/files/zookeeperDockerfile new file mode 100644 index 0000000..33ea38a --- /dev/null +++ b/roles/build/files/zookeeperDockerfile @@ -0,0 +1,34 @@ +FROM gn43-dsl/openjdk:7a20201004 +#LABEL maintainer="Apache NiFi <dev@nifi.apache.org>" +#LABEL site="https://nifi.apache.org" + +#ARG UID=1000 +#ARG GID=1000 +ARG ZOOKEEPER_VERSION=3.5.5 +ARG BASE_URL=https://archive.apache.org/dist +ARG MIRROR_BASE_URL=${MIRROR_BASE_URL:-${BASE_URL}} +ARG ZOOKEEPER_BINARY_PATH=${ZOOKEEPER_BINARY_PATH:-/zookeeper/zookeeper-${ZOOKEEPER_VERSION}/apache-zookeeper-${ZOOKEEPER_VERSION}-bin.tar.gz} + +ENV ZOOKEEPER_BASE_DIR=/opt + +#ENV ZOOKEEPER_PID_DIR=${ZOOKEEPER_HOME}/run +#ENV ZOOKEEPER_LOG_DIR=${ZOOKEEPER_HOME}/logs + +# USER nifi + +# Download, validate, and expand Apache NiFi binary. +RUN curl -fSL ${MIRROR_BASE_URL}/${ZOOKEEPER_BINARY_PATH} -o ${ZOOKEEPER_BASE_DIR}/apache-zookeeper-${ZOOKEEPER_VERSION}-bin.tar.gz \ +# && echo "$(curl ${BASE_URL}/${ZOOKEEPER_BINARY_PATH}.sha512) *${ZOOKEEPER_BASE_DIR}/apache-zookeeper-${ZOOKEEPER_VERSION}-bin.tar.gz" | sha256sum -c - \ + && tar -xzf ${ZOOKEEPER_BASE_DIR}/apache-zookeeper-${ZOOKEEPER_VERSION}-bin.tar.gz -C ${ZOOKEEPER_BASE_DIR} \ + && mv ${ZOOKEEPER_BASE_DIR}/apache-zookeeper-${ZOOKEEPER_VERSION}-bin ${ZOOKEEPER_BASE_DIR}/zookeeper \ + && rm ${ZOOKEEPER_BASE_DIR}/apache-zookeeper-${ZOOKEEPER_VERSION}-bin.tar.gz \ + && cp ${ZOOKEEPER_BASE_DIR}/zookeeper/conf/zoo_sample.cfg ${ZOOKEEPER_BASE_DIR}/zookeeper/conf/zoo.cfg + +# Web HTTP(s) & Socket Site-to-Site Ports +EXPOSE 2181 2888 3888 + +WORKDIR ${ZOOKEEPER_BASE_DIR}/zookeeper + +ENTRYPOINT ["/opt/zookeeper/bin/zkServer.sh"] +CMD ["start-foreground"] + diff --git a/roles/build/tasks/cassandra.yml b/roles/build/tasks/cassandra.yml new file mode 100644 index 0000000..1c0a2c6 --- /dev/null +++ b/roles/build/tasks/cassandra.yml @@ -0,0 +1,11 @@ +--- + +- name: Configure the cassandra Dockerfile + template: + src: cassandra/Dockerfile.j2 + dest: "{{role_path}}/files/cassandraDockerfile" + +- name: Build cassandra image + command: docker build -t {{repo}}/cassandra:{{version}}{{suffix}} -f {{role_path}}/files/cassandraDockerfile {{role_path}}/files + + diff --git a/roles/build/tasks/cortex.yml b/roles/build/tasks/cortex.yml new file mode 100644 index 0000000..9a5adbe --- /dev/null +++ b/roles/build/tasks/cortex.yml @@ -0,0 +1,11 @@ +--- + +- name: Configure the Cortex Dockerfile + template: + src: cortex/Dockerfile.j2 + dest: "{{role_path}}/files/cortexDockerfile" + +- name: Build the Cortex image + command: docker build -t {{repo}}/cortex:{{version}}{{suffix}} -f {{role_path}}/files/cortexDockerfile {{role_path}}/files + + diff --git a/roles/build/tasks/haproxy.yml b/roles/build/tasks/haproxy.yml new file mode 100644 index 0000000..9cb45f8 --- /dev/null +++ b/roles/build/tasks/haproxy.yml @@ -0,0 +1,10 @@ +--- + +- name: Configure the haproxy Dockerfile + template: + src: haproxy/Dockerfile.j2 + dest: "{{role_path}}/files/haproxyDockerfile" + +- name: Build haproxy image + command: docker build -t {{repo}}/haproxy:{{version}}{{suffix}} -f {{role_path}}/files/haproxyDockerfile {{role_path}}/files + diff --git a/roles/build/tasks/keycloak.yml b/roles/build/tasks/keycloak.yml new file mode 100644 index 0000000..f7a7c2b --- /dev/null +++ b/roles/build/tasks/keycloak.yml @@ -0,0 +1,18 @@ +--- + +- name: Configure the keycloak Dockerfile + template: + src: keycloak/Dockerfile.j2 + dest: "{{role_path}}/files/keycloakDockerfile" + +- name: Copy tools to build path + command: "cp -av {{role_path}}/templates/keycloak/keycloak-tools/ {{role_path}}/files/keycloak-tools/" + +- name: Build keycloak image + command: docker build -t {{repo}}/keycloak:{{version}}{{suffix}} -f {{role_path}}/files/keycloakDockerfile {{role_path}}/files + +- name: Remove tools from build path + file: + path: "{{role_path}}/files/keycloak-tools/" + state: absent + diff --git a/roles/build/tasks/misp.yml b/roles/build/tasks/misp.yml new file mode 100644 index 0000000..d52c39c --- /dev/null +++ b/roles/build/tasks/misp.yml @@ -0,0 +1,20 @@ +--- + +- name: Configure the misp Dockerfile + template: + src: misp/Dockerfile.j2 + dest: "{{role_path}}/files/mispDockerfile" + +- name: Configure the misp supervisor + template: + src: misp/supervisord.conf.j2 + dest: "{{role_path}}/files/mispsupervisord.conf" + +- name: Configure the misp worker startscript + template: + src: misp/start.sh.j2 + dest: "{{role_path}}/files/mispstart.sh" + +- name: Build misp image + command: docker build -t {{repo}}/misp:{{version}}{{suffix}} -f {{role_path}}/files/mispDockerfile {{role_path}}/files + diff --git a/roles/build/tasks/mysql.yml b/roles/build/tasks/mysql.yml new file mode 100644 index 0000000..a028190 --- /dev/null +++ b/roles/build/tasks/mysql.yml @@ -0,0 +1,15 @@ +--- + +- name: Configure the mysql Dockerfile + template: + src: mysql/Dockerfile.j2 + dest: "{{role_path}}/files/mysqlDockerfile" + +- name: Configure the mysql supervisor + template: + src: mysql/supervisord.conf.j2 + dest: "{{role_path}}/files/mysqlsupervisord.conf" + +- name: Build mysql image + command: docker build -t {{repo}}/mysql:{{version}}{{suffix}} -f {{role_path}}/files/mysqlDockerfile {{role_path}}/files + diff --git a/roles/build/tasks/nifi.yml b/roles/build/tasks/nifi.yml new file mode 100644 index 0000000..423978d --- /dev/null +++ b/roles/build/tasks/nifi.yml @@ -0,0 +1,11 @@ +--- + +- name: Configure the nifi Dockerfile + template: + src: nifi/Dockerfile.j2 + dest: "{{role_path}}/files/nifiDockerfile" + +- name: Build nifi image + command: docker build -t {{repo}}/nifi:{{version}}{{suffix}} -f {{role_path}}/files/nifiDockerfile {{role_path}}/files + + diff --git a/roles/build/tasks/odfees.yml b/roles/build/tasks/odfees.yml new file mode 100644 index 0000000..5741223 --- /dev/null +++ b/roles/build/tasks/odfees.yml @@ -0,0 +1,18 @@ +--- + +- name: Configure elasticsearch Dockerfile + template: + src: odfees/Dockerfile-elastic.j2 + dest: "{{role_path}}/files/elasticDockerfile" + +- name: Build elasticsearch image + command: docker build -t {{repo}}/elasticsearch:{{version}}{{suffix}} -f {{role_path}}/files/elasticDockerfile {{role_path}}/files + +- name: Configure odfe elasticsearch Dockerfile + template: + src: odfees/Dockerfile-odfeelastic.j2 + dest: "{{role_path}}/files/odfeesDockerfile" + +- name: Build odfe elasticsearch image + command: docker build -t {{repo}}/odfees:{{version}}{{suffix}} -f {{role_path}}/files/odfeesDockerfile {{role_path}}/files + diff --git a/roles/build/tasks/odfekibana.yml b/roles/build/tasks/odfekibana.yml new file mode 100644 index 0000000..8e1980a --- /dev/null +++ b/roles/build/tasks/odfekibana.yml @@ -0,0 +1,22 @@ +--- + +- name: Configure kibana Dockerfile + template: + src: odfekibana/Dockerfile-kibana.j2 + dest: "{{role_path}}/files/kibanaDockerfile" + +- name: Copy tools to build path + command: "cp -av {{role_path}}/templates/odfekibana/thehive_button/ {{role_path}}/files/thehive_button/" + +- name: Build kibana image + command: docker build -t {{repo}}/kibana:{{version}}{{suffix}} -f {{role_path}}/files/kibanaDockerfile {{role_path}}/files + +- name: Configure odfe kibana Dockerfile + template: + src: odfekibana/Dockerfile-odfekibana.j2 + dest: "{{role_path}}/files/odfekibanaDockerfile" + +- name: Build odfe kibana image + command: docker build -t {{repo}}/odfekibana:{{version}}{{suffix}} -f {{role_path}}/files/odfekibanaDockerfile {{role_path}}/files + + diff --git a/roles/build/tasks/openjdk.yml b/roles/build/tasks/openjdk.yml new file mode 100644 index 0000000..8754ac7 --- /dev/null +++ b/roles/build/tasks/openjdk.yml @@ -0,0 +1,11 @@ +--- + +- name: Configure the openjdk Dockerfile + template: + src: openjdk/Dockerfile.j2 + dest: "{{role_path}}/files/openjdkDockerfile" + +- name: Build openjdk image + command: docker build -t {{repo}}/openjdk:{{version}}{{suffix}} -f {{role_path}}/files/openjdkDockerfile {{role_path}}/files + + diff --git a/roles/build/tasks/thehive.yml b/roles/build/tasks/thehive.yml new file mode 100644 index 0000000..35fe08e --- /dev/null +++ b/roles/build/tasks/thehive.yml @@ -0,0 +1,11 @@ +--- + +- name: Configure theHive Dockerfile + template: + src: thehive/Dockerfile.j2 + dest: "{{role_path}}/files/thehiveDockerfile" + +- name: Build theHive image + command: docker build -t {{repo}}/thehive:{{version}}{{suffix}} -f {{role_path}}/files/thehiveDockerfile {{role_path}}/files + + diff --git a/roles/build/tasks/zookeeper.yml b/roles/build/tasks/zookeeper.yml new file mode 100644 index 0000000..a61a6b3 --- /dev/null +++ b/roles/build/tasks/zookeeper.yml @@ -0,0 +1,11 @@ +--- + +- name: Configure the zookeeper Dockerfile + template: + src: zookeeper/Dockerfile.j2 + dest: "{{role_path}}/files/zookeeperDockerfile" + +- name: Build zookeeper image + command: docker build -t {{repo}}/zookeeper:{{version}}{{suffix}} -f {{role_path}}/files/zookeeperDockerfile {{role_path}}/files + + diff --git a/roles/build/templates/cassandra/cassandra.repo.j2 b/roles/build/templates/cassandra/cassandra.repo.j2 new file mode 100644 index 0000000..8fdb78c --- /dev/null +++ b/roles/build/templates/cassandra/cassandra.repo.j2 @@ -0,0 +1,6 @@ +[cassandra] +name=Apache Cassandra +baseurl=https://downloads.apache.org/cassandra/redhat/311x/ +gpgcheck=1 +repo_gpgcheck=1 +gpgkey=https://downloads.apache.org/cassandra/KEYS diff --git a/roles/build/templates/cassandra/start.sh.j2 b/roles/build/templates/cassandra/start.sh.j2 new file mode 100644 index 0000000..fa91e92 --- /dev/null +++ b/roles/build/templates/cassandra/start.sh.j2 @@ -0,0 +1,10 @@ +#!/bin/bash +export CASSANDRA_HOME=/usr/share/cassandra +export CASSANDRA_CONF=$CASSANDRA_HOME/conf +export CASSANDRA_INCLUDE=$CASSANDRA_HOME/cassandra.in.sh +log_file=/var/log/cassandra/cassandra.log +pid_file=/var/run/cassandra/cassandra.pid +lock_file=/var/lock/subsys/cassandra +CASSANDRA_PROG=/usr/sbin/cassandra + +$CASSANDRA_PROG -p $pid_file > $log_file 2>&1 diff --git a/roles/build/templates/cassandra/supervisord.conf.j2 b/roles/build/templates/cassandra/supervisord.conf.j2 new file mode 100644 index 0000000..d1f405e --- /dev/null +++ b/roles/build/templates/cassandra/supervisord.conf.j2 @@ -0,0 +1,10 @@ +[supervisord] +loglevel=debug +nodaemon=true +[program:cassandra] +user=cassandra +directory=/usr/share/cassandra +stdout_logfile=/var/log/cassandra/cassandra.log +redirect_stderr=true +environment=CASSANDRA_HOME="/usr/share/cassandra",CASSANDRA_CONF="/usr/share/cassandra/conf",CASSANDRA_INCLUDE="$CASSANDRA_HOME/cassandra.in.sh" +command=/usr/sbin/cassandra -p /var/run/cassandra/cassandra.pid diff --git a/roles/build/templates/misp/supervisord.conf.j2 b/roles/build/templates/misp/supervisord.conf.j2 new file mode 100644 index 0000000..fbd4dea --- /dev/null +++ b/roles/build/templates/misp/supervisord.conf.j2 @@ -0,0 +1,25 @@ +[supervisord] +nodaemon=false +user=root + +[program:php-fpm] +# EnvironmentFile=/etc/opt/rh/rh-php72/sysconfig/php-fpm +command=/opt/rh/rh-php72/root/usr/sbin/php-fpm --nodaemonize + +[program:redis-server] +process_name = redis-server +directory = /var/opt/rh/rh-redis32/lib/redis/ +command=/opt/rh/rh-redis32/root/usr/bin/redis-server /etc/opt/rh/rh-redis32/redis.conf +user=redis + +[program:apache2] +command=/usr/sbin/httpd -DFOREGROUND + +[program:misp-modules] +command=/bin/bash -c "/usr/local/bin/misp-modules -l '0.0.0.0' -s" +user = apache +startsecs = 0 + +[program:workers] +command=/bin/bash /var/www/MISP/app/Console/worker/start.sh +user=apache diff --git a/roles/build/templates/mysql/supervisord.conf.j2 b/roles/build/templates/mysql/supervisord.conf.j2 new file mode 100644 index 0000000..e44e9fe --- /dev/null +++ b/roles/build/templates/mysql/supervisord.conf.j2 @@ -0,0 +1,7 @@ +[supervisord] +loglevel=debug +nodaemon=true +[program:mysql] +user=mysql +directory=/var/lib/mysql +command=/opt/rh/rh-mariadb103/root/usr/libexec/mysqld-scl-helper enable rh-mariadb103 -- /opt/rh/rh-mariadb103/root/usr/libexec/mysqld --basedir=/opt/rh/rh-mariadb103/root/usr diff --git a/roles/build/templates/odfees/Dockerfile-elastic.j2 b/roles/build/templates/odfees/Dockerfile-elastic.j2 new file mode 100644 index 0000000..dd2ad12 --- /dev/null +++ b/roles/build/templates/odfees/Dockerfile-elastic.j2 @@ -0,0 +1,21 @@ +FROM {{repo}}/openjdk:{{version}}{{suffix}} + +ENV PATH="/usr/share/elasticsearch/bin:${PATH}" + +RUN groupadd -g 1000 elasticsearch && \ + adduser -u 1000 -g 1000 -d /usr/share/elasticsearch elasticsearch + +WORKDIR /usr/share/elasticsearch + +RUN rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch && \ + rpm -Uvh https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-{{elk_version}}-no-jdk-x86_64.rpm && \ + cp -a /etc/elasticsearch/ /usr/share/elasticsearch/config/ && \ + chown -R elasticsearch /usr/share/elasticsearch/config && \ + mkdir -p /usr/share/elasticsearch/data && \ + chown -R elasticsearch /usr/share/elasticsearch/data && \ + sed -i -e 's,ES_PATH_CONF=/etc/elasticsearch,ES_PATH_CONF=/usr/share/elasticsearch/config,g' /etc/sysconfig/elasticsearch + +EXPOSE 9200 9300 +USER elasticsearch +ENTRYPOINT ["/bin/bash"] + diff --git a/roles/build/templates/odfees/Dockerfile-odfeelastic.j2 b/roles/build/templates/odfees/Dockerfile-odfeelastic.j2 new file mode 100644 index 0000000..0803d0b --- /dev/null +++ b/roles/build/templates/odfees/Dockerfile-odfeelastic.j2 @@ -0,0 +1,16 @@ +FROM {{repo}}/elasticsearch:{{version}}{{suffix}} + +ENV PATH="/usr/share/elasticsearch/bin:${PATH}" + +USER root +WORKDIR /usr/share/elasticsearch + +RUN for PLUGIN in \ + https://d3g5vo6xdbdb9a.cloudfront.net/downloads/elasticsearch-plugins/opendistro-security/opendistro_security-{{odfeplugin_version}}.zip \ + https://d3g5vo6xdbdb9a.cloudfront.net/downloads/elasticsearch-plugins/opendistro-alerting/opendistro_alerting-{{odfeplugin_version}}.zip \ + https://d3g5vo6xdbdb9a.cloudfront.net/downloads/elasticsearch-plugins/opendistro-sql/opendistro_sql-{{odfeplugin_version}}.zip; \ + do bin/elasticsearch-plugin install -b ${PLUGIN}; done && \ + chown -R elasticsearch plugins/opendistro_security + +USER elasticsearch + diff --git a/roles/build/templates/odfekibana/Dockerfile-odfekibana.j2 b/roles/build/templates/odfekibana/Dockerfile-odfekibana.j2 new file mode 100644 index 0000000..ee69568 --- /dev/null +++ b/roles/build/templates/odfekibana/Dockerfile-odfekibana.j2 @@ -0,0 +1,18 @@ +FROM {{repo}}/kibana:{{version}}{{suffix}} + +ENV PATH="/usr/share/kibana/bin:${PATH}" + +USER root +WORKDIR /usr/share/kibana + +RUN for PLUGIN in \ + https://d3g5vo6xdbdb9a.cloudfront.net/downloads/kibana-plugins/opendistro-security/opendistro_security_kibana_plugin-{{odfeplugin_version}}.zip \ + https://d3g5vo6xdbdb9a.cloudfront.net/downloads/kibana-plugins/opendistro-alerting/opendistro-alerting-{{odfeplugin_version}}.zip \ + https://d3g5vo6xdbdb9a.cloudfront.net/downloads/kibana-plugins/opendistro-index-management/opendistro_index_management_kibana-{{odfeplugin_version}}.zip; \ + do bin/kibana-plugin install --allow-root ${PLUGIN}; done + +ADD thehive_button /usr/share/kibana/plugins/thehive_button +RUN chown -R kibana:kibana /usr/share/kibana/plugins/thehive_button + +USER kibana + diff --git a/roles/build/templates/thehive/start.sh b/roles/build/templates/thehive/start.sh new file mode 100644 index 0000000..fa91e92 --- /dev/null +++ b/roles/build/templates/thehive/start.sh @@ -0,0 +1,10 @@ +#!/bin/bash +export CASSANDRA_HOME=/usr/share/cassandra +export CASSANDRA_CONF=$CASSANDRA_HOME/conf +export CASSANDRA_INCLUDE=$CASSANDRA_HOME/cassandra.in.sh +log_file=/var/log/cassandra/cassandra.log +pid_file=/var/run/cassandra/cassandra.pid +lock_file=/var/lock/subsys/cassandra +CASSANDRA_PROG=/usr/sbin/cassandra + +$CASSANDRA_PROG -p $pid_file > $log_file 2>&1 diff --git a/roles/build/templates/thehive/supervisord.conf b/roles/build/templates/thehive/supervisord.conf new file mode 100644 index 0000000..d1f405e --- /dev/null +++ b/roles/build/templates/thehive/supervisord.conf @@ -0,0 +1,10 @@ +[supervisord] +loglevel=debug +nodaemon=true +[program:cassandra] +user=cassandra +directory=/usr/share/cassandra +stdout_logfile=/var/log/cassandra/cassandra.log +redirect_stderr=true +environment=CASSANDRA_HOME="/usr/share/cassandra",CASSANDRA_CONF="/usr/share/cassandra/conf",CASSANDRA_INCLUDE="$CASSANDRA_HOME/cassandra.in.sh" +command=/usr/sbin/cassandra -p /var/run/cassandra/cassandra.pid diff --git a/roles/build/templates/thehive/thehive.repo b/roles/build/templates/thehive/thehive.repo new file mode 100644 index 0000000..ff38064 --- /dev/null +++ b/roles/build/templates/thehive/thehive.repo @@ -0,0 +1,7 @@ +[thehive-project] +enabled=1 +priority=1 +name=TheHive-Project RPM repository +baseurl=http://rpm.thehive-project.org/stable/noarch +gpgcheck=1 + diff --git a/roles/ca/files/CA/.rnd b/roles/ca/files/CA/.rnd new file mode 100644 index 0000000000000000000000000000000000000000..b7292db0335ef4cf2d62de2a5e033524b2ad01a1 GIT binary patch literal 1024 zcmZ3+zv+--X62(;88!#2d)rJ{1j}aT6d%m~I^*V#^~!Uq&0K5dWjS=k?_d0R@5Dse zvqvtPw>_QsHYi~0xAx3Qi}UNA75RiV&b=3rc(u@}iQnWw%_Ze^*H~||D=7Q^uYNp1 z_E^#U{D+bCYaTt@!5m+*bk;iUJ3H2O^yJ->4UxHZWY*6u<+Hej4MitR-qSI8h14H8 zG42a_GLhR#E^j=p;&&o4cBaLyty%5LOnGPCT3t#`xxSw5^nS0n2ECe)`pw-ZqIY~K zYGysRNjiGs_l*^-b#sqiyY$3oV-)Z9DG7@XZdke?#Vs=Jl)lEJyH#wuR#yZn#9}tQ zW~y(kWGVb}(rxZ!WAR+J%_%`1D`c`}SSf34OV(`R`aI#Rfz-QcM!m;a{uM0anBUP5 zVq=>VlgYE}!MV&dQ!cMPj1oUg7Bjxyd}RK&_hx@)y7g{cv;Ty}{E6p%cU+xR%;NCe z;vQpB9ydqx!m!2GQC2NMEPCM|bxtg|otd5xczl-TOjhrQhcY7$MVyyvU=^<sx72yO zmP1{+ZRN76=UwyV*DrQ?$GP5Pd(%R{uvIa3j}EH4$gJR~WHh@P^~vDou0kQ>{YPvn zUrFA7yoWpQz^k@@@4^FC%<7!?)^)KAzxruUmRq4;uJ$MED%SAi*u^SX&b}#-y`sy& z<MYKN_vxF%w;C;qdUto{#}8i=TVLl-UVHQ8m$sxSn~zl)W##O9Csel8I{k=q_}Tlb z)0uW(GdaznpD0`TU`^DCPcfGqV)M;T-kEgU<YcEP<7K1sDYh)n8Z};q=y+D=C)G0C znKNgJ)9YIA-*4CDHec4tkH~2ZH>hm4d>DVv&L+Kz&Ell&#A|^|9>(=PN|QVi6Em6n zcJ}K(F=i@{e-+#8=-{h#zcx*vaJ}ED<DrTAv-e1@>)IFa>yBl`FVS>+>CHx`<Cf?K zBs~y3QowBepmJ64-ngi;s(H;zw@q*_y0(4pi?IH=%NRBbUU1!|^O^N#?0fEtiLVkZ zK3N=A@xAqbL4?Y~MqORW{l3*liqy`$<E}6^v43lH(Pa*|eHDjkQGrBCp~bEr+D!BJ zGcB!Q*B4hP+J1y<>#b5_SC6Ti54J7cqjk6?-LLNL?0H*H-sd>Ie9`~KS^~%F5?<97 z+3#+A)>ZI$Tke%fM%_P-xjf%_as9a@)f)#xzvxL{dcbGB+xvBvlJ0?h&TCxsdY`}K z^E$kqsq#sgv&!<enYXvzZc?7w%qMi0`LfB2b9d%1_u|W9%$)np-Qa@f2W_i>GqbB^ z2{d!%)l_Jl?l{4p8RE{(r2g*9Qbm_#kF;jU{|{VqflVkY@W<pue?#OVGamU{#ulAA u`P6w6lY8>)%&E(d<On^;J{{A}Z<=@6TtV#8M%SN54n}UiaDeUQG7|tcZuh+a literal 0 HcmV?d00001 diff --git a/roles/ca/files/CA/ca.crt b/roles/ca/files/CA/ca.crt new file mode 100644 index 0000000..04b1f20 --- /dev/null +++ b/roles/ca/files/CA/ca.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDNTCCAh2gAwIBAgIJAIp0kyaAW0K3MA0GCSqGSIb3DQEBCwUAMBYxFDASBgNV +BAMMC1NPQ1RPT0xTLUNBMB4XDTIwMTAzMDEwNDcxOFoXDTMwMTAyODEwNDcxOFow +FjEUMBIGA1UEAwwLU09DVE9PTFMtQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQC1GZDFZJPR7AYkhEsB9U6qtK+40di3KOeTwRosJ7hvP1FQjwnIC37B +UlVq15KEgRTCcXgLH0CdtzC1Rkz+AUCLyKTOGmNCqmvyMcESdpuoI1NULkv0QeYX +Mj4Q1Lh0RldqZpEr32UfsVowBPPhijAUlVAHeJLvji/tnUvI++9no2hx03UAhjTM +M59AviYsRT3DUkciNSllpwV+7B2pgnpRgzsbVGP2cheaaRYG9DAbRTLrAtVxO0WJ +c/zNGSpvXuOyBK30/pwGMvhNGPeckElSpDfaepuA8ZDcfaKNk0kEBvzIlUrpZBmv +tBc5DmpfEBlSk5UK/0XSblKE5dOqlWc1AgMBAAGjgYUwgYIwHQYDVR0OBBYEFHkG +ykDTn5pUrtMzTfI4PrYL8z3PMEYGA1UdIwQ/MD2AFHkGykDTn5pUrtMzTfI4PrYL +8z3PoRqkGDAWMRQwEgYDVQQDDAtTT0NUT09MUy1DQYIJAIp0kyaAW0K3MAwGA1Ud +EwQFMAMBAf8wCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBCwUAA4IBAQA0XK1+Eg+j +JdwKnUpnwPq+fsyrCs4TF1DgwtqY4yr1KCw0QSPMK9ldLp62lJaRnrPE7ZGOQ7sd +z82yEM8nMulNREp3TZwuVFaWgs0yLVKkfqZ0jNGDuEf8AJAynI4ynRbtYxtYzBDy +XgJPk9lKK/gR14IXBet/dGbZf4yHiMzldMCb0dWzyDS1S+Y1iLTRCmpmRbFow12g +CjNoSxdyoJPZavcOVWa4tDc3PLMdkgdY20ewo3IvCQTOg9ogVX4Hq5/M4xTz8XUX +nHeUqshdkPVGFCIujCBg9131RYSE0SkVrPUaIbP9tgzabkZWwhiq8oSpTBmIi9qh +GPiQTFGknE1U +-----END CERTIFICATE----- diff --git a/roles/ca/files/CA/certs_by_serial/01EC4DAD3E5E47CF4E4B98495932B337.pem b/roles/ca/files/CA/certs_by_serial/01EC4DAD3E5E47CF4E4B98495932B337.pem new file mode 100644 index 0000000..ad6921c --- /dev/null +++ b/roles/ca/files/CA/certs_by_serial/01EC4DAD3E5E47CF4E4B98495932B337.pem @@ -0,0 +1,88 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 01:ec:4d:ad:3e:5e:47:cf:4e:4b:98:49:59:32:b3:37 + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=SOCTOOLS-CA + Validity + Not Before: Oct 30 10:47:25 2020 GMT + Not After : Oct 15 10:47:25 2023 GMT + Subject: CN=dsoclab-nifi-1 + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:c3:af:ef:b7:a1:95:47:5f:55:ea:7e:e8:d6:fd: + d5:e3:19:68:2e:72:1f:90:62:a8:79:76:d8:d2:f6: + 51:df:71:80:37:5a:ec:7d:fb:6d:78:6e:37:fe:e5: + 1b:c8:d5:73:e4:c9:a5:cb:e8:4a:48:26:c6:e0:a6: + 5e:14:2c:90:b1:81:b2:69:31:e2:44:85:97:f5:60: + 12:88:06:9d:8d:cf:4a:a2:77:b3:d9:ff:f3:41:40: + 4c:21:e1:73:8d:98:82:2f:37:27:0c:24:d8:67:bd: + c7:05:50:40:c5:a9:d0:e4:3f:bb:0c:72:29:7c:be: + 06:01:96:03:b8:a0:42:c4:6f:6f:da:aa:17:34:5f: + 5e:f3:73:0e:77:b5:7a:9a:59:e3:3c:d1:39:50:17: + 2f:53:18:05:82:34:29:1b:19:56:2e:c2:db:24:79: + 51:0f:a8:d9:66:3c:72:1e:a0:f7:03:d6:e9:e5:c6: + b9:be:94:e4:84:bd:cd:93:26:eb:3b:17:bb:cd:e5: + 58:25:f2:28:35:a4:b1:70:df:32:54:85:f6:3c:20: + 9f:88:8b:5d:83:a2:c4:1e:31:d9:a1:76:1d:2e:3c: + f8:78:64:a4:dd:3a:b2:56:65:bf:a8:2a:a8:ed:62: + c9:62:2c:72:bd:9d:7e:6b:1f:80:ea:bc:33:60:47: + d3:0f + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + 87:9A:8D:12:3A:69:8D:89:98:F6:95:D0:F2:ED:C3:DC:ED:A0:22:12 + X509v3 Authority Key Identifier: + keyid:79:06:CA:40:D3:9F:9A:54:AE:D3:33:4D:F2:38:3E:B6:0B:F3:3D:CF + DirName:/CN=SOCTOOLS-CA + serial:8A:74:93:26:80:5B:42:B7 + + X509v3 Extended Key Usage: + TLS Web Server Authentication, TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature, Key Encipherment + X509v3 Subject Alternative Name: + DNS:dsoclab-nifi-1, DNS:dsoclab.gn4-3-wp8-soc.sunet.se + Signature Algorithm: sha256WithRSAEncryption + 8d:23:38:a7:aa:d0:58:03:f2:98:19:da:62:c6:55:cb:d5:c5: + 05:dd:55:c5:f9:41:46:ec:75:06:be:0a:0b:7b:0f:ac:10:dd: + 86:bf:4f:6e:05:c1:7b:c1:1d:1c:ce:c7:f0:a9:0c:6e:79:fe: + c2:49:18:d5:5d:4a:ae:c8:d8:ab:ec:45:95:94:c1:8b:30:da: + 52:1a:42:3c:41:77:65:9e:8a:63:f5:52:c2:71:b7:e2:56:43: + bd:89:3a:fa:14:bd:d7:7a:b2:60:43:82:c0:df:4a:e0:a7:02: + fd:d7:f6:56:9a:0f:ad:f4:ee:00:06:fb:75:b9:96:63:c8:b3: + 75:1f:c6:9d:3b:9d:1a:29:cd:09:f0:80:31:5c:4e:97:62:91: + 73:84:aa:11:cc:4b:00:15:a1:92:62:2a:6b:d4:d6:4c:ed:a5: + 89:fe:12:c9:d1:0b:48:b8:97:26:e4:5b:ab:da:fe:2d:54:ca: + 55:23:8b:22:7f:a1:12:4a:21:3e:9e:bb:48:d6:82:b6:a2:cc: + 83:15:5d:5f:c7:52:a1:01:01:70:60:3f:64:b4:1d:85:4f:56: + b7:67:77:b8:ea:59:7a:85:ce:e3:4a:e1:d6:2f:e0:b2:60:44: + 3a:08:3a:b5:0e:fc:88:ad:e5:a1:f1:a8:79:37:c4:52:02:f0: + 5b:05:94:0e +-----BEGIN CERTIFICATE----- +MIIDljCCAn6gAwIBAgIQAexNrT5eR89OS5hJWTKzNzANBgkqhkiG9w0BAQsFADAW +MRQwEgYDVQQDDAtTT0NUT09MUy1DQTAeFw0yMDEwMzAxMDQ3MjVaFw0yMzEwMTUx +MDQ3MjVaMBkxFzAVBgNVBAMMDmRzb2NsYWItbmlmaS0xMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAw6/vt6GVR19V6n7o1v3V4xloLnIfkGKoeXbY0vZR +33GAN1rsfftteG43/uUbyNVz5Mmly+hKSCbG4KZeFCyQsYGyaTHiRIWX9WASiAad +jc9Konez2f/zQUBMIeFzjZiCLzcnDCTYZ73HBVBAxanQ5D+7DHIpfL4GAZYDuKBC +xG9v2qoXNF9e83MOd7V6mlnjPNE5UBcvUxgFgjQpGxlWLsLbJHlRD6jZZjxyHqD3 +A9bp5ca5vpTkhL3NkybrOxe7zeVYJfIoNaSxcN8yVIX2PCCfiItdg6LEHjHZoXYd +Ljz4eGSk3TqyVmW/qCqo7WLJYixyvZ1+ax+A6rwzYEfTDwIDAQABo4HcMIHZMAkG +A1UdEwQCMAAwHQYDVR0OBBYEFIeajRI6aY2JmPaV0PLtw9ztoCISMEYGA1UdIwQ/ +MD2AFHkGykDTn5pUrtMzTfI4PrYL8z3PoRqkGDAWMRQwEgYDVQQDDAtTT0NUT09M +Uy1DQYIJAIp0kyaAW0K3MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAL +BgNVHQ8EBAMCBaAwOQYDVR0RBDIwMIIOZHNvY2xhYi1uaWZpLTGCHmRzb2NsYWIu +Z240LTMtd3A4LXNvYy5zdW5ldC5zZTANBgkqhkiG9w0BAQsFAAOCAQEAjSM4p6rQ +WAPymBnaYsZVy9XFBd1VxflBRux1Br4KC3sPrBDdhr9PbgXBe8EdHM7H8KkMbnn+ +wkkY1V1KrsjYq+xFlZTBizDaUhpCPEF3ZZ6KY/VSwnG34lZDvYk6+hS913qyYEOC +wN9K4KcC/df2VpoPrfTuAAb7dbmWY8izdR/GnTudGinNCfCAMVxOl2KRc4SqEcxL +ABWhkmIqa9TWTO2lif4SydELSLiXJuRbq9r+LVTKVSOLIn+hEkohPp67SNaCtqLM +gxVdX8dSoQEBcGA/ZLQdhU9Wt2d3uOpZeoXO40rh1i/gsmBEOgg6tQ78iK3lofGo +eTfEUgLwWwWUDg== +-----END CERTIFICATE----- diff --git a/roles/ca/files/CA/certs_by_serial/1DD9AF5415359961C578D1B98BFA6E9F.pem b/roles/ca/files/CA/certs_by_serial/1DD9AF5415359961C578D1B98BFA6E9F.pem new file mode 100644 index 0000000..af57c1e --- /dev/null +++ b/roles/ca/files/CA/certs_by_serial/1DD9AF5415359961C578D1B98BFA6E9F.pem @@ -0,0 +1,84 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 1d:d9:af:54:15:35:99:61:c5:78:d1:b9:8b:fa:6e:9f + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=SOCTOOLS-CA + Validity + Not Before: Oct 30 10:47:52 2020 GMT + Not After : Oct 15 10:47:52 2023 GMT + Subject: CN=Bozidar Proevski + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:9a:de:00:fd:f1:e9:b9:29:d9:58:d0:47:21:cf: + 4b:67:17:f7:a9:02:93:17:cf:57:5b:6f:db:26:90: + 30:09:0b:d9:c5:66:5e:f6:22:66:ab:48:06:aa:6c: + 88:b3:fd:93:45:a4:60:c9:5f:2b:6c:af:db:68:5e: + 27:e6:85:71:27:b7:20:52:61:df:14:1b:da:06:39: + b2:21:20:4b:22:48:b7:4b:76:44:02:b1:89:5f:0e: + 59:22:cb:b9:c9:1e:8d:a0:ac:28:5d:e5:ae:c8:ea: + cc:05:20:a2:60:11:12:8d:6d:88:0a:73:e8:7c:68: + 9c:48:2c:c9:a8:c6:9d:c3:3c:c1:e7:f4:07:f7:5b: + 6e:42:3d:3d:0f:85:6f:e2:b9:88:a9:d0:02:84:b8: + 19:6a:ae:13:a1:97:50:98:16:c8:0c:1b:bd:02:c8: + 5f:a3:2f:73:7e:25:f8:8c:e7:92:43:c7:6a:75:bc: + 85:ea:1c:47:28:ce:2c:9b:3a:8f:a8:07:e9:8c:8a: + 75:3e:c1:97:32:ce:e3:c5:ca:1e:0a:d7:3c:77:0a: + d2:ab:51:c3:e5:dc:37:90:1a:35:bf:a0:4a:aa:bd: + 38:ef:9e:6d:f8:81:37:7f:d3:77:23:c6:5b:63:98: + 64:07:2f:47:fd:7d:21:2f:57:c2:d8:44:00:c2:29: + 22:79 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + A3:9F:29:21:E0:E5:18:E4:CB:4C:2D:7F:84:2F:AF:F2:49:F0:83:3A + X509v3 Authority Key Identifier: + keyid:79:06:CA:40:D3:9F:9A:54:AE:D3:33:4D:F2:38:3E:B6:0B:F3:3D:CF + DirName:/CN=SOCTOOLS-CA + serial:8A:74:93:26:80:5B:42:B7 + + X509v3 Extended Key Usage: + TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature + Signature Algorithm: sha256WithRSAEncryption + ad:cb:66:5d:b7:29:e5:19:7b:7c:ae:23:50:58:34:db:c9:79: + 39:de:57:83:34:03:6d:bc:bf:e2:31:79:9d:2b:a2:7a:e0:c4: + c8:19:96:e0:20:f3:05:2a:a6:f4:b8:90:c4:ea:8d:5e:86:e1: + 13:99:59:0f:da:c8:3d:96:0d:78:04:4f:26:9c:6a:7c:8e:50: + 5a:30:f1:37:dc:26:99:28:35:f8:25:b9:4b:f8:d2:f0:d3:b5: + 61:32:c9:9c:43:39:21:43:c1:de:0d:4d:8e:e5:6f:a1:58:e5: + 01:84:d6:a5:de:88:2a:55:9f:ec:de:be:b1:13:61:33:dd:50: + 19:89:dd:11:48:5e:c2:14:8d:69:8f:a9:43:73:80:71:8f:54: + ba:da:74:b4:26:ec:5b:82:88:84:90:6d:f7:58:3f:78:d3:20: + 5b:c3:9b:82:85:b7:ef:98:12:4f:ba:e8:38:f3:8c:af:85:91: + 66:40:fe:a9:b2:fd:d6:76:ad:70:b7:b5:33:88:64:31:97:81: + d9:c6:ec:47:9b:af:3f:31:c8:de:0c:cc:88:3d:b7:6f:6f:19: + 24:f1:ae:ff:de:95:31:3f:38:e5:ed:a1:e1:e4:6b:54:1f:26: + b8:53:79:cf:fe:89:ba:bc:35:a1:bc:2f:8a:07:a2:eb:0d:90: + 72:ad:8a:60 +-----BEGIN CERTIFICATE----- +MIIDUzCCAjugAwIBAgIQHdmvVBU1mWHFeNG5i/punzANBgkqhkiG9w0BAQsFADAW +MRQwEgYDVQQDDAtTT0NUT09MUy1DQTAeFw0yMDEwMzAxMDQ3NTJaFw0yMzEwMTUx +MDQ3NTJaMBsxGTAXBgNVBAMMEEJvemlkYXIgUHJvZXZza2kwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQCa3gD98em5KdlY0Echz0tnF/epApMXz1dbb9sm +kDAJC9nFZl72ImarSAaqbIiz/ZNFpGDJXytsr9toXifmhXEntyBSYd8UG9oGObIh +IEsiSLdLdkQCsYlfDlkiy7nJHo2grChd5a7I6swFIKJgERKNbYgKc+h8aJxILMmo +xp3DPMHn9Af3W25CPT0PhW/iuYip0AKEuBlqrhOhl1CYFsgMG70CyF+jL3N+JfiM +55JDx2p1vIXqHEcoziybOo+oB+mMinU+wZcyzuPFyh4K1zx3CtKrUcPl3DeQGjW/ +oEqqvTjvnm34gTd/03cjxltjmGQHL0f9fSEvV8LYRADCKSJ5AgMBAAGjgZcwgZQw +CQYDVR0TBAIwADAdBgNVHQ4EFgQUo58pIeDlGOTLTC1/hC+v8knwgzowRgYDVR0j +BD8wPYAUeQbKQNOfmlSu0zNN8jg+tgvzPc+hGqQYMBYxFDASBgNVBAMMC1NPQ1RP +T0xTLUNBggkAinSTJoBbQrcwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQD +AgeAMA0GCSqGSIb3DQEBCwUAA4IBAQCty2ZdtynlGXt8riNQWDTbyXk53leDNANt +vL/iMXmdK6J64MTIGZbgIPMFKqb0uJDE6o1ehuETmVkP2sg9lg14BE8mnGp8jlBa +MPE33CaZKDX4JblL+NLw07VhMsmcQzkhQ8HeDU2O5W+hWOUBhNal3ogqVZ/s3r6x +E2Ez3VAZid0RSF7CFI1pj6lDc4Bxj1S62nS0JuxbgoiEkG33WD940yBbw5uChbfv +mBJPuug484yvhZFmQP6psv3Wdq1wt7UziGQxl4HZxuxHm68/McjeDMyIPbdvbxkk +8a7/3pUxPzjl7aHh5GtUHya4U3nP/om6vDWhvC+KB6LrDZByrYpg +-----END CERTIFICATE----- diff --git a/roles/ca/files/CA/certs_by_serial/560A99C5A03FC4B9FC92FDC62F419BB9.pem b/roles/ca/files/CA/certs_by_serial/560A99C5A03FC4B9FC92FDC62F419BB9.pem new file mode 100644 index 0000000..a648174 --- /dev/null +++ b/roles/ca/files/CA/certs_by_serial/560A99C5A03FC4B9FC92FDC62F419BB9.pem @@ -0,0 +1,88 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 56:0a:99:c5:a0:3f:c4:b9:fc:92:fd:c6:2f:41:9b:b9 + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=SOCTOOLS-CA + Validity + Not Before: Oct 30 10:47:27 2020 GMT + Not After : Oct 15 10:47:27 2023 GMT + Subject: CN=dsoclab-odfe-2 + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:c7:a5:e1:3f:e0:a3:22:69:f1:b4:15:5e:b9:3c: + db:d7:44:bb:d9:c7:69:94:5b:c1:7d:a3:34:4d:3e: + 88:0a:e2:8f:2e:d3:98:94:ae:b4:1f:49:a3:fd:4b: + 27:16:70:ab:03:ab:cd:4c:02:2a:7b:ed:3a:ff:49: + 49:2e:3b:88:f6:59:85:26:de:37:b4:47:9e:1c:be: + a3:38:8e:b0:22:6b:ca:c5:12:e5:be:40:9c:57:7a: + 4d:02:0c:db:13:c5:9d:d2:85:df:99:57:32:90:37: + 54:08:16:46:01:54:da:0c:77:31:63:39:46:27:88: + 3f:f4:ad:4e:e6:fd:0a:3e:9d:98:9a:53:98:90:be: + 9b:ee:e3:b2:91:c7:7f:3f:a1:b9:62:f8:7a:1e:cc: + b4:23:ed:82:a0:5c:ad:86:7b:50:53:c9:ec:57:04: + 44:1c:12:f6:33:3f:68:42:f8:b7:2f:25:91:1c:aa: + b0:df:17:6b:ed:6d:cc:6d:a7:d6:b7:07:6b:61:a5: + 16:51:9f:02:07:ad:b2:42:42:ca:0b:b1:2e:c1:6e: + 94:2d:3e:5e:88:48:8f:b6:8b:15:b0:48:8e:35:58: + ea:b5:90:9c:fb:5a:fa:f5:c7:27:b7:11:30:7a:cb: + 36:7c:4f:ea:52:00:47:40:e9:f0:ca:67:63:32:e0: + 33:73 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + E6:41:BE:4B:A2:E1:07:EF:2A:FD:16:A7:B6:68:3D:0F:81:F5:15:80 + X509v3 Authority Key Identifier: + keyid:79:06:CA:40:D3:9F:9A:54:AE:D3:33:4D:F2:38:3E:B6:0B:F3:3D:CF + DirName:/CN=SOCTOOLS-CA + serial:8A:74:93:26:80:5B:42:B7 + + X509v3 Extended Key Usage: + TLS Web Server Authentication, TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature, Key Encipherment + X509v3 Subject Alternative Name: + DNS:dsoclab-odfe-2, DNS:dsoclab.gn4-3-wp8-soc.sunet.se + Signature Algorithm: sha256WithRSAEncryption + 84:64:d0:92:f6:96:07:be:f1:52:f6:49:15:cd:d0:99:ea:ca: + 7f:06:a8:d2:68:e3:8e:c3:a3:a9:2d:f2:b7:4a:74:75:9f:02: + b4:6f:77:14:ec:89:f9:a3:b5:35:c8:f2:ad:50:df:24:05:d3: + 0a:a8:49:be:19:de:fc:84:a4:61:af:ff:c0:2c:f7:8b:11:87: + 34:10:e3:dc:9b:d2:b8:66:0a:f7:3f:05:11:37:41:09:9f:3d: + f3:a1:97:b7:62:64:db:5a:46:d9:5a:7a:c8:f7:79:e4:f8:61: + 2e:5c:e8:82:8d:fc:0e:8d:a4:4f:fd:33:f1:76:0e:8d:21:f4: + 00:5a:e1:a6:96:21:e0:bb:e4:e6:35:8e:b6:61:49:8a:f2:c1: + 25:96:cf:c0:f6:e0:0a:0b:75:b5:d5:6c:be:ad:0c:a8:4b:33: + 44:72:cc:ef:5f:db:09:e7:b9:6e:60:80:7d:02:e9:ab:06:81: + 24:d3:9d:c3:de:f9:a1:f1:f7:77:ee:6d:49:ab:13:72:c6:62: + 39:b2:80:32:07:20:51:a3:3e:1a:cf:b9:3a:bc:e3:a1:58:33: + 22:6f:68:a9:e9:33:0b:8d:24:72:ea:e3:75:68:a3:69:11:a8: + 2d:86:ed:f2:00:74:d6:d4:ab:fc:30:3f:68:6b:b6:d3:61:30: + 51:84:09:da +-----BEGIN CERTIFICATE----- +MIIDljCCAn6gAwIBAgIQVgqZxaA/xLn8kv3GL0GbuTANBgkqhkiG9w0BAQsFADAW +MRQwEgYDVQQDDAtTT0NUT09MUy1DQTAeFw0yMDEwMzAxMDQ3MjdaFw0yMzEwMTUx +MDQ3MjdaMBkxFzAVBgNVBAMMDmRzb2NsYWItb2RmZS0yMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAx6XhP+CjImnxtBVeuTzb10S72cdplFvBfaM0TT6I +CuKPLtOYlK60H0mj/UsnFnCrA6vNTAIqe+06/0lJLjuI9lmFJt43tEeeHL6jOI6w +ImvKxRLlvkCcV3pNAgzbE8Wd0oXfmVcykDdUCBZGAVTaDHcxYzlGJ4g/9K1O5v0K +Pp2YmlOYkL6b7uOykcd/P6G5Yvh6Hsy0I+2CoFythntQU8nsVwREHBL2Mz9oQvi3 +LyWRHKqw3xdr7W3MbafWtwdrYaUWUZ8CB62yQkLKC7EuwW6ULT5eiEiPtosVsEiO +NVjqtZCc+1r69ccntxEwess2fE/qUgBHQOnwymdjMuAzcwIDAQABo4HcMIHZMAkG +A1UdEwQCMAAwHQYDVR0OBBYEFOZBvkui4QfvKv0Wp7ZoPQ+B9RWAMEYGA1UdIwQ/ +MD2AFHkGykDTn5pUrtMzTfI4PrYL8z3PoRqkGDAWMRQwEgYDVQQDDAtTT0NUT09M +Uy1DQYIJAIp0kyaAW0K3MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAL +BgNVHQ8EBAMCBaAwOQYDVR0RBDIwMIIOZHNvY2xhYi1vZGZlLTKCHmRzb2NsYWIu +Z240LTMtd3A4LXNvYy5zdW5ldC5zZTANBgkqhkiG9w0BAQsFAAOCAQEAhGTQkvaW +B77xUvZJFc3QmerKfwao0mjjjsOjqS3yt0p0dZ8CtG93FOyJ+aO1NcjyrVDfJAXT +CqhJvhne/ISkYa//wCz3ixGHNBDj3JvSuGYK9z8FETdBCZ8986GXt2Jk21pG2Vp6 +yPd55PhhLlzogo38Do2kT/0z8XYOjSH0AFrhppYh4Lvk5jWOtmFJivLBJZbPwPbg +Cgt1tdVsvq0MqEszRHLM71/bCee5bmCAfQLpqwaBJNOdw975ofH3d+5tSasTcsZi +ObKAMgcgUaM+Gs+5OrzjoVgzIm9oqekzC40kcurjdWijaRGoLYbt8gB01tSr/DA/ +aGu202EwUYQJ2g== +-----END CERTIFICATE----- diff --git a/roles/ca/files/CA/certs_by_serial/5969918F10EF8D2BAE46B26D6D629D8E.pem b/roles/ca/files/CA/certs_by_serial/5969918F10EF8D2BAE46B26D6D629D8E.pem new file mode 100644 index 0000000..796e826 --- /dev/null +++ b/roles/ca/files/CA/certs_by_serial/5969918F10EF8D2BAE46B26D6D629D8E.pem @@ -0,0 +1,88 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 59:69:91:8f:10:ef:8d:2b:ae:46:b2:6d:6d:62:9d:8e + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=SOCTOOLS-CA + Validity + Not Before: Oct 30 10:47:26 2020 GMT + Not After : Oct 15 10:47:26 2023 GMT + Subject: CN=dsoclab-nifi-3 + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:a7:48:a0:d3:ab:1e:8c:49:60:8b:b8:bd:9a:aa: + 5c:09:62:01:79:89:c9:e5:5f:30:64:38:ca:f1:95: + 2d:48:20:81:ef:60:aa:6f:d1:ef:b4:ac:89:8e:e9: + f5:16:7d:64:07:b0:3b:75:c3:e1:e1:15:71:64:60: + 8f:15:8e:16:8b:de:b8:97:79:a7:83:19:77:5b:aa: + 36:82:37:b9:51:a7:95:b5:1f:ac:9d:81:c6:ec:fb: + 14:3a:84:77:1e:9c:dd:3c:06:30:a1:5e:d0:8f:b0: + c9:5a:13:ad:0e:56:57:bc:1d:3f:be:d7:4c:4b:37: + a2:88:72:4d:1a:62:88:08:a0:57:bb:20:ce:7e:af: + b7:72:f2:ee:86:1a:b1:28:3b:41:f4:d3:ea:14:74: + 90:e1:33:41:1a:92:e2:2e:ec:d3:20:60:60:61:d6: + fc:0e:3f:57:43:88:5f:10:29:20:51:40:46:ed:5d: + 9f:d1:5a:e7:4b:52:f4:d4:23:60:4a:22:a7:92:6c: + d4:cb:20:01:a6:b9:53:71:7a:71:02:e1:05:72:41: + a5:42:9f:41:47:2c:30:7e:0c:b1:73:cc:f7:63:60: + 27:3f:3d:36:93:14:aa:7e:12:ed:1b:f1:cb:4d:e8: + 7c:32:20:50:f5:2d:7d:06:0a:93:cf:7a:85:2b:0b: + a6:b1 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + C9:B8:02:23:C4:2E:F5:FE:C9:34:45:77:33:0D:89:CE:D9:A3:30:2A + X509v3 Authority Key Identifier: + keyid:79:06:CA:40:D3:9F:9A:54:AE:D3:33:4D:F2:38:3E:B6:0B:F3:3D:CF + DirName:/CN=SOCTOOLS-CA + serial:8A:74:93:26:80:5B:42:B7 + + X509v3 Extended Key Usage: + TLS Web Server Authentication, TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature, Key Encipherment + X509v3 Subject Alternative Name: + DNS:dsoclab-nifi-3, DNS:dsoclab.gn4-3-wp8-soc.sunet.se + Signature Algorithm: sha256WithRSAEncryption + 32:20:b3:1c:e1:c9:a4:19:75:14:32:1b:cd:c2:83:59:49:07: + e3:b8:62:73:ec:4e:69:cb:9b:49:0d:f5:d0:ea:8b:b6:de:3e: + 76:03:c4:e8:68:0f:01:96:aa:40:b2:1e:99:06:d2:75:f5:31: + ec:b7:93:e6:1b:b0:ab:7e:1b:1d:65:46:6d:9f:ac:97:ed:55: + 53:ca:53:00:5a:ca:c5:83:48:c3:2a:51:db:e7:e7:e1:40:4a: + bf:b2:9d:d4:71:d4:54:84:2b:4b:d4:a2:22:73:95:e1:62:51: + ce:e3:e2:f6:24:dd:40:08:07:01:6f:ee:27:3e:fc:17:1d:1f: + 30:da:7f:37:78:7e:b8:af:d8:2c:d9:48:84:92:be:4e:8e:a7: + b8:e6:9f:d4:91:5d:44:c9:8b:82:9f:13:eb:d5:2c:00:fa:ef: + d6:49:ff:92:0d:83:22:57:45:4a:ac:b6:5e:a2:c6:c1:73:ff: + f5:dd:a7:d8:79:9a:a7:96:33:b4:51:17:7f:80:6e:3b:52:a8: + 61:53:ae:08:1f:02:5a:0c:5b:37:3c:3a:36:ee:74:e2:9e:df: + df:01:b5:f6:d0:b8:fa:58:79:53:fd:70:9e:54:c3:6c:68:a7: + 3f:b0:e4:20:a6:a8:2f:87:5a:8a:08:01:41:de:35:ed:5e:85: + ae:dd:e0:3e +-----BEGIN CERTIFICATE----- +MIIDljCCAn6gAwIBAgIQWWmRjxDvjSuuRrJtbWKdjjANBgkqhkiG9w0BAQsFADAW +MRQwEgYDVQQDDAtTT0NUT09MUy1DQTAeFw0yMDEwMzAxMDQ3MjZaFw0yMzEwMTUx +MDQ3MjZaMBkxFzAVBgNVBAMMDmRzb2NsYWItbmlmaS0zMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAp0ig06sejElgi7i9mqpcCWIBeYnJ5V8wZDjK8ZUt +SCCB72Cqb9HvtKyJjun1Fn1kB7A7dcPh4RVxZGCPFY4Wi964l3mngxl3W6o2gje5 +UaeVtR+snYHG7PsUOoR3HpzdPAYwoV7Qj7DJWhOtDlZXvB0/vtdMSzeiiHJNGmKI +CKBXuyDOfq+3cvLuhhqxKDtB9NPqFHSQ4TNBGpLiLuzTIGBgYdb8Dj9XQ4hfECkg +UUBG7V2f0VrnS1L01CNgSiKnkmzUyyABprlTcXpxAuEFckGlQp9BRywwfgyxc8z3 +Y2AnPz02kxSqfhLtG/HLTeh8MiBQ9S19BgqTz3qFKwumsQIDAQABo4HcMIHZMAkG +A1UdEwQCMAAwHQYDVR0OBBYEFMm4AiPELvX+yTRFdzMNic7ZozAqMEYGA1UdIwQ/ +MD2AFHkGykDTn5pUrtMzTfI4PrYL8z3PoRqkGDAWMRQwEgYDVQQDDAtTT0NUT09M +Uy1DQYIJAIp0kyaAW0K3MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAL +BgNVHQ8EBAMCBaAwOQYDVR0RBDIwMIIOZHNvY2xhYi1uaWZpLTOCHmRzb2NsYWIu +Z240LTMtd3A4LXNvYy5zdW5ldC5zZTANBgkqhkiG9w0BAQsFAAOCAQEAMiCzHOHJ +pBl1FDIbzcKDWUkH47hic+xOacubSQ310OqLtt4+dgPE6GgPAZaqQLIemQbSdfUx +7LeT5huwq34bHWVGbZ+sl+1VU8pTAFrKxYNIwypR2+fn4UBKv7Kd1HHUVIQrS9Si +InOV4WJRzuPi9iTdQAgHAW/uJz78Fx0fMNp/N3h+uK/YLNlIhJK+To6nuOaf1JFd +RMmLgp8T69UsAPrv1kn/kg2DIldFSqy2XqLGwXP/9d2n2Hmap5YztFEXf4BuO1Ko +YVOuCB8CWgxbNzw6Nu504p7f3wG19tC4+lh5U/1wnlTDbGinP7DkIKaoL4daiggB +Qd417V6Frt3gPg== +-----END CERTIFICATE----- diff --git a/roles/ca/files/CA/certs_by_serial/5DC4BC495FA076A813A4C23261640D92.pem b/roles/ca/files/CA/certs_by_serial/5DC4BC495FA076A813A4C23261640D92.pem new file mode 100644 index 0000000..a743bd0 --- /dev/null +++ b/roles/ca/files/CA/certs_by_serial/5DC4BC495FA076A813A4C23261640D92.pem @@ -0,0 +1,88 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 5d:c4:bc:49:5f:a0:76:a8:13:a4:c2:32:61:64:0d:92 + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=SOCTOOLS-CA + Validity + Not Before: Oct 30 10:47:29 2020 GMT + Not After : Oct 15 10:47:29 2023 GMT + Subject: CN=dsoclab-cortex + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:cd:09:6b:14:33:4a:47:75:5b:d3:d9:67:3b:4d: + ad:1f:a7:1f:33:ab:86:b1:aa:3b:09:ab:1a:a6:fb: + a0:60:04:e3:68:33:0e:85:54:d1:70:61:8a:b9:d5: + d6:b5:6c:c2:b3:36:02:94:b7:1d:18:93:5f:88:81: + ff:2a:f4:99:58:6d:d7:96:e2:d2:64:77:b9:74:44: + 3c:f0:fb:5b:0f:43:7d:38:5d:fe:b0:db:05:7a:a9: + c5:10:24:75:13:c8:2d:da:69:be:e3:43:33:f0:28: + 30:9a:53:f8:f8:d3:10:32:35:ec:1d:87:ab:1e:2c: + b5:00:7c:9f:8f:61:e0:5d:56:15:8c:46:45:09:78: + 02:78:10:c0:af:2f:25:6c:c2:5b:ed:5f:c1:33:0b: + f8:c8:13:dc:df:c3:fc:05:90:ff:06:9e:cb:bc:1d: + 2b:c2:57:f2:bd:aa:22:b3:4b:f5:ca:b2:b8:00:18: + f1:14:10:b8:5e:69:9f:ed:fc:04:83:d9:2e:b7:9a: + 8a:45:1c:54:71:8f:61:02:6a:8a:84:2f:67:df:92: + 3a:0c:5f:e5:b6:e7:6c:27:69:1f:5b:06:d6:7f:e6: + df:ab:2f:31:a5:cd:63:32:60:c0:07:50:6c:0d:39: + cb:68:ae:3c:b2:da:0f:20:06:77:2c:28:ab:3a:30: + 92:1b + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + 9A:0E:E1:26:13:A7:12:5F:A4:F1:41:C0:09:FC:AD:EB:4E:66:C2:50 + X509v3 Authority Key Identifier: + keyid:79:06:CA:40:D3:9F:9A:54:AE:D3:33:4D:F2:38:3E:B6:0B:F3:3D:CF + DirName:/CN=SOCTOOLS-CA + serial:8A:74:93:26:80:5B:42:B7 + + X509v3 Extended Key Usage: + TLS Web Server Authentication, TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature, Key Encipherment + X509v3 Subject Alternative Name: + DNS:dsoclab-cortex, DNS:dsoclab.gn4-3-wp8-soc.sunet.se + Signature Algorithm: sha256WithRSAEncryption + 27:2e:a1:0c:8d:fb:b1:36:ff:4e:ac:00:91:75:81:4b:20:79: + 3f:da:1c:e1:80:b9:8c:6b:60:47:a5:8c:bf:1f:34:98:61:95: + 00:bb:79:d4:9e:c8:fb:dc:fb:6a:48:b2:69:d1:1a:04:cc:52: + ca:0b:48:01:3e:94:1e:68:0b:e3:4d:fa:12:c4:aa:ff:b6:5b: + 0c:3c:80:21:fe:50:87:8a:14:3a:7d:e7:a3:5e:b6:dc:22:ba: + cc:97:69:00:a8:78:08:dd:66:d1:cb:ca:28:41:b9:cc:8a:6b: + 7c:40:b7:5e:1d:a1:88:5a:b3:fd:18:77:e9:c4:48:fd:38:8f: + 06:6e:78:0e:f1:1a:1b:b2:6c:0a:df:38:11:e3:5a:3d:2a:5b: + de:41:63:14:ab:25:8e:a6:9f:a8:b7:32:9e:dc:23:45:f3:6b: + 6d:86:b7:17:b3:53:df:55:bd:cb:41:a1:b7:73:ae:21:1b:68: + b3:b1:0a:e5:e6:0c:2a:77:76:23:f3:87:ee:5f:0e:6d:cd:3b: + 94:9a:6f:f2:fd:4f:2d:72:a3:21:94:55:c0:4a:6c:2b:13:e3: + 82:13:a5:1f:82:6b:ae:6e:e2:ec:eb:7a:25:6a:f2:9e:45:d7: + 0a:7d:75:be:9d:f7:94:6f:ce:a5:27:d6:9b:dc:d2:12:54:64: + 09:c4:f6:a9 +-----BEGIN CERTIFICATE----- +MIIDljCCAn6gAwIBAgIQXcS8SV+gdqgTpMIyYWQNkjANBgkqhkiG9w0BAQsFADAW +MRQwEgYDVQQDDAtTT0NUT09MUy1DQTAeFw0yMDEwMzAxMDQ3MjlaFw0yMzEwMTUx +MDQ3MjlaMBkxFzAVBgNVBAMMDmRzb2NsYWItY29ydGV4MIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAzQlrFDNKR3Vb09lnO02tH6cfM6uGsao7Casapvug +YATjaDMOhVTRcGGKudXWtWzCszYClLcdGJNfiIH/KvSZWG3XluLSZHe5dEQ88Ptb +D0N9OF3+sNsFeqnFECR1E8gt2mm+40Mz8CgwmlP4+NMQMjXsHYerHiy1AHyfj2Hg +XVYVjEZFCXgCeBDAry8lbMJb7V/BMwv4yBPc38P8BZD/Bp7LvB0rwlfyvaois0v1 +yrK4ABjxFBC4Xmmf7fwEg9kut5qKRRxUcY9hAmqKhC9n35I6DF/ltudsJ2kfWwbW +f+bfqy8xpc1jMmDAB1BsDTnLaK48stoPIAZ3LCirOjCSGwIDAQABo4HcMIHZMAkG +A1UdEwQCMAAwHQYDVR0OBBYEFJoO4SYTpxJfpPFBwAn8retOZsJQMEYGA1UdIwQ/ +MD2AFHkGykDTn5pUrtMzTfI4PrYL8z3PoRqkGDAWMRQwEgYDVQQDDAtTT0NUT09M +Uy1DQYIJAIp0kyaAW0K3MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAL +BgNVHQ8EBAMCBaAwOQYDVR0RBDIwMIIOZHNvY2xhYi1jb3J0ZXiCHmRzb2NsYWIu +Z240LTMtd3A4LXNvYy5zdW5ldC5zZTANBgkqhkiG9w0BAQsFAAOCAQEAJy6hDI37 +sTb/TqwAkXWBSyB5P9oc4YC5jGtgR6WMvx80mGGVALt51J7I+9z7akiyadEaBMxS +ygtIAT6UHmgL4036EsSq/7ZbDDyAIf5Qh4oUOn3no1623CK6zJdpAKh4CN1m0cvK +KEG5zIprfEC3Xh2hiFqz/Rh36cRI/TiPBm54DvEaG7JsCt84EeNaPSpb3kFjFKsl +jqafqLcyntwjRfNrbYa3F7NT31W9y0Ght3OuIRtos7EK5eYMKnd2I/OH7l8Obc07 +lJpv8v1PLXKjIZRVwEpsKxPjghOlH4Jrrm7i7Ot6JWrynkXXCn11vp33lG/OpSfW +m9zSElRkCcT2qQ== +-----END CERTIFICATE----- diff --git a/roles/ca/files/CA/certs_by_serial/61095C2C8D35EE291C99CEABD42B3CA4.pem b/roles/ca/files/CA/certs_by_serial/61095C2C8D35EE291C99CEABD42B3CA4.pem new file mode 100644 index 0000000..0d474c2 --- /dev/null +++ b/roles/ca/files/CA/certs_by_serial/61095C2C8D35EE291C99CEABD42B3CA4.pem @@ -0,0 +1,88 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 61:09:5c:2c:8d:35:ee:29:1c:99:ce:ab:d4:2b:3c:a4 + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=SOCTOOLS-CA + Validity + Not Before: Oct 30 10:47:29 2020 GMT + Not After : Oct 15 10:47:29 2023 GMT + Subject: CN=dsoclab-thehive + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:ba:c5:4d:20:a4:60:b7:61:21:ed:16:a1:6f:72: + c4:de:a1:00:c0:ef:fc:5d:a1:89:34:07:15:d2:b4: + 3a:14:b8:95:75:8e:81:71:49:46:1d:c8:81:cb:f1: + ec:c7:5a:12:f6:89:60:e4:c8:98:1a:61:c8:2d:12: + 8f:73:ee:f8:9d:88:b5:7f:30:70:97:29:b4:ab:43: + 2d:dc:db:a7:10:47:c7:b5:26:9b:11:85:fb:d3:27: + 8f:3a:55:bc:ea:78:17:b8:89:10:a3:a4:10:60:39: + c3:7f:42:25:a9:fe:84:7f:38:5e:f4:3d:c3:98:3d: + 56:b9:ba:81:06:55:8d:65:12:f0:4e:23:88:1d:98: + 0c:2f:6e:4f:67:fd:4e:67:39:91:b9:01:52:12:aa: + 9e:bb:7a:c8:ea:8f:4a:2d:18:f8:69:9a:3a:a0:c8: + 6e:e3:de:c6:db:be:4c:59:e0:cf:bc:34:4f:2c:b0: + ef:3e:82:5a:df:68:be:b8:fb:cc:5f:6a:f2:3e:66: + d4:c6:c5:f6:0b:67:e9:64:85:15:87:60:6f:dc:b4: + 5b:13:6f:b0:9b:f8:f3:da:c1:91:9e:81:5f:16:ca: + 9e:14:01:c1:1c:ce:2a:d3:c8:3c:0f:be:b1:37:aa: + c9:08:68:2b:de:f9:44:6c:1e:90:a4:12:bc:f5:3c: + 46:bd + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + 5B:08:8E:F2:1B:8F:12:03:BA:31:02:9C:CE:CC:BC:9F:FC:19:D1:E1 + X509v3 Authority Key Identifier: + keyid:79:06:CA:40:D3:9F:9A:54:AE:D3:33:4D:F2:38:3E:B6:0B:F3:3D:CF + DirName:/CN=SOCTOOLS-CA + serial:8A:74:93:26:80:5B:42:B7 + + X509v3 Extended Key Usage: + TLS Web Server Authentication, TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature, Key Encipherment + X509v3 Subject Alternative Name: + DNS:dsoclab-thehive, DNS:dsoclab.gn4-3-wp8-soc.sunet.se + Signature Algorithm: sha256WithRSAEncryption + 7f:b2:fa:33:d6:e3:6c:57:8a:4a:9a:ef:8b:81:2b:df:f3:d6: + fb:8c:bc:02:cf:71:54:a0:f2:0d:ae:3b:30:cf:5c:69:d7:d0: + aa:cc:16:80:4d:9d:c8:1f:a7:98:9d:26:dc:ae:8e:24:2b:bc: + c1:11:a6:8d:4f:ca:13:1f:7f:8f:4c:ef:dd:46:df:d6:97:0a: + 88:51:4e:f7:46:aa:3d:e3:70:e9:19:e8:9f:7e:22:fa:b6:38: + 30:00:0a:94:38:09:bf:b8:64:6c:c1:b7:05:6d:4f:f3:27:0c: + df:04:ef:a1:4e:e8:2d:4c:06:d0:c0:4f:4f:da:d0:6d:b8:f2: + b3:79:18:63:bd:62:83:53:55:38:94:d9:64:ca:e7:4d:71:ce: + d1:05:6d:b1:6c:fb:1a:4c:b6:ef:70:2b:3d:9b:1d:66:d8:d9: + 9f:f0:e5:48:29:50:e8:1b:1a:fb:b4:d2:5e:38:ec:05:45:c2: + e7:de:9a:9d:aa:34:67:c5:66:18:e3:86:8b:0c:1a:c4:21:20: + 7e:b7:ad:e2:0b:d0:0d:d4:76:e6:53:ca:77:bc:ce:d0:9b:7b: + 7c:fd:42:94:da:63:d8:a7:52:d2:45:f2:d5:55:ef:37:f1:a5: + 0e:ba:29:c9:b4:ce:99:45:04:21:2b:86:27:bb:c1:f2:86:9a: + 7c:51:5c:3b +-----BEGIN CERTIFICATE----- +MIIDmDCCAoCgAwIBAgIQYQlcLI017ikcmc6r1Cs8pDANBgkqhkiG9w0BAQsFADAW +MRQwEgYDVQQDDAtTT0NUT09MUy1DQTAeFw0yMDEwMzAxMDQ3MjlaFw0yMzEwMTUx +MDQ3MjlaMBoxGDAWBgNVBAMMD2Rzb2NsYWItdGhlaGl2ZTCCASIwDQYJKoZIhvcN +AQEBBQADggEPADCCAQoCggEBALrFTSCkYLdhIe0WoW9yxN6hAMDv/F2hiTQHFdK0 +OhS4lXWOgXFJRh3Igcvx7MdaEvaJYOTImBphyC0Sj3Pu+J2ItX8wcJcptKtDLdzb +pxBHx7UmmxGF+9MnjzpVvOp4F7iJEKOkEGA5w39CJan+hH84XvQ9w5g9Vrm6gQZV +jWUS8E4jiB2YDC9uT2f9Tmc5kbkBUhKqnrt6yOqPSi0Y+GmaOqDIbuPextu+TFng +z7w0Tyyw7z6CWt9ovrj7zF9q8j5m1MbF9gtn6WSFFYdgb9y0WxNvsJv489rBkZ6B +XxbKnhQBwRzOKtPIPA++sTeqyQhoK975RGwekKQSvPU8Rr0CAwEAAaOB3TCB2jAJ +BgNVHRMEAjAAMB0GA1UdDgQWBBRbCI7yG48SA7oxApzOzLyf/BnR4TBGBgNVHSME +PzA9gBR5BspA05+aVK7TM03yOD62C/M9z6EapBgwFjEUMBIGA1UEAwwLU09DVE9P +TFMtQ0GCCQCKdJMmgFtCtzAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw +CwYDVR0PBAQDAgWgMDoGA1UdEQQzMDGCD2Rzb2NsYWItdGhlaGl2ZYIeZHNvY2xh +Yi5nbjQtMy13cDgtc29jLnN1bmV0LnNlMA0GCSqGSIb3DQEBCwUAA4IBAQB/svoz +1uNsV4pKmu+LgSvf89b7jLwCz3FUoPINrjswz1xp19CqzBaATZ3IH6eYnSbcro4k +K7zBEaaNT8oTH3+PTO/dRt/WlwqIUU73Rqo943DpGeiffiL6tjgwAAqUOAm/uGRs +wbcFbU/zJwzfBO+hTugtTAbQwE9P2tBtuPKzeRhjvWKDU1U4lNlkyudNcc7RBW2x +bPsaTLbvcCs9mx1m2Nmf8OVIKVDoGxr7tNJeOOwFRcLn3pqdqjRnxWYY44aLDBrE +ISB+t63iC9AN1HbmU8p3vM7Qm3t8/UKU2mPYp1LSRfLVVe838aUOuinJtM6ZRQQh +K4Ynu8Hyhpp8UVw7 +-----END CERTIFICATE----- diff --git a/roles/ca/files/CA/certs_by_serial/7587FCE4CF3EC68117199076B12CD5D2.pem b/roles/ca/files/CA/certs_by_serial/7587FCE4CF3EC68117199076B12CD5D2.pem new file mode 100644 index 0000000..f830104 --- /dev/null +++ b/roles/ca/files/CA/certs_by_serial/7587FCE4CF3EC68117199076B12CD5D2.pem @@ -0,0 +1,88 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 75:87:fc:e4:cf:3e:c6:81:17:19:90:76:b1:2c:d5:d2 + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=SOCTOOLS-CA + Validity + Not Before: Oct 30 10:47:28 2020 GMT + Not After : Oct 15 10:47:28 2023 GMT + Subject: CN=dsoclab-misp + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:cf:b1:1b:e7:a2:ae:70:81:71:a5:57:46:14:2e: + 47:64:89:4e:bd:7d:f0:82:2d:03:19:d6:87:44:b3: + 42:bf:72:78:03:cc:91:98:5b:36:42:14:55:e2:82: + 16:12:58:60:54:44:8f:15:f6:1b:1f:76:36:22:2e: + e8:ac:d3:3c:0a:df:46:c7:f1:04:bc:3a:bf:fe:4b: + 8f:2a:53:83:e3:50:82:06:09:fc:2a:fa:fe:94:a0: + 7b:7f:c2:3e:0b:3e:dc:72:b8:94:10:0a:0b:90:fd: + 45:76:29:85:52:bf:0f:20:43:78:fe:3b:d3:49:20: + 8f:9a:a5:0c:89:bb:0e:97:f2:67:b0:2d:f0:17:53: + 25:a6:9b:4b:64:0e:72:8a:bf:c9:e3:8e:41:bb:ed: + f3:33:6a:55:5f:8d:52:84:fa:a3:67:1a:7b:71:fb: + 90:f1:5f:61:df:44:ea:0b:77:88:f2:e5:c1:83:71: + 58:c7:58:8a:9b:39:45:59:4e:e0:db:16:b6:96:72: + 90:8c:ee:c2:13:75:ea:15:c6:6b:e2:dc:3a:de:c8: + 07:de:18:84:2d:96:b6:c4:4c:e1:4a:4d:13:6f:6c: + 9a:1d:e5:f9:6f:cc:7e:1b:4a:3a:75:1a:b9:37:b0: + 6d:a0:1b:69:35:f1:b6:e6:c2:a5:d3:56:d3:57:c7: + 0e:8b + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + 65:C5:56:88:65:AF:77:F1:53:B2:71:5E:16:10:D1:0B:30:FF:28:BE + X509v3 Authority Key Identifier: + keyid:79:06:CA:40:D3:9F:9A:54:AE:D3:33:4D:F2:38:3E:B6:0B:F3:3D:CF + DirName:/CN=SOCTOOLS-CA + serial:8A:74:93:26:80:5B:42:B7 + + X509v3 Extended Key Usage: + TLS Web Server Authentication, TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature, Key Encipherment + X509v3 Subject Alternative Name: + DNS:dsoclab-misp, DNS:dsoclab.gn4-3-wp8-soc.sunet.se + Signature Algorithm: sha256WithRSAEncryption + 5a:57:76:90:fd:a5:0d:ea:b0:22:c9:02:2e:18:91:81:04:d1: + f4:64:58:58:19:27:03:9b:5a:dc:de:6c:0e:fb:b7:76:eb:b1: + 97:36:e2:c7:76:ef:7d:d8:00:c3:20:c0:3d:a7:cf:61:f8:16: + 4c:96:4c:7c:c8:89:21:d6:d4:eb:3a:c1:3d:98:34:74:6e:39: + 81:20:6f:9b:4b:8d:b9:35:60:c5:76:19:30:30:06:0f:89:b1: + 1a:f6:c4:88:52:28:98:41:52:f1:9a:77:82:79:ae:c9:71:ba: + d9:e5:e9:b7:ba:08:32:59:eb:5e:7d:11:e0:a8:27:20:91:46: + 05:56:1e:e6:0b:4d:49:17:52:7f:4b:c4:a3:e0:cd:30:bd:4e: + 6a:70:2a:f5:77:4d:d1:d6:64:13:8d:4b:1a:d3:0b:0f:8a:49: + 1e:bf:b4:c0:4f:43:dc:92:e3:c0:f2:2f:4a:c8:30:45:fc:5a: + d2:de:92:b2:a1:48:b8:da:ff:f4:0b:04:5d:5d:a7:30:d8:4b: + ca:cf:0c:01:6a:50:45:5f:d4:a8:cf:dd:fa:f7:68:0c:4c:45: + 47:be:3a:c2:39:bb:04:ff:62:a0:bc:91:a0:f2:2b:67:09:89: + 5a:ff:e6:53:c1:89:18:12:a1:0f:5a:d7:e1:12:8b:88:88:89: + ca:b0:30:27 +-----BEGIN CERTIFICATE----- +MIIDkjCCAnqgAwIBAgIQdYf85M8+xoEXGZB2sSzV0jANBgkqhkiG9w0BAQsFADAW +MRQwEgYDVQQDDAtTT0NUT09MUy1DQTAeFw0yMDEwMzAxMDQ3MjhaFw0yMzEwMTUx +MDQ3MjhaMBcxFTATBgNVBAMMDGRzb2NsYWItbWlzcDCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBAM+xG+eirnCBcaVXRhQuR2SJTr198IItAxnWh0SzQr9y +eAPMkZhbNkIUVeKCFhJYYFREjxX2Gx92NiIu6KzTPArfRsfxBLw6v/5LjypTg+NQ +ggYJ/Cr6/pSge3/CPgs+3HK4lBAKC5D9RXYphVK/DyBDeP4700kgj5qlDIm7Dpfy +Z7At8BdTJaabS2QOcoq/yeOOQbvt8zNqVV+NUoT6o2cae3H7kPFfYd9E6gt3iPLl +wYNxWMdYips5RVlO4NsWtpZykIzuwhN16hXGa+LcOt7IB94YhC2WtsRM4UpNE29s +mh3l+W/MfhtKOnUauTewbaAbaTXxtubCpdNW01fHDosCAwEAAaOB2jCB1zAJBgNV +HRMEAjAAMB0GA1UdDgQWBBRlxVaIZa938VOycV4WENELMP8ovjBGBgNVHSMEPzA9 +gBR5BspA05+aVK7TM03yOD62C/M9z6EapBgwFjEUMBIGA1UEAwwLU09DVE9PTFMt +Q0GCCQCKdJMmgFtCtzAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwCwYD +VR0PBAQDAgWgMDcGA1UdEQQwMC6CDGRzb2NsYWItbWlzcIIeZHNvY2xhYi5nbjQt +My13cDgtc29jLnN1bmV0LnNlMA0GCSqGSIb3DQEBCwUAA4IBAQBaV3aQ/aUN6rAi +yQIuGJGBBNH0ZFhYGScDm1rc3mwO+7d267GXNuLHdu992ADDIMA9p89h+BZMlkx8 +yIkh1tTrOsE9mDR0bjmBIG+bS425NWDFdhkwMAYPibEa9sSIUiiYQVLxmneCea7J +cbrZ5em3uggyWetefRHgqCcgkUYFVh7mC01JF1J/S8Sj4M0wvU5qcCr1d03R1mQT +jUsa0wsPikkev7TAT0PckuPA8i9KyDBF/FrS3pKyoUi42v/0CwRdXacw2EvKzwwB +alBFX9Soz93692gMTEVHvjrCObsE/2KgvJGg8itnCYla/+ZTwYkYEqEPWtfhEouI +iInKsDAn +-----END CERTIFICATE----- diff --git a/roles/ca/files/CA/certs_by_serial/7DFC33457573E8F16094A74E6B2F23F1.pem b/roles/ca/files/CA/certs_by_serial/7DFC33457573E8F16094A74E6B2F23F1.pem new file mode 100644 index 0000000..f47839f --- /dev/null +++ b/roles/ca/files/CA/certs_by_serial/7DFC33457573E8F16094A74E6B2F23F1.pem @@ -0,0 +1,88 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 7d:fc:33:45:75:73:e8:f1:60:94:a7:4e:6b:2f:23:f1 + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=SOCTOOLS-CA + Validity + Not Before: Oct 30 10:47:27 2020 GMT + Not After : Oct 15 10:47:27 2023 GMT + Subject: CN=dsoclab-kibana + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:ce:4f:c9:0f:84:4d:4e:7b:dc:11:90:c9:49:a8: + f3:60:44:a8:25:1b:59:83:64:0b:d1:e0:bc:59:50: + 22:a5:f5:88:7a:c8:40:65:e4:22:3d:77:d2:8f:9e: + 30:17:80:5e:20:85:bc:70:67:61:cb:d8:e2:9f:9a: + 7c:7b:a6:e8:4e:79:7b:cd:86:6e:26:52:37:45:b6: + ab:b7:6f:40:8f:7a:55:8b:d1:91:cc:21:6f:55:37: + 50:3b:72:1f:2d:3b:bf:75:47:91:88:6a:1c:ea:39: + dd:8b:25:31:55:0e:bc:52:6f:bf:0b:96:ef:e3:12: + 5c:da:63:22:54:e5:b3:95:8b:02:9e:57:3e:7b:4f: + a0:f5:6f:07:a8:5b:45:7c:cb:34:83:77:34:a5:b1: + ff:05:12:88:8f:cc:c4:05:5d:e9:e7:7d:2b:12:fa: + bb:4d:25:f4:f7:04:e7:95:06:95:ea:a9:c4:75:4e: + f7:03:67:2d:9c:9a:f4:01:f6:2a:8d:6c:6d:d0:59: + a9:ce:1f:12:b1:76:39:c8:07:d4:20:73:1e:f3:9c: + b9:67:83:3b:a8:7c:6e:fb:86:ea:3f:6a:8e:98:4c: + 39:a9:d1:4d:be:9f:0a:43:49:1b:fd:09:67:b6:62: + 71:fd:87:9a:63:25:00:aa:c7:a1:4d:23:12:e3:56: + 0f:6f + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + 50:F3:7D:4F:B2:8C:A5:09:FD:64:CB:C1:97:F1:F8:49:C8:6B:30:4D + X509v3 Authority Key Identifier: + keyid:79:06:CA:40:D3:9F:9A:54:AE:D3:33:4D:F2:38:3E:B6:0B:F3:3D:CF + DirName:/CN=SOCTOOLS-CA + serial:8A:74:93:26:80:5B:42:B7 + + X509v3 Extended Key Usage: + TLS Web Server Authentication, TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature, Key Encipherment + X509v3 Subject Alternative Name: + DNS:dsoclab-kibana, DNS:dsoclab.gn4-3-wp8-soc.sunet.se + Signature Algorithm: sha256WithRSAEncryption + ae:be:82:6f:6d:e6:c4:cb:c3:2a:d9:d6:ee:11:52:a6:de:89: + 9e:31:a3:e2:86:07:e9:d1:fe:95:c9:a2:38:90:df:05:ff:e5: + 99:27:e8:d8:55:00:8a:85:b3:15:a5:e5:5b:ce:4e:4f:01:3b: + 74:a4:b2:09:fc:6e:95:92:94:2f:76:0d:c7:97:1b:78:c1:08: + 1e:3a:0e:fa:a6:ab:db:1e:22:26:86:39:f4:bb:89:a1:a1:d1: + 55:f6:c3:ff:9b:a5:eb:1b:6a:84:8a:1d:3c:5f:7c:03:0d:08: + 42:6f:d7:14:86:61:38:66:65:f7:c2:86:68:db:81:e9:41:0f: + 82:cf:bb:be:fd:d7:94:48:cc:f8:cf:4a:40:ce:33:c4:75:51: + 00:7e:c7:93:f6:3b:92:c1:5e:8a:ce:5f:2c:c2:f4:fe:ec:77: + 9e:ea:30:d9:53:ee:f9:b9:fd:50:f5:6b:92:1c:57:d2:e0:f3: + 05:d8:79:a9:63:16:13:09:cf:5f:39:dc:ec:43:e4:65:45:43: + 65:e4:7c:39:a3:a2:81:47:ab:8f:57:a9:89:9d:56:4b:77:b1: + 04:c8:9c:54:d2:5c:28:f5:d3:66:ae:9a:9c:a5:91:c7:eb:20: + 69:fb:58:99:c7:5e:be:ec:4a:7a:62:09:fe:3b:30:f2:4a:d7: + 1d:f9:0b:c3 +-----BEGIN CERTIFICATE----- +MIIDljCCAn6gAwIBAgIQffwzRXVz6PFglKdOay8j8TANBgkqhkiG9w0BAQsFADAW +MRQwEgYDVQQDDAtTT0NUT09MUy1DQTAeFw0yMDEwMzAxMDQ3MjdaFw0yMzEwMTUx +MDQ3MjdaMBkxFzAVBgNVBAMMDmRzb2NsYWIta2liYW5hMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAzk/JD4RNTnvcEZDJSajzYESoJRtZg2QL0eC8WVAi +pfWIeshAZeQiPXfSj54wF4BeIIW8cGdhy9jin5p8e6boTnl7zYZuJlI3Rbart29A +j3pVi9GRzCFvVTdQO3IfLTu/dUeRiGoc6jndiyUxVQ68Um+/C5bv4xJc2mMiVOWz +lYsCnlc+e0+g9W8HqFtFfMs0g3c0pbH/BRKIj8zEBV3p530rEvq7TSX09wTnlQaV +6qnEdU73A2ctnJr0AfYqjWxt0Fmpzh8SsXY5yAfUIHMe85y5Z4M7qHxu+4bqP2qO +mEw5qdFNvp8KQ0kb/QlntmJx/YeaYyUAqsehTSMS41YPbwIDAQABo4HcMIHZMAkG +A1UdEwQCMAAwHQYDVR0OBBYEFFDzfU+yjKUJ/WTLwZfx+EnIazBNMEYGA1UdIwQ/ +MD2AFHkGykDTn5pUrtMzTfI4PrYL8z3PoRqkGDAWMRQwEgYDVQQDDAtTT0NUT09M +Uy1DQYIJAIp0kyaAW0K3MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAL +BgNVHQ8EBAMCBaAwOQYDVR0RBDIwMIIOZHNvY2xhYi1raWJhbmGCHmRzb2NsYWIu +Z240LTMtd3A4LXNvYy5zdW5ldC5zZTANBgkqhkiG9w0BAQsFAAOCAQEArr6Cb23m +xMvDKtnW7hFSpt6JnjGj4oYH6dH+lcmiOJDfBf/lmSfo2FUAioWzFaXlW85OTwE7 +dKSyCfxulZKUL3YNx5cbeMEIHjoO+qar2x4iJoY59LuJoaHRVfbD/5ul6xtqhIod +PF98Aw0IQm/XFIZhOGZl98KGaNuB6UEPgs+7vv3XlEjM+M9KQM4zxHVRAH7Hk/Y7 +ksFeis5fLML0/ux3nuow2VPu+bn9UPVrkhxX0uDzBdh5qWMWEwnPXznc7EPkZUVD +ZeR8OaOigUerj1epiZ1WS3exBMicVNJcKPXTZq6anKWRx+sgaftYmcdevuxKemIJ +/jsw8krXHfkLww== +-----END CERTIFICATE----- diff --git a/roles/ca/files/CA/certs_by_serial/8B69055F8586CEDD21660B2493412660.pem b/roles/ca/files/CA/certs_by_serial/8B69055F8586CEDD21660B2493412660.pem new file mode 100644 index 0000000..56a67ac --- /dev/null +++ b/roles/ca/files/CA/certs_by_serial/8B69055F8586CEDD21660B2493412660.pem @@ -0,0 +1,88 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 8b:69:05:5f:85:86:ce:dd:21:66:0b:24:93:41:26:60 + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=SOCTOOLS-CA + Validity + Not Before: Oct 30 10:47:25 2020 GMT + Not After : Oct 15 10:47:25 2023 GMT + Subject: CN=dsoclab-nifi-2 + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:ac:b7:4b:e2:d5:87:7f:8e:15:9b:cf:c0:17:eb: + db:8c:e3:1b:83:c0:69:b9:06:91:a0:9b:c6:35:dc: + 2f:e8:8c:72:28:50:02:82:c5:b1:eb:da:d9:e3:9d: + 95:d2:d9:dd:e1:08:35:6d:83:73:95:98:ba:19:fd: + 3e:04:67:9a:09:37:45:79:d3:1d:0b:ec:0a:43:cb: + b8:24:cc:68:5c:ce:2e:ae:db:48:d8:6e:5a:f3:31: + be:87:28:86:76:8e:8f:8d:68:95:1f:72:6c:65:4a: + fc:9e:b8:7d:e2:83:e2:3d:b0:30:5d:c1:73:06:ae: + 9b:f7:9a:54:b8:02:6b:82:90:11:08:3f:d6:5f:59: + 5c:df:aa:25:59:c0:67:7a:fc:e1:f0:c9:4a:8b:e0: + 31:b6:53:13:c2:bf:8c:4f:3a:e6:ed:11:30:a6:41: + 26:ad:56:8f:03:0b:ad:87:6c:b2:73:c4:2e:41:3e: + 99:1a:b6:29:6d:e0:dc:af:8f:45:6e:d5:69:17:0d: + f1:58:a6:7e:8c:80:32:72:24:21:d2:e9:b4:44:23: + f6:10:8f:9f:64:7f:ef:e6:ab:f1:43:94:d0:8a:97: + 0e:e4:91:bd:86:b9:1f:42:f4:96:39:85:05:26:ed: + 90:01:91:11:a3:1f:04:5b:46:ff:1b:a9:74:77:db: + 18:03 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + 1F:5E:EF:0E:58:69:FD:21:93:48:19:98:81:48:13:2E:FC:31:61:0C + X509v3 Authority Key Identifier: + keyid:79:06:CA:40:D3:9F:9A:54:AE:D3:33:4D:F2:38:3E:B6:0B:F3:3D:CF + DirName:/CN=SOCTOOLS-CA + serial:8A:74:93:26:80:5B:42:B7 + + X509v3 Extended Key Usage: + TLS Web Server Authentication, TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature, Key Encipherment + X509v3 Subject Alternative Name: + DNS:dsoclab-nifi-2, DNS:dsoclab.gn4-3-wp8-soc.sunet.se + Signature Algorithm: sha256WithRSAEncryption + 21:2d:9b:f7:0c:74:cd:d4:30:b1:42:5b:32:98:d8:ef:9f:a9: + 9b:1b:f0:54:67:c3:20:5b:f1:87:4d:ff:e4:a5:db:af:eb:34: + 8a:b3:fa:d6:14:4a:3c:31:11:8f:09:b0:af:25:39:5a:5e:89: + 32:cf:c7:48:68:f3:14:72:a0:35:15:ec:76:c7:bb:a7:5b:0c: + d5:7e:5b:8c:d8:40:a2:5e:fa:f8:f2:cf:dd:56:65:7e:94:ef: + b4:99:25:ba:9f:78:94:7d:54:0c:83:b9:cf:b8:b4:9d:78:6d: + 62:e3:6c:98:1f:40:b9:35:3c:51:b5:9f:82:7b:1e:77:db:25: + f2:71:df:3d:e9:56:93:86:fe:61:48:4f:db:76:5b:5f:b1:96: + f9:46:72:5e:01:80:87:b5:be:b4:00:3b:37:7f:5e:44:d4:7e: + c5:87:ed:40:6b:9e:f4:ca:1b:b0:4b:84:97:1f:07:0f:7c:8b: + d2:7b:b1:3d:a7:f8:ae:39:07:34:50:41:70:1f:07:ba:a6:a2: + 0d:ca:e5:7b:d4:77:2c:95:4d:16:0c:34:e0:a5:59:7f:43:c7: + a0:dd:a0:f0:ed:75:5a:0f:61:76:52:34:ef:7c:a7:21:e4:de: + 3a:24:cd:39:b6:77:3a:c8:f3:1f:09:2b:80:9a:f0:5d:7f:5e: + 73:9d:73:eb +-----BEGIN CERTIFICATE----- +MIIDlzCCAn+gAwIBAgIRAItpBV+Fhs7dIWYLJJNBJmAwDQYJKoZIhvcNAQELBQAw +FjEUMBIGA1UEAwwLU09DVE9PTFMtQ0EwHhcNMjAxMDMwMTA0NzI1WhcNMjMxMDE1 +MTA0NzI1WjAZMRcwFQYDVQQDDA5kc29jbGFiLW5pZmktMjCCASIwDQYJKoZIhvcN +AQEBBQADggEPADCCAQoCggEBAKy3S+LVh3+OFZvPwBfr24zjG4PAabkGkaCbxjXc +L+iMcihQAoLFseva2eOdldLZ3eEINW2Dc5WYuhn9PgRnmgk3RXnTHQvsCkPLuCTM +aFzOLq7bSNhuWvMxvocohnaOj41olR9ybGVK/J64feKD4j2wMF3Bcwaum/eaVLgC +a4KQEQg/1l9ZXN+qJVnAZ3r84fDJSovgMbZTE8K/jE865u0RMKZBJq1WjwMLrYds +snPELkE+mRq2KW3g3K+PRW7VaRcN8VimfoyAMnIkIdLptEQj9hCPn2R/7+ar8UOU +0IqXDuSRvYa5H0L0ljmFBSbtkAGREaMfBFtG/xupdHfbGAMCAwEAAaOB3DCB2TAJ +BgNVHRMEAjAAMB0GA1UdDgQWBBQfXu8OWGn9IZNIGZiBSBMu/DFhDDBGBgNVHSME +PzA9gBR5BspA05+aVK7TM03yOD62C/M9z6EapBgwFjEUMBIGA1UEAwwLU09DVE9P +TFMtQ0GCCQCKdJMmgFtCtzAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw +CwYDVR0PBAQDAgWgMDkGA1UdEQQyMDCCDmRzb2NsYWItbmlmaS0ygh5kc29jbGFi +LmduNC0zLXdwOC1zb2Muc3VuZXQuc2UwDQYJKoZIhvcNAQELBQADggEBACEtm/cM +dM3UMLFCWzKY2O+fqZsb8FRnwyBb8YdN/+Sl26/rNIqz+tYUSjwxEY8JsK8lOVpe +iTLPx0ho8xRyoDUV7HbHu6dbDNV+W4zYQKJe+vjyz91WZX6U77SZJbqfeJR9VAyD +uc+4tJ14bWLjbJgfQLk1PFG1n4J7HnfbJfJx3z3pVpOG/mFIT9t2W1+xlvlGcl4B +gIe1vrQAOzd/XkTUfsWH7UBrnvTKG7BLhJcfBw98i9J7sT2n+K45BzRQQXAfB7qm +og3K5XvUdyyVTRYMNOClWX9Dx6DdoPDtdVoPYXZSNO98pyHk3jokzTm2dzrI8x8J +K4Ca8F1/XnOdc+s= +-----END CERTIFICATE----- diff --git a/roles/ca/files/CA/certs_by_serial/97D2D0CF2300C0A966D103CA89A99212.pem b/roles/ca/files/CA/certs_by_serial/97D2D0CF2300C0A966D103CA89A99212.pem new file mode 100644 index 0000000..71baad0 --- /dev/null +++ b/roles/ca/files/CA/certs_by_serial/97D2D0CF2300C0A966D103CA89A99212.pem @@ -0,0 +1,88 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 97:d2:d0:cf:23:00:c0:a9:66:d1:03:ca:89:a9:92:12 + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=SOCTOOLS-CA + Validity + Not Before: Oct 30 10:47:26 2020 GMT + Not After : Oct 15 10:47:26 2023 GMT + Subject: CN=dsoclab-odfe-1 + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:e5:46:f6:71:ce:a2:3f:61:5e:9b:f3:c6:61:88: + 87:99:0a:ac:b8:e8:9d:3c:5f:8c:60:2b:41:5b:36: + fb:39:0a:6f:a1:16:02:31:ac:0d:bd:0e:ff:95:59: + d8:f1:21:6b:bd:96:d6:7b:79:01:d1:65:1c:ca:09: + 22:50:30:01:ea:ed:b4:29:bf:b4:70:25:db:b3:1d: + e9:73:ed:63:93:02:4c:90:22:04:6d:31:74:31:ae: + 85:3c:12:8d:b3:f6:92:2f:de:75:75:8f:ca:a5:f2: + a2:12:94:fb:e8:73:30:37:f1:7c:b5:4e:59:ab:71: + 73:26:80:9a:46:8d:49:94:b0:09:e5:27:10:34:9d: + c0:53:3b:fa:77:2e:06:c0:73:8e:0f:9a:1e:8c:27: + 32:0c:eb:f2:d2:0c:a7:52:48:c6:ee:12:21:15:e3: + 45:30:89:81:63:7f:bf:0a:5b:d1:05:c8:1c:fc:5f: + bb:b8:82:2a:92:3b:3a:ae:19:9d:e9:a7:62:7c:0a: + f2:c2:2a:e6:a8:d4:9b:0a:a8:a2:5a:ec:e5:a3:1a: + 73:e0:83:3d:d2:e8:74:a9:0b:b0:e4:b0:fd:fe:ad: + 1e:57:e8:0d:20:7c:aa:1f:31:69:b5:0d:8c:3f:1c: + 8d:dc:d3:71:5b:f1:04:6a:ae:b9:2d:a8:be:28:11: + f5:4b + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + DB:92:49:8B:D9:27:41:85:16:AE:C9:CA:F6:8D:11:53:8B:EE:B0:5E + X509v3 Authority Key Identifier: + keyid:79:06:CA:40:D3:9F:9A:54:AE:D3:33:4D:F2:38:3E:B6:0B:F3:3D:CF + DirName:/CN=SOCTOOLS-CA + serial:8A:74:93:26:80:5B:42:B7 + + X509v3 Extended Key Usage: + TLS Web Server Authentication, TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature, Key Encipherment + X509v3 Subject Alternative Name: + DNS:dsoclab-odfe-1, DNS:dsoclab.gn4-3-wp8-soc.sunet.se + Signature Algorithm: sha256WithRSAEncryption + 0f:83:fb:ba:2a:0d:aa:14:3f:3f:0b:00:be:f9:37:f4:7f:29: + 1e:21:4e:18:07:e0:ae:e1:84:f7:cf:a1:21:a5:36:ba:77:6c: + 0c:00:11:d5:7d:d8:31:b3:f5:cc:fd:6b:27:8f:99:5f:99:4c: + 57:88:d0:1a:e7:66:6b:8a:fd:d1:01:e3:88:37:91:8c:7b:e9: + e2:22:dd:80:62:64:9e:22:e7:25:b5:b9:89:45:e4:24:f5:19: + c0:5d:10:50:57:80:66:23:0c:b1:8e:bd:b3:f1:fa:95:7e:6f: + 04:d1:da:c2:e8:a1:b2:55:55:66:3a:bc:5b:71:50:8c:a8:56: + 86:f4:a9:9c:c7:4b:d6:91:73:8e:a9:93:ef:e0:85:5e:5c:53: + ae:b3:a7:a4:31:80:f3:b3:e4:03:ad:da:96:f0:14:7b:25:e4: + ff:68:9b:8f:28:cd:fc:94:05:5f:38:80:84:d6:f5:d4:b7:bd: + 43:79:bd:fb:f2:ce:30:73:01:e8:ee:ad:45:4a:ea:88:3f:d1: + a2:ef:22:f5:49:cc:d4:27:22:3c:bc:1f:50:81:58:5a:65:9d: + d6:14:3b:3f:b2:8f:90:35:2b:e7:1a:9b:58:db:96:06:9b:cf: + 44:0b:f5:9f:aa:57:28:3c:ab:70:fa:bc:93:90:d9:94:d7:fe: + 6f:fe:39:2a +-----BEGIN CERTIFICATE----- +MIIDlzCCAn+gAwIBAgIRAJfS0M8jAMCpZtEDyompkhIwDQYJKoZIhvcNAQELBQAw +FjEUMBIGA1UEAwwLU09DVE9PTFMtQ0EwHhcNMjAxMDMwMTA0NzI2WhcNMjMxMDE1 +MTA0NzI2WjAZMRcwFQYDVQQDDA5kc29jbGFiLW9kZmUtMTCCASIwDQYJKoZIhvcN +AQEBBQADggEPADCCAQoCggEBAOVG9nHOoj9hXpvzxmGIh5kKrLjonTxfjGArQVs2 ++zkKb6EWAjGsDb0O/5VZ2PEha72W1nt5AdFlHMoJIlAwAerttCm/tHAl27Md6XPt +Y5MCTJAiBG0xdDGuhTwSjbP2ki/edXWPyqXyohKU++hzMDfxfLVOWatxcyaAmkaN +SZSwCeUnEDSdwFM7+ncuBsBzjg+aHownMgzr8tIMp1JIxu4SIRXjRTCJgWN/vwpb +0QXIHPxfu7iCKpI7Oq4ZnemnYnwK8sIq5qjUmwqoolrs5aMac+CDPdLodKkLsOSw +/f6tHlfoDSB8qh8xabUNjD8cjdzTcVvxBGquuS2ovigR9UsCAwEAAaOB3DCB2TAJ +BgNVHRMEAjAAMB0GA1UdDgQWBBTbkkmL2SdBhRauycr2jRFTi+6wXjBGBgNVHSME +PzA9gBR5BspA05+aVK7TM03yOD62C/M9z6EapBgwFjEUMBIGA1UEAwwLU09DVE9P +TFMtQ0GCCQCKdJMmgFtCtzAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw +CwYDVR0PBAQDAgWgMDkGA1UdEQQyMDCCDmRzb2NsYWItb2RmZS0xgh5kc29jbGFi +LmduNC0zLXdwOC1zb2Muc3VuZXQuc2UwDQYJKoZIhvcNAQELBQADggEBAA+D+7oq +DaoUPz8LAL75N/R/KR4hThgH4K7hhPfPoSGlNrp3bAwAEdV92DGz9cz9ayePmV+Z +TFeI0BrnZmuK/dEB44g3kYx76eIi3YBiZJ4i5yW1uYlF5CT1GcBdEFBXgGYjDLGO +vbPx+pV+bwTR2sLoobJVVWY6vFtxUIyoVob0qZzHS9aRc46pk+/ghV5cU66zp6Qx +gPOz5AOt2pbwFHsl5P9om48ozfyUBV84gITW9dS3vUN5vfvyzjBzAejurUVK6og/ +0aLvIvVJzNQnIjy8H1CBWFplndYUOz+yj5A1K+cam1jblgabz0QL9Z+qVyg8q3D6 +vJOQ2ZTX/m/+OSo= +-----END CERTIFICATE----- diff --git a/roles/ca/files/CA/certs_by_serial/A7217943DDD1145BC6F68CBA362CB35B.pem b/roles/ca/files/CA/certs_by_serial/A7217943DDD1145BC6F68CBA362CB35B.pem new file mode 100644 index 0000000..4baf981 --- /dev/null +++ b/roles/ca/files/CA/certs_by_serial/A7217943DDD1145BC6F68CBA362CB35B.pem @@ -0,0 +1,84 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + a7:21:79:43:dd:d1:14:5b:c6:f6:8c:ba:36:2c:b3:5b + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=SOCTOOLS-CA + Validity + Not Before: Oct 30 10:47:52 2020 GMT + Not After : Oct 15 10:47:52 2023 GMT + Subject: CN=Arne Oslebo + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:ce:4c:02:19:21:6e:1c:f2:ed:93:d8:fd:bc:1a: + a4:c2:11:3b:e1:55:73:e5:26:92:d3:d9:e8:a6:dd: + 7d:a2:1d:be:6a:7c:64:06:39:60:33:38:7d:6a:ca: + 89:9d:e5:11:58:21:69:f3:3a:88:5e:ea:e5:2e:e1: + 9d:bb:00:1f:59:19:69:4f:6b:32:3d:2f:1a:da:95: + 3d:99:95:53:9f:b2:ea:db:13:48:63:2d:4a:dc:0c: + 4b:a6:1c:4c:62:e2:d0:11:25:67:cb:80:52:02:e8: + f8:3b:3c:eb:cb:f4:71:03:5a:be:d9:a0:49:fe:d1: + 72:fe:4f:be:e1:ac:a1:ed:a5:15:06:f4:4e:c9:06: + ab:9b:92:c2:3e:b9:58:0c:f4:15:0e:04:c0:91:1b: + 85:73:9d:b6:97:a1:6c:70:0a:1a:a0:ce:4c:8d:ac: + 29:e4:c5:17:00:26:03:44:32:a8:7b:83:52:49:43: + 60:11:53:c8:1e:b8:eb:9f:1f:e3:13:54:81:77:c4: + 47:4a:2e:20:8d:48:8c:91:2e:e0:d4:e5:37:0b:5c: + bb:5f:40:37:92:e9:60:3b:a0:f9:98:7f:6d:b3:20: + 92:3c:da:8c:f0:79:81:f2:ea:77:ba:b4:7b:06:54: + 75:89:77:7e:ad:08:3a:ae:1e:dc:1c:11:63:08:43: + 14:97 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + BA:57:27:B7:A6:72:56:05:70:2F:E2:6E:47:CA:0F:2F:C4:26:44:86 + X509v3 Authority Key Identifier: + keyid:79:06:CA:40:D3:9F:9A:54:AE:D3:33:4D:F2:38:3E:B6:0B:F3:3D:CF + DirName:/CN=SOCTOOLS-CA + serial:8A:74:93:26:80:5B:42:B7 + + X509v3 Extended Key Usage: + TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature + Signature Algorithm: sha256WithRSAEncryption + 53:30:05:cf:78:2f:0b:25:a1:64:0a:94:06:11:9b:a8:07:d3: + 5d:4f:0c:80:78:9c:cb:8e:07:d8:21:29:68:d0:ea:43:55:3f: + 14:18:dc:40:cc:a4:84:da:11:24:07:71:35:63:49:3e:bc:10: + 3a:93:cd:b8:61:22:e1:43:a8:d4:c5:2b:13:e4:27:62:00:f1: + c8:31:d0:27:05:27:6b:0e:77:df:1b:f0:e5:6e:d9:0b:8a:9a: + 0b:5f:97:20:2c:dd:e1:37:64:94:1a:9e:f7:a7:63:37:88:71: + 0e:57:a2:da:10:1f:2c:a3:a9:e1:40:01:48:58:74:2e:b3:11: + 8f:d1:21:30:49:b9:53:29:c5:92:85:85:6b:51:20:05:b4:c5: + af:b9:b2:9b:a3:50:1d:59:ac:fa:bf:33:57:61:f4:f1:c3:ee: + a2:9a:99:b2:04:de:8b:fc:d2:3c:58:38:ab:9d:d2:6d:f2:e3: + 0c:69:a5:76:78:df:ae:c9:67:0a:97:55:3d:f0:8f:5a:5e:de: + e6:56:1b:4e:66:c9:34:77:97:54:d4:66:e2:24:3c:f0:43:01: + 24:05:0c:32:a0:65:38:09:53:6c:0e:38:ea:7c:b1:d6:51:11: + 60:8f:28:9f:ab:13:d0:75:f3:93:13:f2:1e:a4:bd:18:ae:b0: + 0f:f6:29:d4 +-----BEGIN CERTIFICATE----- +MIIDTzCCAjegAwIBAgIRAKcheUPd0RRbxvaMujYss1swDQYJKoZIhvcNAQELBQAw +FjEUMBIGA1UEAwwLU09DVE9PTFMtQ0EwHhcNMjAxMDMwMTA0NzUyWhcNMjMxMDE1 +MTA0NzUyWjAWMRQwEgYDVQQDDAtBcm5lIE9zbGVibzCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBAM5MAhkhbhzy7ZPY/bwapMIRO+FVc+UmktPZ6KbdfaId +vmp8ZAY5YDM4fWrKiZ3lEVghafM6iF7q5S7hnbsAH1kZaU9rMj0vGtqVPZmVU5+y +6tsTSGMtStwMS6YcTGLi0BElZ8uAUgLo+Ds868v0cQNavtmgSf7Rcv5PvuGsoe2l +FQb0TskGq5uSwj65WAz0FQ4EwJEbhXOdtpehbHAKGqDOTI2sKeTFFwAmA0QyqHuD +UklDYBFTyB64658f4xNUgXfER0ouII1IjJEu4NTlNwtcu19AN5LpYDug+Zh/bbMg +kjzajPB5gfLqd7q0ewZUdYl3fq0IOq4e3BwRYwhDFJcCAwEAAaOBlzCBlDAJBgNV +HRMEAjAAMB0GA1UdDgQWBBS6Vye3pnJWBXAv4m5Hyg8vxCZEhjBGBgNVHSMEPzA9 +gBR5BspA05+aVK7TM03yOD62C/M9z6EapBgwFjEUMBIGA1UEAwwLU09DVE9PTFMt +Q0GCCQCKdJMmgFtCtzATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMCB4Aw +DQYJKoZIhvcNAQELBQADggEBAFMwBc94LwsloWQKlAYRm6gH011PDIB4nMuOB9gh +KWjQ6kNVPxQY3EDMpITaESQHcTVjST68EDqTzbhhIuFDqNTFKxPkJ2IA8cgx0CcF +J2sOd98b8OVu2QuKmgtflyAs3eE3ZJQanvenYzeIcQ5XotoQHyyjqeFAAUhYdC6z +EY/RITBJuVMpxZKFhWtRIAW0xa+5spujUB1ZrPq/M1dh9PHD7qKambIE3ov80jxY +OKud0m3y4wxppXZ4367JZwqXVT3wj1pe3uZWG05myTR3l1TUZuIkPPBDASQFDDKg +ZTgJU2wOOOp8sdZREWCPKJ+rE9B185MT8h6kvRiusA/2KdQ= +-----END CERTIFICATE----- diff --git a/roles/ca/files/CA/certs_by_serial/D27B43CB9BFB09CFCC86EFD1019A42FC.pem b/roles/ca/files/CA/certs_by_serial/D27B43CB9BFB09CFCC86EFD1019A42FC.pem new file mode 100644 index 0000000..5be39cb --- /dev/null +++ b/roles/ca/files/CA/certs_by_serial/D27B43CB9BFB09CFCC86EFD1019A42FC.pem @@ -0,0 +1,88 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + d2:7b:43:cb:9b:fb:09:cf:cc:86:ef:d1:01:9a:42:fc + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=SOCTOOLS-CA + Validity + Not Before: Oct 30 10:47:30 2020 GMT + Not After : Oct 15 10:47:30 2023 GMT + Subject: CN=dsoclab-haproxy + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:c9:c7:22:33:0b:0b:0f:a0:8c:c4:a9:81:37:bd: + 51:2f:47:32:fa:1b:88:45:b1:bb:11:43:3d:de:b3: + 70:67:d7:8b:39:5a:8f:13:fb:2f:78:08:b1:b1:32: + c6:d1:0e:e4:d3:2e:3a:db:84:db:d2:65:6b:26:24: + 6c:d7:16:e5:a5:90:8e:02:46:13:02:0a:96:66:46: + 87:b7:b0:ee:56:4c:3c:d8:ae:4c:7d:ef:5b:aa:6e: + 01:8e:89:fe:4c:b9:de:6c:ba:e4:3f:8d:f8:d7:3a: + ed:b2:29:9a:5b:ac:5a:86:66:05:f3:19:2f:59:8d: + 7c:8b:6a:97:1e:43:8a:36:80:b2:e9:e1:84:f6:94: + bc:13:11:31:b8:d2:5a:72:ed:68:c3:b1:37:e4:5b: + 91:82:62:aa:13:f2:b6:e0:3a:aa:85:66:70:0a:a9: + ad:5c:a7:52:ff:dc:f9:99:5e:e5:15:d5:0c:fe:cd: + 27:cb:98:9e:5a:69:ca:71:74:31:e6:26:df:ec:d2: + 42:43:b9:f3:04:8e:2c:7a:28:a6:f9:8e:ba:64:3c: + 69:0e:ac:f5:dc:d5:f3:2a:50:47:50:d4:8c:f5:ee: + 31:08:73:69:1f:ae:42:1d:52:84:5d:47:68:dd:a3: + 1f:07:57:ec:3e:9e:0d:23:78:16:41:bc:68:f2:4f: + e9:19 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + 49:DC:74:02:17:71:C3:D0:A0:64:31:9E:60:2B:B4:38:43:62:DE:98 + X509v3 Authority Key Identifier: + keyid:79:06:CA:40:D3:9F:9A:54:AE:D3:33:4D:F2:38:3E:B6:0B:F3:3D:CF + DirName:/CN=SOCTOOLS-CA + serial:8A:74:93:26:80:5B:42:B7 + + X509v3 Extended Key Usage: + TLS Web Server Authentication, TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature, Key Encipherment + X509v3 Subject Alternative Name: + DNS:dsoclab-haproxy, DNS:dsoclab.gn4-3-wp8-soc.sunet.se + Signature Algorithm: sha256WithRSAEncryption + 04:a0:71:31:d2:11:93:09:96:c8:1b:2a:31:b8:b9:34:07:ac: + 89:cb:b0:6c:b0:f0:17:5f:18:3c:a6:96:ca:b3:fa:c7:af:40: + 17:e1:7e:e4:dc:ee:fe:5c:dc:86:40:b7:2f:9d:c0:9e:fd:16: + 6b:85:ab:c2:a8:63:1f:fe:03:2b:89:6a:80:c9:2e:ae:cc:3d: + 19:75:32:0e:56:57:16:27:02:51:49:1d:b3:78:aa:57:d3:00: + 9b:93:fe:6d:a3:37:ad:26:35:57:e1:5f:90:bf:ef:30:bc:68: + f3:bf:7c:59:69:4f:61:30:2d:48:66:a6:44:2a:51:63:6e:4f: + a7:8f:96:7e:91:b2:b2:46:bc:97:1b:01:df:c0:24:5c:b2:aa: + 8d:20:3a:25:5d:8a:1c:84:53:0d:d4:f6:d5:81:5d:30:de:c4: + d7:fa:42:9c:79:68:92:56:b7:76:69:c6:c9:ad:07:47:a6:d2: + 46:d4:a5:0c:10:a9:03:21:4d:56:40:e5:28:e3:fa:70:1b:23: + 32:68:07:3d:d6:8a:3a:fb:6d:3b:a6:20:16:1b:09:f3:47:f0: + 2a:4f:dc:97:86:56:37:96:42:1b:89:b8:76:1a:ab:7a:25:4e: + e8:62:d9:a0:3b:ec:62:72:64:64:ca:87:9c:be:0a:08:09:52: + ab:03:89:2b +-----BEGIN CERTIFICATE----- +MIIDmTCCAoGgAwIBAgIRANJ7Q8ub+wnPzIbv0QGaQvwwDQYJKoZIhvcNAQELBQAw +FjEUMBIGA1UEAwwLU09DVE9PTFMtQ0EwHhcNMjAxMDMwMTA0NzMwWhcNMjMxMDE1 +MTA0NzMwWjAaMRgwFgYDVQQDDA9kc29jbGFiLWhhcHJveHkwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQDJxyIzCwsPoIzEqYE3vVEvRzL6G4hFsbsRQz3e +s3Bn14s5Wo8T+y94CLGxMsbRDuTTLjrbhNvSZWsmJGzXFuWlkI4CRhMCCpZmRoe3 +sO5WTDzYrkx971uqbgGOif5Mud5suuQ/jfjXOu2yKZpbrFqGZgXzGS9ZjXyLapce +Q4o2gLLp4YT2lLwTETG40lpy7WjDsTfkW5GCYqoT8rbgOqqFZnAKqa1cp1L/3PmZ +XuUV1Qz+zSfLmJ5aacpxdDHmJt/s0kJDufMEjix6KKb5jrpkPGkOrPXc1fMqUEdQ +1Iz17jEIc2kfrkIdUoRdR2jdox8HV+w+ng0jeBZBvGjyT+kZAgMBAAGjgd0wgdow +CQYDVR0TBAIwADAdBgNVHQ4EFgQUSdx0Ahdxw9CgZDGeYCu0OENi3pgwRgYDVR0j +BD8wPYAUeQbKQNOfmlSu0zNN8jg+tgvzPc+hGqQYMBYxFDASBgNVBAMMC1NPQ1RP +T0xTLUNBggkAinSTJoBbQrcwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC +MAsGA1UdDwQEAwIFoDA6BgNVHREEMzAxgg9kc29jbGFiLWhhcHJveHmCHmRzb2Ns +YWIuZ240LTMtd3A4LXNvYy5zdW5ldC5zZTANBgkqhkiG9w0BAQsFAAOCAQEABKBx +MdIRkwmWyBsqMbi5NAesicuwbLDwF18YPKaWyrP6x69AF+F+5Nzu/lzchkC3L53A +nv0Wa4WrwqhjH/4DK4lqgMkursw9GXUyDlZXFicCUUkds3iqV9MAm5P+baM3rSY1 +V+FfkL/vMLxo8798WWlPYTAtSGamRCpRY25Pp4+WfpGyska8lxsB38AkXLKqjSA6 +JV2KHIRTDdT21YFdMN7E1/pCnHlokla3dmnGya0HR6bSRtSlDBCpAyFNVkDlKOP6 +cBsjMmgHPdaKOvttO6YgFhsJ80fwKk/cl4ZWN5ZCG4m4dhqreiVO6GLZoDvsYnJk +ZMqHnL4KCAlSqwOJKw== +-----END CERTIFICATE----- diff --git a/roles/ca/files/CA/certs_by_serial/FE7583DEF2355A2C2BBA09720BD80948.pem b/roles/ca/files/CA/certs_by_serial/FE7583DEF2355A2C2BBA09720BD80948.pem new file mode 100644 index 0000000..92b6893 --- /dev/null +++ b/roles/ca/files/CA/certs_by_serial/FE7583DEF2355A2C2BBA09720BD80948.pem @@ -0,0 +1,88 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + fe:75:83:de:f2:35:5a:2c:2b:ba:09:72:0b:d8:09:48 + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=SOCTOOLS-CA + Validity + Not Before: Oct 30 10:47:28 2020 GMT + Not After : Oct 15 10:47:28 2023 GMT + Subject: CN=dsoclab-keycloak + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:ea:a9:ea:6b:2f:6c:9c:9f:6d:9c:89:4e:01:ba: + c6:c0:32:df:59:26:2b:95:f4:c2:3d:c8:7e:22:ce: + b6:78:03:e8:22:28:81:9c:9a:a6:a7:ba:fd:05:66: + a3:50:81:85:71:c1:d9:ea:bc:21:e1:5d:0a:87:7b: + be:55:b0:7d:01:57:de:4c:fe:3a:c5:c9:54:77:2e: + 15:fc:12:07:f8:ef:9f:7b:f7:09:01:70:75:53:3b: + dc:b1:0c:65:4d:49:c4:fb:1d:42:20:6f:81:45:42: + d3:db:1d:4c:57:1b:1d:3b:81:39:ee:b2:cf:95:4b: + 29:d0:a8:39:98:d6:93:36:99:bf:c5:43:26:8d:4d: + db:6d:24:3b:fc:16:76:a1:fd:6f:c6:19:11:c7:12: + 0d:80:16:4c:88:da:2c:09:78:3d:1b:7c:6c:ec:db: + 9e:01:50:5f:a3:56:7f:d4:3b:a4:26:d2:6d:42:7b: + 88:4e:8d:64:ed:1e:1a:0e:05:58:65:58:47:83:60: + 9e:b4:ed:15:ce:72:4f:a0:b5:22:dd:9f:a4:da:88: + 86:fe:cb:84:6e:72:3d:00:42:da:8b:85:2a:f2:ef: + d7:ee:bb:85:42:ba:b9:fb:d9:9d:d2:2c:58:0f:7c: + 02:23:b7:46:d0:69:06:37:40:9d:58:74:89:ca:b7: + 12:e5 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + FD:C5:77:F8:79:AD:0A:7E:6A:A0:2E:3B:58:6A:9F:43:51:55:0B:DF + X509v3 Authority Key Identifier: + keyid:79:06:CA:40:D3:9F:9A:54:AE:D3:33:4D:F2:38:3E:B6:0B:F3:3D:CF + DirName:/CN=SOCTOOLS-CA + serial:8A:74:93:26:80:5B:42:B7 + + X509v3 Extended Key Usage: + TLS Web Server Authentication, TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature, Key Encipherment + X509v3 Subject Alternative Name: + DNS:dsoclab-keycloak, DNS:dsoclab.gn4-3-wp8-soc.sunet.se + Signature Algorithm: sha256WithRSAEncryption + 9a:c0:35:a3:68:ec:ec:cc:c3:65:5a:bf:03:d0:ee:8d:a0:41: + db:6d:89:3e:97:d4:90:7d:63:8e:73:37:43:ae:9a:e2:d0:2b: + a7:5e:b2:88:9b:4d:8f:b6:81:bf:f6:46:a0:87:ca:77:ec:5c: + af:cd:6b:d8:e8:60:5a:aa:86:be:64:d5:ad:e9:1e:41:7b:6a: + df:01:1d:16:86:94:57:82:51:91:be:6b:d6:ae:f0:b9:8c:3d: + 11:99:c4:93:eb:f7:fa:9e:a3:e3:f8:97:19:cf:63:55:6a:6e: + 4f:e9:a2:64:a7:35:0d:7e:68:23:89:e1:c6:06:4b:34:67:38: + 40:d1:81:b3:73:95:3a:3b:67:d2:5a:e4:8e:49:34:b1:ab:6f: + b6:60:87:ac:55:5d:f5:59:c0:d5:d3:d8:de:3b:76:c9:41:28: + b4:d7:23:ec:a2:3f:1d:3f:74:2e:f0:45:40:35:38:d1:06:50: + b2:93:45:df:de:33:5e:0b:89:86:d8:c9:14:61:1c:d2:94:21: + 1f:bf:df:32:f0:2f:91:52:b0:08:b7:b9:c2:b7:55:2b:ca:05: + e4:eb:91:e1:63:45:5d:1a:6f:e8:76:07:89:e8:42:3e:ec:7b: + 51:0e:a0:d5:8e:c3:3d:26:e3:45:b0:5b:61:d1:98:3b:c3:d4: + 37:9f:c1:7c +-----BEGIN CERTIFICATE----- +MIIDmzCCAoOgAwIBAgIRAP51g97yNVosK7oJcgvYCUgwDQYJKoZIhvcNAQELBQAw +FjEUMBIGA1UEAwwLU09DVE9PTFMtQ0EwHhcNMjAxMDMwMTA0NzI4WhcNMjMxMDE1 +MTA0NzI4WjAbMRkwFwYDVQQDDBBkc29jbGFiLWtleWNsb2FrMIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6qnqay9snJ9tnIlOAbrGwDLfWSYrlfTCPch+ +Is62eAPoIiiBnJqmp7r9BWajUIGFccHZ6rwh4V0Kh3u+VbB9AVfeTP46xclUdy4V +/BIH+O+fe/cJAXB1UzvcsQxlTUnE+x1CIG+BRULT2x1MVxsdO4E57rLPlUsp0Kg5 +mNaTNpm/xUMmjU3bbSQ7/BZ2of1vxhkRxxINgBZMiNosCXg9G3xs7NueAVBfo1Z/ +1DukJtJtQnuITo1k7R4aDgVYZVhHg2CetO0VznJPoLUi3Z+k2oiG/suEbnI9AELa +i4Uq8u/X7ruFQrq5+9md0ixYD3wCI7dG0GkGN0CdWHSJyrcS5QIDAQABo4HeMIHb +MAkGA1UdEwQCMAAwHQYDVR0OBBYEFP3Fd/h5rQp+aqAuO1hqn0NRVQvfMEYGA1Ud +IwQ/MD2AFHkGykDTn5pUrtMzTfI4PrYL8z3PoRqkGDAWMRQwEgYDVQQDDAtTT0NU +T09MUy1DQYIJAIp0kyaAW0K3MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcD +AjALBgNVHQ8EBAMCBaAwOwYDVR0RBDQwMoIQZHNvY2xhYi1rZXljbG9ha4IeZHNv +Y2xhYi5nbjQtMy13cDgtc29jLnN1bmV0LnNlMA0GCSqGSIb3DQEBCwUAA4IBAQCa +wDWjaOzszMNlWr8D0O6NoEHbbYk+l9SQfWOOczdDrpri0CunXrKIm02PtoG/9kag +h8p37FyvzWvY6GBaqoa+ZNWt6R5Be2rfAR0WhpRXglGRvmvWrvC5jD0RmcST6/f6 +nqPj+JcZz2NVam5P6aJkpzUNfmgjieHGBks0ZzhA0YGzc5U6O2fSWuSOSTSxq2+2 +YIesVV31WcDV09jeO3bJQSi01yPsoj8dP3Qu8EVANTjRBlCyk0Xf3jNeC4mG2MkU +YRzSlCEfv98y8C+RUrAIt7nCt1UrygXk65HhY0VdGm/odgeJ6EI+7HtRDqDVjsM9 +JuNFsFth0Zg7w9Q3n8F8 +-----END CERTIFICATE----- diff --git a/roles/ca/files/CA/extensions.temp b/roles/ca/files/CA/extensions.temp new file mode 100644 index 0000000..5680ec9 --- /dev/null +++ b/roles/ca/files/CA/extensions.temp @@ -0,0 +1,15 @@ +# X509 extensions added to every signed cert + +# This file is included for every cert signed, and by default does nothing. +# It could be used to add values every cert should have, such as a CDP as +# demonstrated in the following example: + +#crlDistributionPoints = URI:http://example.net/pki/my_ca.crl +# X509 extensions for a client + +basicConstraints = CA:FALSE +subjectKeyIdentifier = hash +authorityKeyIdentifier = keyid,issuer:always +extendedKeyUsage = clientAuth +keyUsage = digitalSignature + diff --git a/roles/ca/files/CA/index.txt b/roles/ca/files/CA/index.txt new file mode 100644 index 0000000..221d42d --- /dev/null +++ b/roles/ca/files/CA/index.txt @@ -0,0 +1,13 @@ +V 231015104725Z 01EC4DAD3E5E47CF4E4B98495932B337 unknown /CN=dsoclab-nifi-1 +V 231015104725Z 8B69055F8586CEDD21660B2493412660 unknown /CN=dsoclab-nifi-2 +V 231015104726Z 5969918F10EF8D2BAE46B26D6D629D8E unknown /CN=dsoclab-nifi-3 +V 231015104726Z 97D2D0CF2300C0A966D103CA89A99212 unknown /CN=dsoclab-odfe-1 +V 231015104727Z 560A99C5A03FC4B9FC92FDC62F419BB9 unknown /CN=dsoclab-odfe-2 +V 231015104727Z 7DFC33457573E8F16094A74E6B2F23F1 unknown /CN=dsoclab-kibana +V 231015104728Z FE7583DEF2355A2C2BBA09720BD80948 unknown /CN=dsoclab-keycloak +V 231015104728Z 7587FCE4CF3EC68117199076B12CD5D2 unknown /CN=dsoclab-misp +V 231015104729Z 61095C2C8D35EE291C99CEABD42B3CA4 unknown /CN=dsoclab-thehive +V 231015104729Z 5DC4BC495FA076A813A4C23261640D92 unknown /CN=dsoclab-cortex +V 231015104730Z D27B43CB9BFB09CFCC86EFD1019A42FC unknown /CN=dsoclab-haproxy +V 231015104752Z 1DD9AF5415359961C578D1B98BFA6E9F unknown /CN=Bozidar Proevski +V 231015104752Z A7217943DDD1145BC6F68CBA362CB35B unknown /CN=Arne Oslebo diff --git a/roles/ca/files/CA/index.txt.attr b/roles/ca/files/CA/index.txt.attr new file mode 100644 index 0000000..3a7e39e --- /dev/null +++ b/roles/ca/files/CA/index.txt.attr @@ -0,0 +1 @@ +unique_subject = no diff --git a/roles/ca/files/CA/index.txt.attr.old b/roles/ca/files/CA/index.txt.attr.old new file mode 100644 index 0000000..3a7e39e --- /dev/null +++ b/roles/ca/files/CA/index.txt.attr.old @@ -0,0 +1 @@ +unique_subject = no diff --git a/roles/ca/files/CA/index.txt.old b/roles/ca/files/CA/index.txt.old new file mode 100644 index 0000000..022f254 --- /dev/null +++ b/roles/ca/files/CA/index.txt.old @@ -0,0 +1,12 @@ +V 231015104725Z 01EC4DAD3E5E47CF4E4B98495932B337 unknown /CN=dsoclab-nifi-1 +V 231015104725Z 8B69055F8586CEDD21660B2493412660 unknown /CN=dsoclab-nifi-2 +V 231015104726Z 5969918F10EF8D2BAE46B26D6D629D8E unknown /CN=dsoclab-nifi-3 +V 231015104726Z 97D2D0CF2300C0A966D103CA89A99212 unknown /CN=dsoclab-odfe-1 +V 231015104727Z 560A99C5A03FC4B9FC92FDC62F419BB9 unknown /CN=dsoclab-odfe-2 +V 231015104727Z 7DFC33457573E8F16094A74E6B2F23F1 unknown /CN=dsoclab-kibana +V 231015104728Z FE7583DEF2355A2C2BBA09720BD80948 unknown /CN=dsoclab-keycloak +V 231015104728Z 7587FCE4CF3EC68117199076B12CD5D2 unknown /CN=dsoclab-misp +V 231015104729Z 61095C2C8D35EE291C99CEABD42B3CA4 unknown /CN=dsoclab-thehive +V 231015104729Z 5DC4BC495FA076A813A4C23261640D92 unknown /CN=dsoclab-cortex +V 231015104730Z D27B43CB9BFB09CFCC86EFD1019A42FC unknown /CN=dsoclab-haproxy +V 231015104752Z 1DD9AF5415359961C578D1B98BFA6E9F unknown /CN=Bozidar Proevski diff --git a/roles/ca/files/CA/issued/Arne Oslebo.crt b/roles/ca/files/CA/issued/Arne Oslebo.crt new file mode 100644 index 0000000..4baf981 --- /dev/null +++ b/roles/ca/files/CA/issued/Arne Oslebo.crt @@ -0,0 +1,84 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + a7:21:79:43:dd:d1:14:5b:c6:f6:8c:ba:36:2c:b3:5b + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=SOCTOOLS-CA + Validity + Not Before: Oct 30 10:47:52 2020 GMT + Not After : Oct 15 10:47:52 2023 GMT + Subject: CN=Arne Oslebo + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:ce:4c:02:19:21:6e:1c:f2:ed:93:d8:fd:bc:1a: + a4:c2:11:3b:e1:55:73:e5:26:92:d3:d9:e8:a6:dd: + 7d:a2:1d:be:6a:7c:64:06:39:60:33:38:7d:6a:ca: + 89:9d:e5:11:58:21:69:f3:3a:88:5e:ea:e5:2e:e1: + 9d:bb:00:1f:59:19:69:4f:6b:32:3d:2f:1a:da:95: + 3d:99:95:53:9f:b2:ea:db:13:48:63:2d:4a:dc:0c: + 4b:a6:1c:4c:62:e2:d0:11:25:67:cb:80:52:02:e8: + f8:3b:3c:eb:cb:f4:71:03:5a:be:d9:a0:49:fe:d1: + 72:fe:4f:be:e1:ac:a1:ed:a5:15:06:f4:4e:c9:06: + ab:9b:92:c2:3e:b9:58:0c:f4:15:0e:04:c0:91:1b: + 85:73:9d:b6:97:a1:6c:70:0a:1a:a0:ce:4c:8d:ac: + 29:e4:c5:17:00:26:03:44:32:a8:7b:83:52:49:43: + 60:11:53:c8:1e:b8:eb:9f:1f:e3:13:54:81:77:c4: + 47:4a:2e:20:8d:48:8c:91:2e:e0:d4:e5:37:0b:5c: + bb:5f:40:37:92:e9:60:3b:a0:f9:98:7f:6d:b3:20: + 92:3c:da:8c:f0:79:81:f2:ea:77:ba:b4:7b:06:54: + 75:89:77:7e:ad:08:3a:ae:1e:dc:1c:11:63:08:43: + 14:97 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + BA:57:27:B7:A6:72:56:05:70:2F:E2:6E:47:CA:0F:2F:C4:26:44:86 + X509v3 Authority Key Identifier: + keyid:79:06:CA:40:D3:9F:9A:54:AE:D3:33:4D:F2:38:3E:B6:0B:F3:3D:CF + DirName:/CN=SOCTOOLS-CA + serial:8A:74:93:26:80:5B:42:B7 + + X509v3 Extended Key Usage: + TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature + Signature Algorithm: sha256WithRSAEncryption + 53:30:05:cf:78:2f:0b:25:a1:64:0a:94:06:11:9b:a8:07:d3: + 5d:4f:0c:80:78:9c:cb:8e:07:d8:21:29:68:d0:ea:43:55:3f: + 14:18:dc:40:cc:a4:84:da:11:24:07:71:35:63:49:3e:bc:10: + 3a:93:cd:b8:61:22:e1:43:a8:d4:c5:2b:13:e4:27:62:00:f1: + c8:31:d0:27:05:27:6b:0e:77:df:1b:f0:e5:6e:d9:0b:8a:9a: + 0b:5f:97:20:2c:dd:e1:37:64:94:1a:9e:f7:a7:63:37:88:71: + 0e:57:a2:da:10:1f:2c:a3:a9:e1:40:01:48:58:74:2e:b3:11: + 8f:d1:21:30:49:b9:53:29:c5:92:85:85:6b:51:20:05:b4:c5: + af:b9:b2:9b:a3:50:1d:59:ac:fa:bf:33:57:61:f4:f1:c3:ee: + a2:9a:99:b2:04:de:8b:fc:d2:3c:58:38:ab:9d:d2:6d:f2:e3: + 0c:69:a5:76:78:df:ae:c9:67:0a:97:55:3d:f0:8f:5a:5e:de: + e6:56:1b:4e:66:c9:34:77:97:54:d4:66:e2:24:3c:f0:43:01: + 24:05:0c:32:a0:65:38:09:53:6c:0e:38:ea:7c:b1:d6:51:11: + 60:8f:28:9f:ab:13:d0:75:f3:93:13:f2:1e:a4:bd:18:ae:b0: + 0f:f6:29:d4 +-----BEGIN CERTIFICATE----- +MIIDTzCCAjegAwIBAgIRAKcheUPd0RRbxvaMujYss1swDQYJKoZIhvcNAQELBQAw +FjEUMBIGA1UEAwwLU09DVE9PTFMtQ0EwHhcNMjAxMDMwMTA0NzUyWhcNMjMxMDE1 +MTA0NzUyWjAWMRQwEgYDVQQDDAtBcm5lIE9zbGVibzCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBAM5MAhkhbhzy7ZPY/bwapMIRO+FVc+UmktPZ6KbdfaId +vmp8ZAY5YDM4fWrKiZ3lEVghafM6iF7q5S7hnbsAH1kZaU9rMj0vGtqVPZmVU5+y +6tsTSGMtStwMS6YcTGLi0BElZ8uAUgLo+Ds868v0cQNavtmgSf7Rcv5PvuGsoe2l +FQb0TskGq5uSwj65WAz0FQ4EwJEbhXOdtpehbHAKGqDOTI2sKeTFFwAmA0QyqHuD +UklDYBFTyB64658f4xNUgXfER0ouII1IjJEu4NTlNwtcu19AN5LpYDug+Zh/bbMg +kjzajPB5gfLqd7q0ewZUdYl3fq0IOq4e3BwRYwhDFJcCAwEAAaOBlzCBlDAJBgNV +HRMEAjAAMB0GA1UdDgQWBBS6Vye3pnJWBXAv4m5Hyg8vxCZEhjBGBgNVHSMEPzA9 +gBR5BspA05+aVK7TM03yOD62C/M9z6EapBgwFjEUMBIGA1UEAwwLU09DVE9PTFMt +Q0GCCQCKdJMmgFtCtzATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMCB4Aw +DQYJKoZIhvcNAQELBQADggEBAFMwBc94LwsloWQKlAYRm6gH011PDIB4nMuOB9gh +KWjQ6kNVPxQY3EDMpITaESQHcTVjST68EDqTzbhhIuFDqNTFKxPkJ2IA8cgx0CcF +J2sOd98b8OVu2QuKmgtflyAs3eE3ZJQanvenYzeIcQ5XotoQHyyjqeFAAUhYdC6z +EY/RITBJuVMpxZKFhWtRIAW0xa+5spujUB1ZrPq/M1dh9PHD7qKambIE3ov80jxY +OKud0m3y4wxppXZ4367JZwqXVT3wj1pe3uZWG05myTR3l1TUZuIkPPBDASQFDDKg +ZTgJU2wOOOp8sdZREWCPKJ+rE9B185MT8h6kvRiusA/2KdQ= +-----END CERTIFICATE----- diff --git a/roles/ca/files/CA/issued/Bozidar Proevski.crt b/roles/ca/files/CA/issued/Bozidar Proevski.crt new file mode 100644 index 0000000..af57c1e --- /dev/null +++ b/roles/ca/files/CA/issued/Bozidar Proevski.crt @@ -0,0 +1,84 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 1d:d9:af:54:15:35:99:61:c5:78:d1:b9:8b:fa:6e:9f + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=SOCTOOLS-CA + Validity + Not Before: Oct 30 10:47:52 2020 GMT + Not After : Oct 15 10:47:52 2023 GMT + Subject: CN=Bozidar Proevski + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:9a:de:00:fd:f1:e9:b9:29:d9:58:d0:47:21:cf: + 4b:67:17:f7:a9:02:93:17:cf:57:5b:6f:db:26:90: + 30:09:0b:d9:c5:66:5e:f6:22:66:ab:48:06:aa:6c: + 88:b3:fd:93:45:a4:60:c9:5f:2b:6c:af:db:68:5e: + 27:e6:85:71:27:b7:20:52:61:df:14:1b:da:06:39: + b2:21:20:4b:22:48:b7:4b:76:44:02:b1:89:5f:0e: + 59:22:cb:b9:c9:1e:8d:a0:ac:28:5d:e5:ae:c8:ea: + cc:05:20:a2:60:11:12:8d:6d:88:0a:73:e8:7c:68: + 9c:48:2c:c9:a8:c6:9d:c3:3c:c1:e7:f4:07:f7:5b: + 6e:42:3d:3d:0f:85:6f:e2:b9:88:a9:d0:02:84:b8: + 19:6a:ae:13:a1:97:50:98:16:c8:0c:1b:bd:02:c8: + 5f:a3:2f:73:7e:25:f8:8c:e7:92:43:c7:6a:75:bc: + 85:ea:1c:47:28:ce:2c:9b:3a:8f:a8:07:e9:8c:8a: + 75:3e:c1:97:32:ce:e3:c5:ca:1e:0a:d7:3c:77:0a: + d2:ab:51:c3:e5:dc:37:90:1a:35:bf:a0:4a:aa:bd: + 38:ef:9e:6d:f8:81:37:7f:d3:77:23:c6:5b:63:98: + 64:07:2f:47:fd:7d:21:2f:57:c2:d8:44:00:c2:29: + 22:79 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + A3:9F:29:21:E0:E5:18:E4:CB:4C:2D:7F:84:2F:AF:F2:49:F0:83:3A + X509v3 Authority Key Identifier: + keyid:79:06:CA:40:D3:9F:9A:54:AE:D3:33:4D:F2:38:3E:B6:0B:F3:3D:CF + DirName:/CN=SOCTOOLS-CA + serial:8A:74:93:26:80:5B:42:B7 + + X509v3 Extended Key Usage: + TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature + Signature Algorithm: sha256WithRSAEncryption + ad:cb:66:5d:b7:29:e5:19:7b:7c:ae:23:50:58:34:db:c9:79: + 39:de:57:83:34:03:6d:bc:bf:e2:31:79:9d:2b:a2:7a:e0:c4: + c8:19:96:e0:20:f3:05:2a:a6:f4:b8:90:c4:ea:8d:5e:86:e1: + 13:99:59:0f:da:c8:3d:96:0d:78:04:4f:26:9c:6a:7c:8e:50: + 5a:30:f1:37:dc:26:99:28:35:f8:25:b9:4b:f8:d2:f0:d3:b5: + 61:32:c9:9c:43:39:21:43:c1:de:0d:4d:8e:e5:6f:a1:58:e5: + 01:84:d6:a5:de:88:2a:55:9f:ec:de:be:b1:13:61:33:dd:50: + 19:89:dd:11:48:5e:c2:14:8d:69:8f:a9:43:73:80:71:8f:54: + ba:da:74:b4:26:ec:5b:82:88:84:90:6d:f7:58:3f:78:d3:20: + 5b:c3:9b:82:85:b7:ef:98:12:4f:ba:e8:38:f3:8c:af:85:91: + 66:40:fe:a9:b2:fd:d6:76:ad:70:b7:b5:33:88:64:31:97:81: + d9:c6:ec:47:9b:af:3f:31:c8:de:0c:cc:88:3d:b7:6f:6f:19: + 24:f1:ae:ff:de:95:31:3f:38:e5:ed:a1:e1:e4:6b:54:1f:26: + b8:53:79:cf:fe:89:ba:bc:35:a1:bc:2f:8a:07:a2:eb:0d:90: + 72:ad:8a:60 +-----BEGIN CERTIFICATE----- +MIIDUzCCAjugAwIBAgIQHdmvVBU1mWHFeNG5i/punzANBgkqhkiG9w0BAQsFADAW +MRQwEgYDVQQDDAtTT0NUT09MUy1DQTAeFw0yMDEwMzAxMDQ3NTJaFw0yMzEwMTUx +MDQ3NTJaMBsxGTAXBgNVBAMMEEJvemlkYXIgUHJvZXZza2kwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQCa3gD98em5KdlY0Echz0tnF/epApMXz1dbb9sm +kDAJC9nFZl72ImarSAaqbIiz/ZNFpGDJXytsr9toXifmhXEntyBSYd8UG9oGObIh +IEsiSLdLdkQCsYlfDlkiy7nJHo2grChd5a7I6swFIKJgERKNbYgKc+h8aJxILMmo +xp3DPMHn9Af3W25CPT0PhW/iuYip0AKEuBlqrhOhl1CYFsgMG70CyF+jL3N+JfiM +55JDx2p1vIXqHEcoziybOo+oB+mMinU+wZcyzuPFyh4K1zx3CtKrUcPl3DeQGjW/ +oEqqvTjvnm34gTd/03cjxltjmGQHL0f9fSEvV8LYRADCKSJ5AgMBAAGjgZcwgZQw +CQYDVR0TBAIwADAdBgNVHQ4EFgQUo58pIeDlGOTLTC1/hC+v8knwgzowRgYDVR0j +BD8wPYAUeQbKQNOfmlSu0zNN8jg+tgvzPc+hGqQYMBYxFDASBgNVBAMMC1NPQ1RP +T0xTLUNBggkAinSTJoBbQrcwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQD +AgeAMA0GCSqGSIb3DQEBCwUAA4IBAQCty2ZdtynlGXt8riNQWDTbyXk53leDNANt +vL/iMXmdK6J64MTIGZbgIPMFKqb0uJDE6o1ehuETmVkP2sg9lg14BE8mnGp8jlBa +MPE33CaZKDX4JblL+NLw07VhMsmcQzkhQ8HeDU2O5W+hWOUBhNal3ogqVZ/s3r6x +E2Ez3VAZid0RSF7CFI1pj6lDc4Bxj1S62nS0JuxbgoiEkG33WD940yBbw5uChbfv +mBJPuug484yvhZFmQP6psv3Wdq1wt7UziGQxl4HZxuxHm68/McjeDMyIPbdvbxkk +8a7/3pUxPzjl7aHh5GtUHya4U3nP/om6vDWhvC+KB6LrDZByrYpg +-----END CERTIFICATE----- diff --git a/roles/ca/files/CA/issued/dsoclab-cortex.crt b/roles/ca/files/CA/issued/dsoclab-cortex.crt new file mode 100644 index 0000000..a743bd0 --- /dev/null +++ b/roles/ca/files/CA/issued/dsoclab-cortex.crt @@ -0,0 +1,88 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 5d:c4:bc:49:5f:a0:76:a8:13:a4:c2:32:61:64:0d:92 + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=SOCTOOLS-CA + Validity + Not Before: Oct 30 10:47:29 2020 GMT + Not After : Oct 15 10:47:29 2023 GMT + Subject: CN=dsoclab-cortex + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:cd:09:6b:14:33:4a:47:75:5b:d3:d9:67:3b:4d: + ad:1f:a7:1f:33:ab:86:b1:aa:3b:09:ab:1a:a6:fb: + a0:60:04:e3:68:33:0e:85:54:d1:70:61:8a:b9:d5: + d6:b5:6c:c2:b3:36:02:94:b7:1d:18:93:5f:88:81: + ff:2a:f4:99:58:6d:d7:96:e2:d2:64:77:b9:74:44: + 3c:f0:fb:5b:0f:43:7d:38:5d:fe:b0:db:05:7a:a9: + c5:10:24:75:13:c8:2d:da:69:be:e3:43:33:f0:28: + 30:9a:53:f8:f8:d3:10:32:35:ec:1d:87:ab:1e:2c: + b5:00:7c:9f:8f:61:e0:5d:56:15:8c:46:45:09:78: + 02:78:10:c0:af:2f:25:6c:c2:5b:ed:5f:c1:33:0b: + f8:c8:13:dc:df:c3:fc:05:90:ff:06:9e:cb:bc:1d: + 2b:c2:57:f2:bd:aa:22:b3:4b:f5:ca:b2:b8:00:18: + f1:14:10:b8:5e:69:9f:ed:fc:04:83:d9:2e:b7:9a: + 8a:45:1c:54:71:8f:61:02:6a:8a:84:2f:67:df:92: + 3a:0c:5f:e5:b6:e7:6c:27:69:1f:5b:06:d6:7f:e6: + df:ab:2f:31:a5:cd:63:32:60:c0:07:50:6c:0d:39: + cb:68:ae:3c:b2:da:0f:20:06:77:2c:28:ab:3a:30: + 92:1b + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + 9A:0E:E1:26:13:A7:12:5F:A4:F1:41:C0:09:FC:AD:EB:4E:66:C2:50 + X509v3 Authority Key Identifier: + keyid:79:06:CA:40:D3:9F:9A:54:AE:D3:33:4D:F2:38:3E:B6:0B:F3:3D:CF + DirName:/CN=SOCTOOLS-CA + serial:8A:74:93:26:80:5B:42:B7 + + X509v3 Extended Key Usage: + TLS Web Server Authentication, TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature, Key Encipherment + X509v3 Subject Alternative Name: + DNS:dsoclab-cortex, DNS:dsoclab.gn4-3-wp8-soc.sunet.se + Signature Algorithm: sha256WithRSAEncryption + 27:2e:a1:0c:8d:fb:b1:36:ff:4e:ac:00:91:75:81:4b:20:79: + 3f:da:1c:e1:80:b9:8c:6b:60:47:a5:8c:bf:1f:34:98:61:95: + 00:bb:79:d4:9e:c8:fb:dc:fb:6a:48:b2:69:d1:1a:04:cc:52: + ca:0b:48:01:3e:94:1e:68:0b:e3:4d:fa:12:c4:aa:ff:b6:5b: + 0c:3c:80:21:fe:50:87:8a:14:3a:7d:e7:a3:5e:b6:dc:22:ba: + cc:97:69:00:a8:78:08:dd:66:d1:cb:ca:28:41:b9:cc:8a:6b: + 7c:40:b7:5e:1d:a1:88:5a:b3:fd:18:77:e9:c4:48:fd:38:8f: + 06:6e:78:0e:f1:1a:1b:b2:6c:0a:df:38:11:e3:5a:3d:2a:5b: + de:41:63:14:ab:25:8e:a6:9f:a8:b7:32:9e:dc:23:45:f3:6b: + 6d:86:b7:17:b3:53:df:55:bd:cb:41:a1:b7:73:ae:21:1b:68: + b3:b1:0a:e5:e6:0c:2a:77:76:23:f3:87:ee:5f:0e:6d:cd:3b: + 94:9a:6f:f2:fd:4f:2d:72:a3:21:94:55:c0:4a:6c:2b:13:e3: + 82:13:a5:1f:82:6b:ae:6e:e2:ec:eb:7a:25:6a:f2:9e:45:d7: + 0a:7d:75:be:9d:f7:94:6f:ce:a5:27:d6:9b:dc:d2:12:54:64: + 09:c4:f6:a9 +-----BEGIN CERTIFICATE----- +MIIDljCCAn6gAwIBAgIQXcS8SV+gdqgTpMIyYWQNkjANBgkqhkiG9w0BAQsFADAW +MRQwEgYDVQQDDAtTT0NUT09MUy1DQTAeFw0yMDEwMzAxMDQ3MjlaFw0yMzEwMTUx +MDQ3MjlaMBkxFzAVBgNVBAMMDmRzb2NsYWItY29ydGV4MIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAzQlrFDNKR3Vb09lnO02tH6cfM6uGsao7Casapvug +YATjaDMOhVTRcGGKudXWtWzCszYClLcdGJNfiIH/KvSZWG3XluLSZHe5dEQ88Ptb +D0N9OF3+sNsFeqnFECR1E8gt2mm+40Mz8CgwmlP4+NMQMjXsHYerHiy1AHyfj2Hg +XVYVjEZFCXgCeBDAry8lbMJb7V/BMwv4yBPc38P8BZD/Bp7LvB0rwlfyvaois0v1 +yrK4ABjxFBC4Xmmf7fwEg9kut5qKRRxUcY9hAmqKhC9n35I6DF/ltudsJ2kfWwbW +f+bfqy8xpc1jMmDAB1BsDTnLaK48stoPIAZ3LCirOjCSGwIDAQABo4HcMIHZMAkG +A1UdEwQCMAAwHQYDVR0OBBYEFJoO4SYTpxJfpPFBwAn8retOZsJQMEYGA1UdIwQ/ +MD2AFHkGykDTn5pUrtMzTfI4PrYL8z3PoRqkGDAWMRQwEgYDVQQDDAtTT0NUT09M +Uy1DQYIJAIp0kyaAW0K3MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAL +BgNVHQ8EBAMCBaAwOQYDVR0RBDIwMIIOZHNvY2xhYi1jb3J0ZXiCHmRzb2NsYWIu +Z240LTMtd3A4LXNvYy5zdW5ldC5zZTANBgkqhkiG9w0BAQsFAAOCAQEAJy6hDI37 +sTb/TqwAkXWBSyB5P9oc4YC5jGtgR6WMvx80mGGVALt51J7I+9z7akiyadEaBMxS +ygtIAT6UHmgL4036EsSq/7ZbDDyAIf5Qh4oUOn3no1623CK6zJdpAKh4CN1m0cvK +KEG5zIprfEC3Xh2hiFqz/Rh36cRI/TiPBm54DvEaG7JsCt84EeNaPSpb3kFjFKsl +jqafqLcyntwjRfNrbYa3F7NT31W9y0Ght3OuIRtos7EK5eYMKnd2I/OH7l8Obc07 +lJpv8v1PLXKjIZRVwEpsKxPjghOlH4Jrrm7i7Ot6JWrynkXXCn11vp33lG/OpSfW +m9zSElRkCcT2qQ== +-----END CERTIFICATE----- diff --git a/roles/ca/files/CA/issued/dsoclab-haproxy.crt b/roles/ca/files/CA/issued/dsoclab-haproxy.crt new file mode 100644 index 0000000..5be39cb --- /dev/null +++ b/roles/ca/files/CA/issued/dsoclab-haproxy.crt @@ -0,0 +1,88 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + d2:7b:43:cb:9b:fb:09:cf:cc:86:ef:d1:01:9a:42:fc + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=SOCTOOLS-CA + Validity + Not Before: Oct 30 10:47:30 2020 GMT + Not After : Oct 15 10:47:30 2023 GMT + Subject: CN=dsoclab-haproxy + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:c9:c7:22:33:0b:0b:0f:a0:8c:c4:a9:81:37:bd: + 51:2f:47:32:fa:1b:88:45:b1:bb:11:43:3d:de:b3: + 70:67:d7:8b:39:5a:8f:13:fb:2f:78:08:b1:b1:32: + c6:d1:0e:e4:d3:2e:3a:db:84:db:d2:65:6b:26:24: + 6c:d7:16:e5:a5:90:8e:02:46:13:02:0a:96:66:46: + 87:b7:b0:ee:56:4c:3c:d8:ae:4c:7d:ef:5b:aa:6e: + 01:8e:89:fe:4c:b9:de:6c:ba:e4:3f:8d:f8:d7:3a: + ed:b2:29:9a:5b:ac:5a:86:66:05:f3:19:2f:59:8d: + 7c:8b:6a:97:1e:43:8a:36:80:b2:e9:e1:84:f6:94: + bc:13:11:31:b8:d2:5a:72:ed:68:c3:b1:37:e4:5b: + 91:82:62:aa:13:f2:b6:e0:3a:aa:85:66:70:0a:a9: + ad:5c:a7:52:ff:dc:f9:99:5e:e5:15:d5:0c:fe:cd: + 27:cb:98:9e:5a:69:ca:71:74:31:e6:26:df:ec:d2: + 42:43:b9:f3:04:8e:2c:7a:28:a6:f9:8e:ba:64:3c: + 69:0e:ac:f5:dc:d5:f3:2a:50:47:50:d4:8c:f5:ee: + 31:08:73:69:1f:ae:42:1d:52:84:5d:47:68:dd:a3: + 1f:07:57:ec:3e:9e:0d:23:78:16:41:bc:68:f2:4f: + e9:19 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + 49:DC:74:02:17:71:C3:D0:A0:64:31:9E:60:2B:B4:38:43:62:DE:98 + X509v3 Authority Key Identifier: + keyid:79:06:CA:40:D3:9F:9A:54:AE:D3:33:4D:F2:38:3E:B6:0B:F3:3D:CF + DirName:/CN=SOCTOOLS-CA + serial:8A:74:93:26:80:5B:42:B7 + + X509v3 Extended Key Usage: + TLS Web Server Authentication, TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature, Key Encipherment + X509v3 Subject Alternative Name: + DNS:dsoclab-haproxy, DNS:dsoclab.gn4-3-wp8-soc.sunet.se + Signature Algorithm: sha256WithRSAEncryption + 04:a0:71:31:d2:11:93:09:96:c8:1b:2a:31:b8:b9:34:07:ac: + 89:cb:b0:6c:b0:f0:17:5f:18:3c:a6:96:ca:b3:fa:c7:af:40: + 17:e1:7e:e4:dc:ee:fe:5c:dc:86:40:b7:2f:9d:c0:9e:fd:16: + 6b:85:ab:c2:a8:63:1f:fe:03:2b:89:6a:80:c9:2e:ae:cc:3d: + 19:75:32:0e:56:57:16:27:02:51:49:1d:b3:78:aa:57:d3:00: + 9b:93:fe:6d:a3:37:ad:26:35:57:e1:5f:90:bf:ef:30:bc:68: + f3:bf:7c:59:69:4f:61:30:2d:48:66:a6:44:2a:51:63:6e:4f: + a7:8f:96:7e:91:b2:b2:46:bc:97:1b:01:df:c0:24:5c:b2:aa: + 8d:20:3a:25:5d:8a:1c:84:53:0d:d4:f6:d5:81:5d:30:de:c4: + d7:fa:42:9c:79:68:92:56:b7:76:69:c6:c9:ad:07:47:a6:d2: + 46:d4:a5:0c:10:a9:03:21:4d:56:40:e5:28:e3:fa:70:1b:23: + 32:68:07:3d:d6:8a:3a:fb:6d:3b:a6:20:16:1b:09:f3:47:f0: + 2a:4f:dc:97:86:56:37:96:42:1b:89:b8:76:1a:ab:7a:25:4e: + e8:62:d9:a0:3b:ec:62:72:64:64:ca:87:9c:be:0a:08:09:52: + ab:03:89:2b +-----BEGIN CERTIFICATE----- +MIIDmTCCAoGgAwIBAgIRANJ7Q8ub+wnPzIbv0QGaQvwwDQYJKoZIhvcNAQELBQAw +FjEUMBIGA1UEAwwLU09DVE9PTFMtQ0EwHhcNMjAxMDMwMTA0NzMwWhcNMjMxMDE1 +MTA0NzMwWjAaMRgwFgYDVQQDDA9kc29jbGFiLWhhcHJveHkwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQDJxyIzCwsPoIzEqYE3vVEvRzL6G4hFsbsRQz3e +s3Bn14s5Wo8T+y94CLGxMsbRDuTTLjrbhNvSZWsmJGzXFuWlkI4CRhMCCpZmRoe3 +sO5WTDzYrkx971uqbgGOif5Mud5suuQ/jfjXOu2yKZpbrFqGZgXzGS9ZjXyLapce +Q4o2gLLp4YT2lLwTETG40lpy7WjDsTfkW5GCYqoT8rbgOqqFZnAKqa1cp1L/3PmZ +XuUV1Qz+zSfLmJ5aacpxdDHmJt/s0kJDufMEjix6KKb5jrpkPGkOrPXc1fMqUEdQ +1Iz17jEIc2kfrkIdUoRdR2jdox8HV+w+ng0jeBZBvGjyT+kZAgMBAAGjgd0wgdow +CQYDVR0TBAIwADAdBgNVHQ4EFgQUSdx0Ahdxw9CgZDGeYCu0OENi3pgwRgYDVR0j +BD8wPYAUeQbKQNOfmlSu0zNN8jg+tgvzPc+hGqQYMBYxFDASBgNVBAMMC1NPQ1RP +T0xTLUNBggkAinSTJoBbQrcwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC +MAsGA1UdDwQEAwIFoDA6BgNVHREEMzAxgg9kc29jbGFiLWhhcHJveHmCHmRzb2Ns +YWIuZ240LTMtd3A4LXNvYy5zdW5ldC5zZTANBgkqhkiG9w0BAQsFAAOCAQEABKBx +MdIRkwmWyBsqMbi5NAesicuwbLDwF18YPKaWyrP6x69AF+F+5Nzu/lzchkC3L53A +nv0Wa4WrwqhjH/4DK4lqgMkursw9GXUyDlZXFicCUUkds3iqV9MAm5P+baM3rSY1 +V+FfkL/vMLxo8798WWlPYTAtSGamRCpRY25Pp4+WfpGyska8lxsB38AkXLKqjSA6 +JV2KHIRTDdT21YFdMN7E1/pCnHlokla3dmnGya0HR6bSRtSlDBCpAyFNVkDlKOP6 +cBsjMmgHPdaKOvttO6YgFhsJ80fwKk/cl4ZWN5ZCG4m4dhqreiVO6GLZoDvsYnJk +ZMqHnL4KCAlSqwOJKw== +-----END CERTIFICATE----- diff --git a/roles/ca/files/CA/issued/dsoclab-keycloak.crt b/roles/ca/files/CA/issued/dsoclab-keycloak.crt new file mode 100644 index 0000000..92b6893 --- /dev/null +++ b/roles/ca/files/CA/issued/dsoclab-keycloak.crt @@ -0,0 +1,88 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + fe:75:83:de:f2:35:5a:2c:2b:ba:09:72:0b:d8:09:48 + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=SOCTOOLS-CA + Validity + Not Before: Oct 30 10:47:28 2020 GMT + Not After : Oct 15 10:47:28 2023 GMT + Subject: CN=dsoclab-keycloak + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:ea:a9:ea:6b:2f:6c:9c:9f:6d:9c:89:4e:01:ba: + c6:c0:32:df:59:26:2b:95:f4:c2:3d:c8:7e:22:ce: + b6:78:03:e8:22:28:81:9c:9a:a6:a7:ba:fd:05:66: + a3:50:81:85:71:c1:d9:ea:bc:21:e1:5d:0a:87:7b: + be:55:b0:7d:01:57:de:4c:fe:3a:c5:c9:54:77:2e: + 15:fc:12:07:f8:ef:9f:7b:f7:09:01:70:75:53:3b: + dc:b1:0c:65:4d:49:c4:fb:1d:42:20:6f:81:45:42: + d3:db:1d:4c:57:1b:1d:3b:81:39:ee:b2:cf:95:4b: + 29:d0:a8:39:98:d6:93:36:99:bf:c5:43:26:8d:4d: + db:6d:24:3b:fc:16:76:a1:fd:6f:c6:19:11:c7:12: + 0d:80:16:4c:88:da:2c:09:78:3d:1b:7c:6c:ec:db: + 9e:01:50:5f:a3:56:7f:d4:3b:a4:26:d2:6d:42:7b: + 88:4e:8d:64:ed:1e:1a:0e:05:58:65:58:47:83:60: + 9e:b4:ed:15:ce:72:4f:a0:b5:22:dd:9f:a4:da:88: + 86:fe:cb:84:6e:72:3d:00:42:da:8b:85:2a:f2:ef: + d7:ee:bb:85:42:ba:b9:fb:d9:9d:d2:2c:58:0f:7c: + 02:23:b7:46:d0:69:06:37:40:9d:58:74:89:ca:b7: + 12:e5 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + FD:C5:77:F8:79:AD:0A:7E:6A:A0:2E:3B:58:6A:9F:43:51:55:0B:DF + X509v3 Authority Key Identifier: + keyid:79:06:CA:40:D3:9F:9A:54:AE:D3:33:4D:F2:38:3E:B6:0B:F3:3D:CF + DirName:/CN=SOCTOOLS-CA + serial:8A:74:93:26:80:5B:42:B7 + + X509v3 Extended Key Usage: + TLS Web Server Authentication, TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature, Key Encipherment + X509v3 Subject Alternative Name: + DNS:dsoclab-keycloak, DNS:dsoclab.gn4-3-wp8-soc.sunet.se + Signature Algorithm: sha256WithRSAEncryption + 9a:c0:35:a3:68:ec:ec:cc:c3:65:5a:bf:03:d0:ee:8d:a0:41: + db:6d:89:3e:97:d4:90:7d:63:8e:73:37:43:ae:9a:e2:d0:2b: + a7:5e:b2:88:9b:4d:8f:b6:81:bf:f6:46:a0:87:ca:77:ec:5c: + af:cd:6b:d8:e8:60:5a:aa:86:be:64:d5:ad:e9:1e:41:7b:6a: + df:01:1d:16:86:94:57:82:51:91:be:6b:d6:ae:f0:b9:8c:3d: + 11:99:c4:93:eb:f7:fa:9e:a3:e3:f8:97:19:cf:63:55:6a:6e: + 4f:e9:a2:64:a7:35:0d:7e:68:23:89:e1:c6:06:4b:34:67:38: + 40:d1:81:b3:73:95:3a:3b:67:d2:5a:e4:8e:49:34:b1:ab:6f: + b6:60:87:ac:55:5d:f5:59:c0:d5:d3:d8:de:3b:76:c9:41:28: + b4:d7:23:ec:a2:3f:1d:3f:74:2e:f0:45:40:35:38:d1:06:50: + b2:93:45:df:de:33:5e:0b:89:86:d8:c9:14:61:1c:d2:94:21: + 1f:bf:df:32:f0:2f:91:52:b0:08:b7:b9:c2:b7:55:2b:ca:05: + e4:eb:91:e1:63:45:5d:1a:6f:e8:76:07:89:e8:42:3e:ec:7b: + 51:0e:a0:d5:8e:c3:3d:26:e3:45:b0:5b:61:d1:98:3b:c3:d4: + 37:9f:c1:7c +-----BEGIN CERTIFICATE----- +MIIDmzCCAoOgAwIBAgIRAP51g97yNVosK7oJcgvYCUgwDQYJKoZIhvcNAQELBQAw +FjEUMBIGA1UEAwwLU09DVE9PTFMtQ0EwHhcNMjAxMDMwMTA0NzI4WhcNMjMxMDE1 +MTA0NzI4WjAbMRkwFwYDVQQDDBBkc29jbGFiLWtleWNsb2FrMIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6qnqay9snJ9tnIlOAbrGwDLfWSYrlfTCPch+ +Is62eAPoIiiBnJqmp7r9BWajUIGFccHZ6rwh4V0Kh3u+VbB9AVfeTP46xclUdy4V +/BIH+O+fe/cJAXB1UzvcsQxlTUnE+x1CIG+BRULT2x1MVxsdO4E57rLPlUsp0Kg5 +mNaTNpm/xUMmjU3bbSQ7/BZ2of1vxhkRxxINgBZMiNosCXg9G3xs7NueAVBfo1Z/ +1DukJtJtQnuITo1k7R4aDgVYZVhHg2CetO0VznJPoLUi3Z+k2oiG/suEbnI9AELa +i4Uq8u/X7ruFQrq5+9md0ixYD3wCI7dG0GkGN0CdWHSJyrcS5QIDAQABo4HeMIHb +MAkGA1UdEwQCMAAwHQYDVR0OBBYEFP3Fd/h5rQp+aqAuO1hqn0NRVQvfMEYGA1Ud +IwQ/MD2AFHkGykDTn5pUrtMzTfI4PrYL8z3PoRqkGDAWMRQwEgYDVQQDDAtTT0NU +T09MUy1DQYIJAIp0kyaAW0K3MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcD +AjALBgNVHQ8EBAMCBaAwOwYDVR0RBDQwMoIQZHNvY2xhYi1rZXljbG9ha4IeZHNv +Y2xhYi5nbjQtMy13cDgtc29jLnN1bmV0LnNlMA0GCSqGSIb3DQEBCwUAA4IBAQCa +wDWjaOzszMNlWr8D0O6NoEHbbYk+l9SQfWOOczdDrpri0CunXrKIm02PtoG/9kag +h8p37FyvzWvY6GBaqoa+ZNWt6R5Be2rfAR0WhpRXglGRvmvWrvC5jD0RmcST6/f6 +nqPj+JcZz2NVam5P6aJkpzUNfmgjieHGBks0ZzhA0YGzc5U6O2fSWuSOSTSxq2+2 +YIesVV31WcDV09jeO3bJQSi01yPsoj8dP3Qu8EVANTjRBlCyk0Xf3jNeC4mG2MkU +YRzSlCEfv98y8C+RUrAIt7nCt1UrygXk65HhY0VdGm/odgeJ6EI+7HtRDqDVjsM9 +JuNFsFth0Zg7w9Q3n8F8 +-----END CERTIFICATE----- diff --git a/roles/ca/files/CA/issued/dsoclab-kibana.crt b/roles/ca/files/CA/issued/dsoclab-kibana.crt new file mode 100644 index 0000000..f47839f --- /dev/null +++ b/roles/ca/files/CA/issued/dsoclab-kibana.crt @@ -0,0 +1,88 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 7d:fc:33:45:75:73:e8:f1:60:94:a7:4e:6b:2f:23:f1 + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=SOCTOOLS-CA + Validity + Not Before: Oct 30 10:47:27 2020 GMT + Not After : Oct 15 10:47:27 2023 GMT + Subject: CN=dsoclab-kibana + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:ce:4f:c9:0f:84:4d:4e:7b:dc:11:90:c9:49:a8: + f3:60:44:a8:25:1b:59:83:64:0b:d1:e0:bc:59:50: + 22:a5:f5:88:7a:c8:40:65:e4:22:3d:77:d2:8f:9e: + 30:17:80:5e:20:85:bc:70:67:61:cb:d8:e2:9f:9a: + 7c:7b:a6:e8:4e:79:7b:cd:86:6e:26:52:37:45:b6: + ab:b7:6f:40:8f:7a:55:8b:d1:91:cc:21:6f:55:37: + 50:3b:72:1f:2d:3b:bf:75:47:91:88:6a:1c:ea:39: + dd:8b:25:31:55:0e:bc:52:6f:bf:0b:96:ef:e3:12: + 5c:da:63:22:54:e5:b3:95:8b:02:9e:57:3e:7b:4f: + a0:f5:6f:07:a8:5b:45:7c:cb:34:83:77:34:a5:b1: + ff:05:12:88:8f:cc:c4:05:5d:e9:e7:7d:2b:12:fa: + bb:4d:25:f4:f7:04:e7:95:06:95:ea:a9:c4:75:4e: + f7:03:67:2d:9c:9a:f4:01:f6:2a:8d:6c:6d:d0:59: + a9:ce:1f:12:b1:76:39:c8:07:d4:20:73:1e:f3:9c: + b9:67:83:3b:a8:7c:6e:fb:86:ea:3f:6a:8e:98:4c: + 39:a9:d1:4d:be:9f:0a:43:49:1b:fd:09:67:b6:62: + 71:fd:87:9a:63:25:00:aa:c7:a1:4d:23:12:e3:56: + 0f:6f + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + 50:F3:7D:4F:B2:8C:A5:09:FD:64:CB:C1:97:F1:F8:49:C8:6B:30:4D + X509v3 Authority Key Identifier: + keyid:79:06:CA:40:D3:9F:9A:54:AE:D3:33:4D:F2:38:3E:B6:0B:F3:3D:CF + DirName:/CN=SOCTOOLS-CA + serial:8A:74:93:26:80:5B:42:B7 + + X509v3 Extended Key Usage: + TLS Web Server Authentication, TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature, Key Encipherment + X509v3 Subject Alternative Name: + DNS:dsoclab-kibana, DNS:dsoclab.gn4-3-wp8-soc.sunet.se + Signature Algorithm: sha256WithRSAEncryption + ae:be:82:6f:6d:e6:c4:cb:c3:2a:d9:d6:ee:11:52:a6:de:89: + 9e:31:a3:e2:86:07:e9:d1:fe:95:c9:a2:38:90:df:05:ff:e5: + 99:27:e8:d8:55:00:8a:85:b3:15:a5:e5:5b:ce:4e:4f:01:3b: + 74:a4:b2:09:fc:6e:95:92:94:2f:76:0d:c7:97:1b:78:c1:08: + 1e:3a:0e:fa:a6:ab:db:1e:22:26:86:39:f4:bb:89:a1:a1:d1: + 55:f6:c3:ff:9b:a5:eb:1b:6a:84:8a:1d:3c:5f:7c:03:0d:08: + 42:6f:d7:14:86:61:38:66:65:f7:c2:86:68:db:81:e9:41:0f: + 82:cf:bb:be:fd:d7:94:48:cc:f8:cf:4a:40:ce:33:c4:75:51: + 00:7e:c7:93:f6:3b:92:c1:5e:8a:ce:5f:2c:c2:f4:fe:ec:77: + 9e:ea:30:d9:53:ee:f9:b9:fd:50:f5:6b:92:1c:57:d2:e0:f3: + 05:d8:79:a9:63:16:13:09:cf:5f:39:dc:ec:43:e4:65:45:43: + 65:e4:7c:39:a3:a2:81:47:ab:8f:57:a9:89:9d:56:4b:77:b1: + 04:c8:9c:54:d2:5c:28:f5:d3:66:ae:9a:9c:a5:91:c7:eb:20: + 69:fb:58:99:c7:5e:be:ec:4a:7a:62:09:fe:3b:30:f2:4a:d7: + 1d:f9:0b:c3 +-----BEGIN CERTIFICATE----- +MIIDljCCAn6gAwIBAgIQffwzRXVz6PFglKdOay8j8TANBgkqhkiG9w0BAQsFADAW +MRQwEgYDVQQDDAtTT0NUT09MUy1DQTAeFw0yMDEwMzAxMDQ3MjdaFw0yMzEwMTUx +MDQ3MjdaMBkxFzAVBgNVBAMMDmRzb2NsYWIta2liYW5hMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAzk/JD4RNTnvcEZDJSajzYESoJRtZg2QL0eC8WVAi +pfWIeshAZeQiPXfSj54wF4BeIIW8cGdhy9jin5p8e6boTnl7zYZuJlI3Rbart29A +j3pVi9GRzCFvVTdQO3IfLTu/dUeRiGoc6jndiyUxVQ68Um+/C5bv4xJc2mMiVOWz +lYsCnlc+e0+g9W8HqFtFfMs0g3c0pbH/BRKIj8zEBV3p530rEvq7TSX09wTnlQaV +6qnEdU73A2ctnJr0AfYqjWxt0Fmpzh8SsXY5yAfUIHMe85y5Z4M7qHxu+4bqP2qO +mEw5qdFNvp8KQ0kb/QlntmJx/YeaYyUAqsehTSMS41YPbwIDAQABo4HcMIHZMAkG +A1UdEwQCMAAwHQYDVR0OBBYEFFDzfU+yjKUJ/WTLwZfx+EnIazBNMEYGA1UdIwQ/ +MD2AFHkGykDTn5pUrtMzTfI4PrYL8z3PoRqkGDAWMRQwEgYDVQQDDAtTT0NUT09M +Uy1DQYIJAIp0kyaAW0K3MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAL +BgNVHQ8EBAMCBaAwOQYDVR0RBDIwMIIOZHNvY2xhYi1raWJhbmGCHmRzb2NsYWIu +Z240LTMtd3A4LXNvYy5zdW5ldC5zZTANBgkqhkiG9w0BAQsFAAOCAQEArr6Cb23m +xMvDKtnW7hFSpt6JnjGj4oYH6dH+lcmiOJDfBf/lmSfo2FUAioWzFaXlW85OTwE7 +dKSyCfxulZKUL3YNx5cbeMEIHjoO+qar2x4iJoY59LuJoaHRVfbD/5ul6xtqhIod +PF98Aw0IQm/XFIZhOGZl98KGaNuB6UEPgs+7vv3XlEjM+M9KQM4zxHVRAH7Hk/Y7 +ksFeis5fLML0/ux3nuow2VPu+bn9UPVrkhxX0uDzBdh5qWMWEwnPXznc7EPkZUVD +ZeR8OaOigUerj1epiZ1WS3exBMicVNJcKPXTZq6anKWRx+sgaftYmcdevuxKemIJ +/jsw8krXHfkLww== +-----END CERTIFICATE----- diff --git a/roles/ca/files/CA/issued/dsoclab-misp.crt b/roles/ca/files/CA/issued/dsoclab-misp.crt new file mode 100644 index 0000000..f830104 --- /dev/null +++ b/roles/ca/files/CA/issued/dsoclab-misp.crt @@ -0,0 +1,88 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 75:87:fc:e4:cf:3e:c6:81:17:19:90:76:b1:2c:d5:d2 + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=SOCTOOLS-CA + Validity + Not Before: Oct 30 10:47:28 2020 GMT + Not After : Oct 15 10:47:28 2023 GMT + Subject: CN=dsoclab-misp + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:cf:b1:1b:e7:a2:ae:70:81:71:a5:57:46:14:2e: + 47:64:89:4e:bd:7d:f0:82:2d:03:19:d6:87:44:b3: + 42:bf:72:78:03:cc:91:98:5b:36:42:14:55:e2:82: + 16:12:58:60:54:44:8f:15:f6:1b:1f:76:36:22:2e: + e8:ac:d3:3c:0a:df:46:c7:f1:04:bc:3a:bf:fe:4b: + 8f:2a:53:83:e3:50:82:06:09:fc:2a:fa:fe:94:a0: + 7b:7f:c2:3e:0b:3e:dc:72:b8:94:10:0a:0b:90:fd: + 45:76:29:85:52:bf:0f:20:43:78:fe:3b:d3:49:20: + 8f:9a:a5:0c:89:bb:0e:97:f2:67:b0:2d:f0:17:53: + 25:a6:9b:4b:64:0e:72:8a:bf:c9:e3:8e:41:bb:ed: + f3:33:6a:55:5f:8d:52:84:fa:a3:67:1a:7b:71:fb: + 90:f1:5f:61:df:44:ea:0b:77:88:f2:e5:c1:83:71: + 58:c7:58:8a:9b:39:45:59:4e:e0:db:16:b6:96:72: + 90:8c:ee:c2:13:75:ea:15:c6:6b:e2:dc:3a:de:c8: + 07:de:18:84:2d:96:b6:c4:4c:e1:4a:4d:13:6f:6c: + 9a:1d:e5:f9:6f:cc:7e:1b:4a:3a:75:1a:b9:37:b0: + 6d:a0:1b:69:35:f1:b6:e6:c2:a5:d3:56:d3:57:c7: + 0e:8b + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + 65:C5:56:88:65:AF:77:F1:53:B2:71:5E:16:10:D1:0B:30:FF:28:BE + X509v3 Authority Key Identifier: + keyid:79:06:CA:40:D3:9F:9A:54:AE:D3:33:4D:F2:38:3E:B6:0B:F3:3D:CF + DirName:/CN=SOCTOOLS-CA + serial:8A:74:93:26:80:5B:42:B7 + + X509v3 Extended Key Usage: + TLS Web Server Authentication, TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature, Key Encipherment + X509v3 Subject Alternative Name: + DNS:dsoclab-misp, DNS:dsoclab.gn4-3-wp8-soc.sunet.se + Signature Algorithm: sha256WithRSAEncryption + 5a:57:76:90:fd:a5:0d:ea:b0:22:c9:02:2e:18:91:81:04:d1: + f4:64:58:58:19:27:03:9b:5a:dc:de:6c:0e:fb:b7:76:eb:b1: + 97:36:e2:c7:76:ef:7d:d8:00:c3:20:c0:3d:a7:cf:61:f8:16: + 4c:96:4c:7c:c8:89:21:d6:d4:eb:3a:c1:3d:98:34:74:6e:39: + 81:20:6f:9b:4b:8d:b9:35:60:c5:76:19:30:30:06:0f:89:b1: + 1a:f6:c4:88:52:28:98:41:52:f1:9a:77:82:79:ae:c9:71:ba: + d9:e5:e9:b7:ba:08:32:59:eb:5e:7d:11:e0:a8:27:20:91:46: + 05:56:1e:e6:0b:4d:49:17:52:7f:4b:c4:a3:e0:cd:30:bd:4e: + 6a:70:2a:f5:77:4d:d1:d6:64:13:8d:4b:1a:d3:0b:0f:8a:49: + 1e:bf:b4:c0:4f:43:dc:92:e3:c0:f2:2f:4a:c8:30:45:fc:5a: + d2:de:92:b2:a1:48:b8:da:ff:f4:0b:04:5d:5d:a7:30:d8:4b: + ca:cf:0c:01:6a:50:45:5f:d4:a8:cf:dd:fa:f7:68:0c:4c:45: + 47:be:3a:c2:39:bb:04:ff:62:a0:bc:91:a0:f2:2b:67:09:89: + 5a:ff:e6:53:c1:89:18:12:a1:0f:5a:d7:e1:12:8b:88:88:89: + ca:b0:30:27 +-----BEGIN CERTIFICATE----- +MIIDkjCCAnqgAwIBAgIQdYf85M8+xoEXGZB2sSzV0jANBgkqhkiG9w0BAQsFADAW +MRQwEgYDVQQDDAtTT0NUT09MUy1DQTAeFw0yMDEwMzAxMDQ3MjhaFw0yMzEwMTUx +MDQ3MjhaMBcxFTATBgNVBAMMDGRzb2NsYWItbWlzcDCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBAM+xG+eirnCBcaVXRhQuR2SJTr198IItAxnWh0SzQr9y +eAPMkZhbNkIUVeKCFhJYYFREjxX2Gx92NiIu6KzTPArfRsfxBLw6v/5LjypTg+NQ +ggYJ/Cr6/pSge3/CPgs+3HK4lBAKC5D9RXYphVK/DyBDeP4700kgj5qlDIm7Dpfy +Z7At8BdTJaabS2QOcoq/yeOOQbvt8zNqVV+NUoT6o2cae3H7kPFfYd9E6gt3iPLl +wYNxWMdYips5RVlO4NsWtpZykIzuwhN16hXGa+LcOt7IB94YhC2WtsRM4UpNE29s +mh3l+W/MfhtKOnUauTewbaAbaTXxtubCpdNW01fHDosCAwEAAaOB2jCB1zAJBgNV +HRMEAjAAMB0GA1UdDgQWBBRlxVaIZa938VOycV4WENELMP8ovjBGBgNVHSMEPzA9 +gBR5BspA05+aVK7TM03yOD62C/M9z6EapBgwFjEUMBIGA1UEAwwLU09DVE9PTFMt +Q0GCCQCKdJMmgFtCtzAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwCwYD +VR0PBAQDAgWgMDcGA1UdEQQwMC6CDGRzb2NsYWItbWlzcIIeZHNvY2xhYi5nbjQt +My13cDgtc29jLnN1bmV0LnNlMA0GCSqGSIb3DQEBCwUAA4IBAQBaV3aQ/aUN6rAi +yQIuGJGBBNH0ZFhYGScDm1rc3mwO+7d267GXNuLHdu992ADDIMA9p89h+BZMlkx8 +yIkh1tTrOsE9mDR0bjmBIG+bS425NWDFdhkwMAYPibEa9sSIUiiYQVLxmneCea7J +cbrZ5em3uggyWetefRHgqCcgkUYFVh7mC01JF1J/S8Sj4M0wvU5qcCr1d03R1mQT +jUsa0wsPikkev7TAT0PckuPA8i9KyDBF/FrS3pKyoUi42v/0CwRdXacw2EvKzwwB +alBFX9Soz93692gMTEVHvjrCObsE/2KgvJGg8itnCYla/+ZTwYkYEqEPWtfhEouI +iInKsDAn +-----END CERTIFICATE----- diff --git a/roles/ca/files/CA/issued/dsoclab-nifi-1.crt b/roles/ca/files/CA/issued/dsoclab-nifi-1.crt new file mode 100644 index 0000000..ad6921c --- /dev/null +++ b/roles/ca/files/CA/issued/dsoclab-nifi-1.crt @@ -0,0 +1,88 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 01:ec:4d:ad:3e:5e:47:cf:4e:4b:98:49:59:32:b3:37 + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=SOCTOOLS-CA + Validity + Not Before: Oct 30 10:47:25 2020 GMT + Not After : Oct 15 10:47:25 2023 GMT + Subject: CN=dsoclab-nifi-1 + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:c3:af:ef:b7:a1:95:47:5f:55:ea:7e:e8:d6:fd: + d5:e3:19:68:2e:72:1f:90:62:a8:79:76:d8:d2:f6: + 51:df:71:80:37:5a:ec:7d:fb:6d:78:6e:37:fe:e5: + 1b:c8:d5:73:e4:c9:a5:cb:e8:4a:48:26:c6:e0:a6: + 5e:14:2c:90:b1:81:b2:69:31:e2:44:85:97:f5:60: + 12:88:06:9d:8d:cf:4a:a2:77:b3:d9:ff:f3:41:40: + 4c:21:e1:73:8d:98:82:2f:37:27:0c:24:d8:67:bd: + c7:05:50:40:c5:a9:d0:e4:3f:bb:0c:72:29:7c:be: + 06:01:96:03:b8:a0:42:c4:6f:6f:da:aa:17:34:5f: + 5e:f3:73:0e:77:b5:7a:9a:59:e3:3c:d1:39:50:17: + 2f:53:18:05:82:34:29:1b:19:56:2e:c2:db:24:79: + 51:0f:a8:d9:66:3c:72:1e:a0:f7:03:d6:e9:e5:c6: + b9:be:94:e4:84:bd:cd:93:26:eb:3b:17:bb:cd:e5: + 58:25:f2:28:35:a4:b1:70:df:32:54:85:f6:3c:20: + 9f:88:8b:5d:83:a2:c4:1e:31:d9:a1:76:1d:2e:3c: + f8:78:64:a4:dd:3a:b2:56:65:bf:a8:2a:a8:ed:62: + c9:62:2c:72:bd:9d:7e:6b:1f:80:ea:bc:33:60:47: + d3:0f + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + 87:9A:8D:12:3A:69:8D:89:98:F6:95:D0:F2:ED:C3:DC:ED:A0:22:12 + X509v3 Authority Key Identifier: + keyid:79:06:CA:40:D3:9F:9A:54:AE:D3:33:4D:F2:38:3E:B6:0B:F3:3D:CF + DirName:/CN=SOCTOOLS-CA + serial:8A:74:93:26:80:5B:42:B7 + + X509v3 Extended Key Usage: + TLS Web Server Authentication, TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature, Key Encipherment + X509v3 Subject Alternative Name: + DNS:dsoclab-nifi-1, DNS:dsoclab.gn4-3-wp8-soc.sunet.se + Signature Algorithm: sha256WithRSAEncryption + 8d:23:38:a7:aa:d0:58:03:f2:98:19:da:62:c6:55:cb:d5:c5: + 05:dd:55:c5:f9:41:46:ec:75:06:be:0a:0b:7b:0f:ac:10:dd: + 86:bf:4f:6e:05:c1:7b:c1:1d:1c:ce:c7:f0:a9:0c:6e:79:fe: + c2:49:18:d5:5d:4a:ae:c8:d8:ab:ec:45:95:94:c1:8b:30:da: + 52:1a:42:3c:41:77:65:9e:8a:63:f5:52:c2:71:b7:e2:56:43: + bd:89:3a:fa:14:bd:d7:7a:b2:60:43:82:c0:df:4a:e0:a7:02: + fd:d7:f6:56:9a:0f:ad:f4:ee:00:06:fb:75:b9:96:63:c8:b3: + 75:1f:c6:9d:3b:9d:1a:29:cd:09:f0:80:31:5c:4e:97:62:91: + 73:84:aa:11:cc:4b:00:15:a1:92:62:2a:6b:d4:d6:4c:ed:a5: + 89:fe:12:c9:d1:0b:48:b8:97:26:e4:5b:ab:da:fe:2d:54:ca: + 55:23:8b:22:7f:a1:12:4a:21:3e:9e:bb:48:d6:82:b6:a2:cc: + 83:15:5d:5f:c7:52:a1:01:01:70:60:3f:64:b4:1d:85:4f:56: + b7:67:77:b8:ea:59:7a:85:ce:e3:4a:e1:d6:2f:e0:b2:60:44: + 3a:08:3a:b5:0e:fc:88:ad:e5:a1:f1:a8:79:37:c4:52:02:f0: + 5b:05:94:0e +-----BEGIN CERTIFICATE----- +MIIDljCCAn6gAwIBAgIQAexNrT5eR89OS5hJWTKzNzANBgkqhkiG9w0BAQsFADAW +MRQwEgYDVQQDDAtTT0NUT09MUy1DQTAeFw0yMDEwMzAxMDQ3MjVaFw0yMzEwMTUx +MDQ3MjVaMBkxFzAVBgNVBAMMDmRzb2NsYWItbmlmaS0xMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAw6/vt6GVR19V6n7o1v3V4xloLnIfkGKoeXbY0vZR +33GAN1rsfftteG43/uUbyNVz5Mmly+hKSCbG4KZeFCyQsYGyaTHiRIWX9WASiAad +jc9Konez2f/zQUBMIeFzjZiCLzcnDCTYZ73HBVBAxanQ5D+7DHIpfL4GAZYDuKBC +xG9v2qoXNF9e83MOd7V6mlnjPNE5UBcvUxgFgjQpGxlWLsLbJHlRD6jZZjxyHqD3 +A9bp5ca5vpTkhL3NkybrOxe7zeVYJfIoNaSxcN8yVIX2PCCfiItdg6LEHjHZoXYd +Ljz4eGSk3TqyVmW/qCqo7WLJYixyvZ1+ax+A6rwzYEfTDwIDAQABo4HcMIHZMAkG +A1UdEwQCMAAwHQYDVR0OBBYEFIeajRI6aY2JmPaV0PLtw9ztoCISMEYGA1UdIwQ/ +MD2AFHkGykDTn5pUrtMzTfI4PrYL8z3PoRqkGDAWMRQwEgYDVQQDDAtTT0NUT09M +Uy1DQYIJAIp0kyaAW0K3MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAL +BgNVHQ8EBAMCBaAwOQYDVR0RBDIwMIIOZHNvY2xhYi1uaWZpLTGCHmRzb2NsYWIu +Z240LTMtd3A4LXNvYy5zdW5ldC5zZTANBgkqhkiG9w0BAQsFAAOCAQEAjSM4p6rQ +WAPymBnaYsZVy9XFBd1VxflBRux1Br4KC3sPrBDdhr9PbgXBe8EdHM7H8KkMbnn+ +wkkY1V1KrsjYq+xFlZTBizDaUhpCPEF3ZZ6KY/VSwnG34lZDvYk6+hS913qyYEOC +wN9K4KcC/df2VpoPrfTuAAb7dbmWY8izdR/GnTudGinNCfCAMVxOl2KRc4SqEcxL +ABWhkmIqa9TWTO2lif4SydELSLiXJuRbq9r+LVTKVSOLIn+hEkohPp67SNaCtqLM +gxVdX8dSoQEBcGA/ZLQdhU9Wt2d3uOpZeoXO40rh1i/gsmBEOgg6tQ78iK3lofGo +eTfEUgLwWwWUDg== +-----END CERTIFICATE----- diff --git a/roles/ca/files/CA/issued/dsoclab-nifi-2.crt b/roles/ca/files/CA/issued/dsoclab-nifi-2.crt new file mode 100644 index 0000000..56a67ac --- /dev/null +++ b/roles/ca/files/CA/issued/dsoclab-nifi-2.crt @@ -0,0 +1,88 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 8b:69:05:5f:85:86:ce:dd:21:66:0b:24:93:41:26:60 + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=SOCTOOLS-CA + Validity + Not Before: Oct 30 10:47:25 2020 GMT + Not After : Oct 15 10:47:25 2023 GMT + Subject: CN=dsoclab-nifi-2 + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:ac:b7:4b:e2:d5:87:7f:8e:15:9b:cf:c0:17:eb: + db:8c:e3:1b:83:c0:69:b9:06:91:a0:9b:c6:35:dc: + 2f:e8:8c:72:28:50:02:82:c5:b1:eb:da:d9:e3:9d: + 95:d2:d9:dd:e1:08:35:6d:83:73:95:98:ba:19:fd: + 3e:04:67:9a:09:37:45:79:d3:1d:0b:ec:0a:43:cb: + b8:24:cc:68:5c:ce:2e:ae:db:48:d8:6e:5a:f3:31: + be:87:28:86:76:8e:8f:8d:68:95:1f:72:6c:65:4a: + fc:9e:b8:7d:e2:83:e2:3d:b0:30:5d:c1:73:06:ae: + 9b:f7:9a:54:b8:02:6b:82:90:11:08:3f:d6:5f:59: + 5c:df:aa:25:59:c0:67:7a:fc:e1:f0:c9:4a:8b:e0: + 31:b6:53:13:c2:bf:8c:4f:3a:e6:ed:11:30:a6:41: + 26:ad:56:8f:03:0b:ad:87:6c:b2:73:c4:2e:41:3e: + 99:1a:b6:29:6d:e0:dc:af:8f:45:6e:d5:69:17:0d: + f1:58:a6:7e:8c:80:32:72:24:21:d2:e9:b4:44:23: + f6:10:8f:9f:64:7f:ef:e6:ab:f1:43:94:d0:8a:97: + 0e:e4:91:bd:86:b9:1f:42:f4:96:39:85:05:26:ed: + 90:01:91:11:a3:1f:04:5b:46:ff:1b:a9:74:77:db: + 18:03 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + 1F:5E:EF:0E:58:69:FD:21:93:48:19:98:81:48:13:2E:FC:31:61:0C + X509v3 Authority Key Identifier: + keyid:79:06:CA:40:D3:9F:9A:54:AE:D3:33:4D:F2:38:3E:B6:0B:F3:3D:CF + DirName:/CN=SOCTOOLS-CA + serial:8A:74:93:26:80:5B:42:B7 + + X509v3 Extended Key Usage: + TLS Web Server Authentication, TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature, Key Encipherment + X509v3 Subject Alternative Name: + DNS:dsoclab-nifi-2, DNS:dsoclab.gn4-3-wp8-soc.sunet.se + Signature Algorithm: sha256WithRSAEncryption + 21:2d:9b:f7:0c:74:cd:d4:30:b1:42:5b:32:98:d8:ef:9f:a9: + 9b:1b:f0:54:67:c3:20:5b:f1:87:4d:ff:e4:a5:db:af:eb:34: + 8a:b3:fa:d6:14:4a:3c:31:11:8f:09:b0:af:25:39:5a:5e:89: + 32:cf:c7:48:68:f3:14:72:a0:35:15:ec:76:c7:bb:a7:5b:0c: + d5:7e:5b:8c:d8:40:a2:5e:fa:f8:f2:cf:dd:56:65:7e:94:ef: + b4:99:25:ba:9f:78:94:7d:54:0c:83:b9:cf:b8:b4:9d:78:6d: + 62:e3:6c:98:1f:40:b9:35:3c:51:b5:9f:82:7b:1e:77:db:25: + f2:71:df:3d:e9:56:93:86:fe:61:48:4f:db:76:5b:5f:b1:96: + f9:46:72:5e:01:80:87:b5:be:b4:00:3b:37:7f:5e:44:d4:7e: + c5:87:ed:40:6b:9e:f4:ca:1b:b0:4b:84:97:1f:07:0f:7c:8b: + d2:7b:b1:3d:a7:f8:ae:39:07:34:50:41:70:1f:07:ba:a6:a2: + 0d:ca:e5:7b:d4:77:2c:95:4d:16:0c:34:e0:a5:59:7f:43:c7: + a0:dd:a0:f0:ed:75:5a:0f:61:76:52:34:ef:7c:a7:21:e4:de: + 3a:24:cd:39:b6:77:3a:c8:f3:1f:09:2b:80:9a:f0:5d:7f:5e: + 73:9d:73:eb +-----BEGIN CERTIFICATE----- +MIIDlzCCAn+gAwIBAgIRAItpBV+Fhs7dIWYLJJNBJmAwDQYJKoZIhvcNAQELBQAw +FjEUMBIGA1UEAwwLU09DVE9PTFMtQ0EwHhcNMjAxMDMwMTA0NzI1WhcNMjMxMDE1 +MTA0NzI1WjAZMRcwFQYDVQQDDA5kc29jbGFiLW5pZmktMjCCASIwDQYJKoZIhvcN +AQEBBQADggEPADCCAQoCggEBAKy3S+LVh3+OFZvPwBfr24zjG4PAabkGkaCbxjXc +L+iMcihQAoLFseva2eOdldLZ3eEINW2Dc5WYuhn9PgRnmgk3RXnTHQvsCkPLuCTM +aFzOLq7bSNhuWvMxvocohnaOj41olR9ybGVK/J64feKD4j2wMF3Bcwaum/eaVLgC +a4KQEQg/1l9ZXN+qJVnAZ3r84fDJSovgMbZTE8K/jE865u0RMKZBJq1WjwMLrYds +snPELkE+mRq2KW3g3K+PRW7VaRcN8VimfoyAMnIkIdLptEQj9hCPn2R/7+ar8UOU +0IqXDuSRvYa5H0L0ljmFBSbtkAGREaMfBFtG/xupdHfbGAMCAwEAAaOB3DCB2TAJ +BgNVHRMEAjAAMB0GA1UdDgQWBBQfXu8OWGn9IZNIGZiBSBMu/DFhDDBGBgNVHSME +PzA9gBR5BspA05+aVK7TM03yOD62C/M9z6EapBgwFjEUMBIGA1UEAwwLU09DVE9P +TFMtQ0GCCQCKdJMmgFtCtzAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw +CwYDVR0PBAQDAgWgMDkGA1UdEQQyMDCCDmRzb2NsYWItbmlmaS0ygh5kc29jbGFi +LmduNC0zLXdwOC1zb2Muc3VuZXQuc2UwDQYJKoZIhvcNAQELBQADggEBACEtm/cM +dM3UMLFCWzKY2O+fqZsb8FRnwyBb8YdN/+Sl26/rNIqz+tYUSjwxEY8JsK8lOVpe +iTLPx0ho8xRyoDUV7HbHu6dbDNV+W4zYQKJe+vjyz91WZX6U77SZJbqfeJR9VAyD +uc+4tJ14bWLjbJgfQLk1PFG1n4J7HnfbJfJx3z3pVpOG/mFIT9t2W1+xlvlGcl4B +gIe1vrQAOzd/XkTUfsWH7UBrnvTKG7BLhJcfBw98i9J7sT2n+K45BzRQQXAfB7qm +og3K5XvUdyyVTRYMNOClWX9Dx6DdoPDtdVoPYXZSNO98pyHk3jokzTm2dzrI8x8J +K4Ca8F1/XnOdc+s= +-----END CERTIFICATE----- diff --git a/roles/ca/files/CA/issued/dsoclab-nifi-3.crt b/roles/ca/files/CA/issued/dsoclab-nifi-3.crt new file mode 100644 index 0000000..796e826 --- /dev/null +++ b/roles/ca/files/CA/issued/dsoclab-nifi-3.crt @@ -0,0 +1,88 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 59:69:91:8f:10:ef:8d:2b:ae:46:b2:6d:6d:62:9d:8e + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=SOCTOOLS-CA + Validity + Not Before: Oct 30 10:47:26 2020 GMT + Not After : Oct 15 10:47:26 2023 GMT + Subject: CN=dsoclab-nifi-3 + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:a7:48:a0:d3:ab:1e:8c:49:60:8b:b8:bd:9a:aa: + 5c:09:62:01:79:89:c9:e5:5f:30:64:38:ca:f1:95: + 2d:48:20:81:ef:60:aa:6f:d1:ef:b4:ac:89:8e:e9: + f5:16:7d:64:07:b0:3b:75:c3:e1:e1:15:71:64:60: + 8f:15:8e:16:8b:de:b8:97:79:a7:83:19:77:5b:aa: + 36:82:37:b9:51:a7:95:b5:1f:ac:9d:81:c6:ec:fb: + 14:3a:84:77:1e:9c:dd:3c:06:30:a1:5e:d0:8f:b0: + c9:5a:13:ad:0e:56:57:bc:1d:3f:be:d7:4c:4b:37: + a2:88:72:4d:1a:62:88:08:a0:57:bb:20:ce:7e:af: + b7:72:f2:ee:86:1a:b1:28:3b:41:f4:d3:ea:14:74: + 90:e1:33:41:1a:92:e2:2e:ec:d3:20:60:60:61:d6: + fc:0e:3f:57:43:88:5f:10:29:20:51:40:46:ed:5d: + 9f:d1:5a:e7:4b:52:f4:d4:23:60:4a:22:a7:92:6c: + d4:cb:20:01:a6:b9:53:71:7a:71:02:e1:05:72:41: + a5:42:9f:41:47:2c:30:7e:0c:b1:73:cc:f7:63:60: + 27:3f:3d:36:93:14:aa:7e:12:ed:1b:f1:cb:4d:e8: + 7c:32:20:50:f5:2d:7d:06:0a:93:cf:7a:85:2b:0b: + a6:b1 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + C9:B8:02:23:C4:2E:F5:FE:C9:34:45:77:33:0D:89:CE:D9:A3:30:2A + X509v3 Authority Key Identifier: + keyid:79:06:CA:40:D3:9F:9A:54:AE:D3:33:4D:F2:38:3E:B6:0B:F3:3D:CF + DirName:/CN=SOCTOOLS-CA + serial:8A:74:93:26:80:5B:42:B7 + + X509v3 Extended Key Usage: + TLS Web Server Authentication, TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature, Key Encipherment + X509v3 Subject Alternative Name: + DNS:dsoclab-nifi-3, DNS:dsoclab.gn4-3-wp8-soc.sunet.se + Signature Algorithm: sha256WithRSAEncryption + 32:20:b3:1c:e1:c9:a4:19:75:14:32:1b:cd:c2:83:59:49:07: + e3:b8:62:73:ec:4e:69:cb:9b:49:0d:f5:d0:ea:8b:b6:de:3e: + 76:03:c4:e8:68:0f:01:96:aa:40:b2:1e:99:06:d2:75:f5:31: + ec:b7:93:e6:1b:b0:ab:7e:1b:1d:65:46:6d:9f:ac:97:ed:55: + 53:ca:53:00:5a:ca:c5:83:48:c3:2a:51:db:e7:e7:e1:40:4a: + bf:b2:9d:d4:71:d4:54:84:2b:4b:d4:a2:22:73:95:e1:62:51: + ce:e3:e2:f6:24:dd:40:08:07:01:6f:ee:27:3e:fc:17:1d:1f: + 30:da:7f:37:78:7e:b8:af:d8:2c:d9:48:84:92:be:4e:8e:a7: + b8:e6:9f:d4:91:5d:44:c9:8b:82:9f:13:eb:d5:2c:00:fa:ef: + d6:49:ff:92:0d:83:22:57:45:4a:ac:b6:5e:a2:c6:c1:73:ff: + f5:dd:a7:d8:79:9a:a7:96:33:b4:51:17:7f:80:6e:3b:52:a8: + 61:53:ae:08:1f:02:5a:0c:5b:37:3c:3a:36:ee:74:e2:9e:df: + df:01:b5:f6:d0:b8:fa:58:79:53:fd:70:9e:54:c3:6c:68:a7: + 3f:b0:e4:20:a6:a8:2f:87:5a:8a:08:01:41:de:35:ed:5e:85: + ae:dd:e0:3e +-----BEGIN CERTIFICATE----- +MIIDljCCAn6gAwIBAgIQWWmRjxDvjSuuRrJtbWKdjjANBgkqhkiG9w0BAQsFADAW +MRQwEgYDVQQDDAtTT0NUT09MUy1DQTAeFw0yMDEwMzAxMDQ3MjZaFw0yMzEwMTUx +MDQ3MjZaMBkxFzAVBgNVBAMMDmRzb2NsYWItbmlmaS0zMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAp0ig06sejElgi7i9mqpcCWIBeYnJ5V8wZDjK8ZUt +SCCB72Cqb9HvtKyJjun1Fn1kB7A7dcPh4RVxZGCPFY4Wi964l3mngxl3W6o2gje5 +UaeVtR+snYHG7PsUOoR3HpzdPAYwoV7Qj7DJWhOtDlZXvB0/vtdMSzeiiHJNGmKI +CKBXuyDOfq+3cvLuhhqxKDtB9NPqFHSQ4TNBGpLiLuzTIGBgYdb8Dj9XQ4hfECkg +UUBG7V2f0VrnS1L01CNgSiKnkmzUyyABprlTcXpxAuEFckGlQp9BRywwfgyxc8z3 +Y2AnPz02kxSqfhLtG/HLTeh8MiBQ9S19BgqTz3qFKwumsQIDAQABo4HcMIHZMAkG +A1UdEwQCMAAwHQYDVR0OBBYEFMm4AiPELvX+yTRFdzMNic7ZozAqMEYGA1UdIwQ/ +MD2AFHkGykDTn5pUrtMzTfI4PrYL8z3PoRqkGDAWMRQwEgYDVQQDDAtTT0NUT09M +Uy1DQYIJAIp0kyaAW0K3MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAL +BgNVHQ8EBAMCBaAwOQYDVR0RBDIwMIIOZHNvY2xhYi1uaWZpLTOCHmRzb2NsYWIu +Z240LTMtd3A4LXNvYy5zdW5ldC5zZTANBgkqhkiG9w0BAQsFAAOCAQEAMiCzHOHJ +pBl1FDIbzcKDWUkH47hic+xOacubSQ310OqLtt4+dgPE6GgPAZaqQLIemQbSdfUx +7LeT5huwq34bHWVGbZ+sl+1VU8pTAFrKxYNIwypR2+fn4UBKv7Kd1HHUVIQrS9Si +InOV4WJRzuPi9iTdQAgHAW/uJz78Fx0fMNp/N3h+uK/YLNlIhJK+To6nuOaf1JFd +RMmLgp8T69UsAPrv1kn/kg2DIldFSqy2XqLGwXP/9d2n2Hmap5YztFEXf4BuO1Ko +YVOuCB8CWgxbNzw6Nu504p7f3wG19tC4+lh5U/1wnlTDbGinP7DkIKaoL4daiggB +Qd417V6Frt3gPg== +-----END CERTIFICATE----- diff --git a/roles/ca/files/CA/issued/dsoclab-odfe-1.crt b/roles/ca/files/CA/issued/dsoclab-odfe-1.crt new file mode 100644 index 0000000..71baad0 --- /dev/null +++ b/roles/ca/files/CA/issued/dsoclab-odfe-1.crt @@ -0,0 +1,88 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 97:d2:d0:cf:23:00:c0:a9:66:d1:03:ca:89:a9:92:12 + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=SOCTOOLS-CA + Validity + Not Before: Oct 30 10:47:26 2020 GMT + Not After : Oct 15 10:47:26 2023 GMT + Subject: CN=dsoclab-odfe-1 + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:e5:46:f6:71:ce:a2:3f:61:5e:9b:f3:c6:61:88: + 87:99:0a:ac:b8:e8:9d:3c:5f:8c:60:2b:41:5b:36: + fb:39:0a:6f:a1:16:02:31:ac:0d:bd:0e:ff:95:59: + d8:f1:21:6b:bd:96:d6:7b:79:01:d1:65:1c:ca:09: + 22:50:30:01:ea:ed:b4:29:bf:b4:70:25:db:b3:1d: + e9:73:ed:63:93:02:4c:90:22:04:6d:31:74:31:ae: + 85:3c:12:8d:b3:f6:92:2f:de:75:75:8f:ca:a5:f2: + a2:12:94:fb:e8:73:30:37:f1:7c:b5:4e:59:ab:71: + 73:26:80:9a:46:8d:49:94:b0:09:e5:27:10:34:9d: + c0:53:3b:fa:77:2e:06:c0:73:8e:0f:9a:1e:8c:27: + 32:0c:eb:f2:d2:0c:a7:52:48:c6:ee:12:21:15:e3: + 45:30:89:81:63:7f:bf:0a:5b:d1:05:c8:1c:fc:5f: + bb:b8:82:2a:92:3b:3a:ae:19:9d:e9:a7:62:7c:0a: + f2:c2:2a:e6:a8:d4:9b:0a:a8:a2:5a:ec:e5:a3:1a: + 73:e0:83:3d:d2:e8:74:a9:0b:b0:e4:b0:fd:fe:ad: + 1e:57:e8:0d:20:7c:aa:1f:31:69:b5:0d:8c:3f:1c: + 8d:dc:d3:71:5b:f1:04:6a:ae:b9:2d:a8:be:28:11: + f5:4b + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + DB:92:49:8B:D9:27:41:85:16:AE:C9:CA:F6:8D:11:53:8B:EE:B0:5E + X509v3 Authority Key Identifier: + keyid:79:06:CA:40:D3:9F:9A:54:AE:D3:33:4D:F2:38:3E:B6:0B:F3:3D:CF + DirName:/CN=SOCTOOLS-CA + serial:8A:74:93:26:80:5B:42:B7 + + X509v3 Extended Key Usage: + TLS Web Server Authentication, TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature, Key Encipherment + X509v3 Subject Alternative Name: + DNS:dsoclab-odfe-1, DNS:dsoclab.gn4-3-wp8-soc.sunet.se + Signature Algorithm: sha256WithRSAEncryption + 0f:83:fb:ba:2a:0d:aa:14:3f:3f:0b:00:be:f9:37:f4:7f:29: + 1e:21:4e:18:07:e0:ae:e1:84:f7:cf:a1:21:a5:36:ba:77:6c: + 0c:00:11:d5:7d:d8:31:b3:f5:cc:fd:6b:27:8f:99:5f:99:4c: + 57:88:d0:1a:e7:66:6b:8a:fd:d1:01:e3:88:37:91:8c:7b:e9: + e2:22:dd:80:62:64:9e:22:e7:25:b5:b9:89:45:e4:24:f5:19: + c0:5d:10:50:57:80:66:23:0c:b1:8e:bd:b3:f1:fa:95:7e:6f: + 04:d1:da:c2:e8:a1:b2:55:55:66:3a:bc:5b:71:50:8c:a8:56: + 86:f4:a9:9c:c7:4b:d6:91:73:8e:a9:93:ef:e0:85:5e:5c:53: + ae:b3:a7:a4:31:80:f3:b3:e4:03:ad:da:96:f0:14:7b:25:e4: + ff:68:9b:8f:28:cd:fc:94:05:5f:38:80:84:d6:f5:d4:b7:bd: + 43:79:bd:fb:f2:ce:30:73:01:e8:ee:ad:45:4a:ea:88:3f:d1: + a2:ef:22:f5:49:cc:d4:27:22:3c:bc:1f:50:81:58:5a:65:9d: + d6:14:3b:3f:b2:8f:90:35:2b:e7:1a:9b:58:db:96:06:9b:cf: + 44:0b:f5:9f:aa:57:28:3c:ab:70:fa:bc:93:90:d9:94:d7:fe: + 6f:fe:39:2a +-----BEGIN CERTIFICATE----- +MIIDlzCCAn+gAwIBAgIRAJfS0M8jAMCpZtEDyompkhIwDQYJKoZIhvcNAQELBQAw +FjEUMBIGA1UEAwwLU09DVE9PTFMtQ0EwHhcNMjAxMDMwMTA0NzI2WhcNMjMxMDE1 +MTA0NzI2WjAZMRcwFQYDVQQDDA5kc29jbGFiLW9kZmUtMTCCASIwDQYJKoZIhvcN +AQEBBQADggEPADCCAQoCggEBAOVG9nHOoj9hXpvzxmGIh5kKrLjonTxfjGArQVs2 ++zkKb6EWAjGsDb0O/5VZ2PEha72W1nt5AdFlHMoJIlAwAerttCm/tHAl27Md6XPt +Y5MCTJAiBG0xdDGuhTwSjbP2ki/edXWPyqXyohKU++hzMDfxfLVOWatxcyaAmkaN +SZSwCeUnEDSdwFM7+ncuBsBzjg+aHownMgzr8tIMp1JIxu4SIRXjRTCJgWN/vwpb +0QXIHPxfu7iCKpI7Oq4ZnemnYnwK8sIq5qjUmwqoolrs5aMac+CDPdLodKkLsOSw +/f6tHlfoDSB8qh8xabUNjD8cjdzTcVvxBGquuS2ovigR9UsCAwEAAaOB3DCB2TAJ +BgNVHRMEAjAAMB0GA1UdDgQWBBTbkkmL2SdBhRauycr2jRFTi+6wXjBGBgNVHSME +PzA9gBR5BspA05+aVK7TM03yOD62C/M9z6EapBgwFjEUMBIGA1UEAwwLU09DVE9P +TFMtQ0GCCQCKdJMmgFtCtzAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw +CwYDVR0PBAQDAgWgMDkGA1UdEQQyMDCCDmRzb2NsYWItb2RmZS0xgh5kc29jbGFi +LmduNC0zLXdwOC1zb2Muc3VuZXQuc2UwDQYJKoZIhvcNAQELBQADggEBAA+D+7oq +DaoUPz8LAL75N/R/KR4hThgH4K7hhPfPoSGlNrp3bAwAEdV92DGz9cz9ayePmV+Z +TFeI0BrnZmuK/dEB44g3kYx76eIi3YBiZJ4i5yW1uYlF5CT1GcBdEFBXgGYjDLGO +vbPx+pV+bwTR2sLoobJVVWY6vFtxUIyoVob0qZzHS9aRc46pk+/ghV5cU66zp6Qx +gPOz5AOt2pbwFHsl5P9om48ozfyUBV84gITW9dS3vUN5vfvyzjBzAejurUVK6og/ +0aLvIvVJzNQnIjy8H1CBWFplndYUOz+yj5A1K+cam1jblgabz0QL9Z+qVyg8q3D6 +vJOQ2ZTX/m/+OSo= +-----END CERTIFICATE----- diff --git a/roles/ca/files/CA/issued/dsoclab-odfe-2.crt b/roles/ca/files/CA/issued/dsoclab-odfe-2.crt new file mode 100644 index 0000000..a648174 --- /dev/null +++ b/roles/ca/files/CA/issued/dsoclab-odfe-2.crt @@ -0,0 +1,88 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 56:0a:99:c5:a0:3f:c4:b9:fc:92:fd:c6:2f:41:9b:b9 + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=SOCTOOLS-CA + Validity + Not Before: Oct 30 10:47:27 2020 GMT + Not After : Oct 15 10:47:27 2023 GMT + Subject: CN=dsoclab-odfe-2 + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:c7:a5:e1:3f:e0:a3:22:69:f1:b4:15:5e:b9:3c: + db:d7:44:bb:d9:c7:69:94:5b:c1:7d:a3:34:4d:3e: + 88:0a:e2:8f:2e:d3:98:94:ae:b4:1f:49:a3:fd:4b: + 27:16:70:ab:03:ab:cd:4c:02:2a:7b:ed:3a:ff:49: + 49:2e:3b:88:f6:59:85:26:de:37:b4:47:9e:1c:be: + a3:38:8e:b0:22:6b:ca:c5:12:e5:be:40:9c:57:7a: + 4d:02:0c:db:13:c5:9d:d2:85:df:99:57:32:90:37: + 54:08:16:46:01:54:da:0c:77:31:63:39:46:27:88: + 3f:f4:ad:4e:e6:fd:0a:3e:9d:98:9a:53:98:90:be: + 9b:ee:e3:b2:91:c7:7f:3f:a1:b9:62:f8:7a:1e:cc: + b4:23:ed:82:a0:5c:ad:86:7b:50:53:c9:ec:57:04: + 44:1c:12:f6:33:3f:68:42:f8:b7:2f:25:91:1c:aa: + b0:df:17:6b:ed:6d:cc:6d:a7:d6:b7:07:6b:61:a5: + 16:51:9f:02:07:ad:b2:42:42:ca:0b:b1:2e:c1:6e: + 94:2d:3e:5e:88:48:8f:b6:8b:15:b0:48:8e:35:58: + ea:b5:90:9c:fb:5a:fa:f5:c7:27:b7:11:30:7a:cb: + 36:7c:4f:ea:52:00:47:40:e9:f0:ca:67:63:32:e0: + 33:73 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + E6:41:BE:4B:A2:E1:07:EF:2A:FD:16:A7:B6:68:3D:0F:81:F5:15:80 + X509v3 Authority Key Identifier: + keyid:79:06:CA:40:D3:9F:9A:54:AE:D3:33:4D:F2:38:3E:B6:0B:F3:3D:CF + DirName:/CN=SOCTOOLS-CA + serial:8A:74:93:26:80:5B:42:B7 + + X509v3 Extended Key Usage: + TLS Web Server Authentication, TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature, Key Encipherment + X509v3 Subject Alternative Name: + DNS:dsoclab-odfe-2, DNS:dsoclab.gn4-3-wp8-soc.sunet.se + Signature Algorithm: sha256WithRSAEncryption + 84:64:d0:92:f6:96:07:be:f1:52:f6:49:15:cd:d0:99:ea:ca: + 7f:06:a8:d2:68:e3:8e:c3:a3:a9:2d:f2:b7:4a:74:75:9f:02: + b4:6f:77:14:ec:89:f9:a3:b5:35:c8:f2:ad:50:df:24:05:d3: + 0a:a8:49:be:19:de:fc:84:a4:61:af:ff:c0:2c:f7:8b:11:87: + 34:10:e3:dc:9b:d2:b8:66:0a:f7:3f:05:11:37:41:09:9f:3d: + f3:a1:97:b7:62:64:db:5a:46:d9:5a:7a:c8:f7:79:e4:f8:61: + 2e:5c:e8:82:8d:fc:0e:8d:a4:4f:fd:33:f1:76:0e:8d:21:f4: + 00:5a:e1:a6:96:21:e0:bb:e4:e6:35:8e:b6:61:49:8a:f2:c1: + 25:96:cf:c0:f6:e0:0a:0b:75:b5:d5:6c:be:ad:0c:a8:4b:33: + 44:72:cc:ef:5f:db:09:e7:b9:6e:60:80:7d:02:e9:ab:06:81: + 24:d3:9d:c3:de:f9:a1:f1:f7:77:ee:6d:49:ab:13:72:c6:62: + 39:b2:80:32:07:20:51:a3:3e:1a:cf:b9:3a:bc:e3:a1:58:33: + 22:6f:68:a9:e9:33:0b:8d:24:72:ea:e3:75:68:a3:69:11:a8: + 2d:86:ed:f2:00:74:d6:d4:ab:fc:30:3f:68:6b:b6:d3:61:30: + 51:84:09:da +-----BEGIN CERTIFICATE----- +MIIDljCCAn6gAwIBAgIQVgqZxaA/xLn8kv3GL0GbuTANBgkqhkiG9w0BAQsFADAW +MRQwEgYDVQQDDAtTT0NUT09MUy1DQTAeFw0yMDEwMzAxMDQ3MjdaFw0yMzEwMTUx +MDQ3MjdaMBkxFzAVBgNVBAMMDmRzb2NsYWItb2RmZS0yMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAx6XhP+CjImnxtBVeuTzb10S72cdplFvBfaM0TT6I +CuKPLtOYlK60H0mj/UsnFnCrA6vNTAIqe+06/0lJLjuI9lmFJt43tEeeHL6jOI6w +ImvKxRLlvkCcV3pNAgzbE8Wd0oXfmVcykDdUCBZGAVTaDHcxYzlGJ4g/9K1O5v0K +Pp2YmlOYkL6b7uOykcd/P6G5Yvh6Hsy0I+2CoFythntQU8nsVwREHBL2Mz9oQvi3 +LyWRHKqw3xdr7W3MbafWtwdrYaUWUZ8CB62yQkLKC7EuwW6ULT5eiEiPtosVsEiO +NVjqtZCc+1r69ccntxEwess2fE/qUgBHQOnwymdjMuAzcwIDAQABo4HcMIHZMAkG +A1UdEwQCMAAwHQYDVR0OBBYEFOZBvkui4QfvKv0Wp7ZoPQ+B9RWAMEYGA1UdIwQ/ +MD2AFHkGykDTn5pUrtMzTfI4PrYL8z3PoRqkGDAWMRQwEgYDVQQDDAtTT0NUT09M +Uy1DQYIJAIp0kyaAW0K3MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAL +BgNVHQ8EBAMCBaAwOQYDVR0RBDIwMIIOZHNvY2xhYi1vZGZlLTKCHmRzb2NsYWIu +Z240LTMtd3A4LXNvYy5zdW5ldC5zZTANBgkqhkiG9w0BAQsFAAOCAQEAhGTQkvaW +B77xUvZJFc3QmerKfwao0mjjjsOjqS3yt0p0dZ8CtG93FOyJ+aO1NcjyrVDfJAXT +CqhJvhne/ISkYa//wCz3ixGHNBDj3JvSuGYK9z8FETdBCZ8986GXt2Jk21pG2Vp6 +yPd55PhhLlzogo38Do2kT/0z8XYOjSH0AFrhppYh4Lvk5jWOtmFJivLBJZbPwPbg +Cgt1tdVsvq0MqEszRHLM71/bCee5bmCAfQLpqwaBJNOdw975ofH3d+5tSasTcsZi +ObKAMgcgUaM+Gs+5OrzjoVgzIm9oqekzC40kcurjdWijaRGoLYbt8gB01tSr/DA/ +aGu202EwUYQJ2g== +-----END CERTIFICATE----- diff --git a/roles/ca/files/CA/issued/dsoclab-thehive.crt b/roles/ca/files/CA/issued/dsoclab-thehive.crt new file mode 100644 index 0000000..0d474c2 --- /dev/null +++ b/roles/ca/files/CA/issued/dsoclab-thehive.crt @@ -0,0 +1,88 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 61:09:5c:2c:8d:35:ee:29:1c:99:ce:ab:d4:2b:3c:a4 + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=SOCTOOLS-CA + Validity + Not Before: Oct 30 10:47:29 2020 GMT + Not After : Oct 15 10:47:29 2023 GMT + Subject: CN=dsoclab-thehive + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:ba:c5:4d:20:a4:60:b7:61:21:ed:16:a1:6f:72: + c4:de:a1:00:c0:ef:fc:5d:a1:89:34:07:15:d2:b4: + 3a:14:b8:95:75:8e:81:71:49:46:1d:c8:81:cb:f1: + ec:c7:5a:12:f6:89:60:e4:c8:98:1a:61:c8:2d:12: + 8f:73:ee:f8:9d:88:b5:7f:30:70:97:29:b4:ab:43: + 2d:dc:db:a7:10:47:c7:b5:26:9b:11:85:fb:d3:27: + 8f:3a:55:bc:ea:78:17:b8:89:10:a3:a4:10:60:39: + c3:7f:42:25:a9:fe:84:7f:38:5e:f4:3d:c3:98:3d: + 56:b9:ba:81:06:55:8d:65:12:f0:4e:23:88:1d:98: + 0c:2f:6e:4f:67:fd:4e:67:39:91:b9:01:52:12:aa: + 9e:bb:7a:c8:ea:8f:4a:2d:18:f8:69:9a:3a:a0:c8: + 6e:e3:de:c6:db:be:4c:59:e0:cf:bc:34:4f:2c:b0: + ef:3e:82:5a:df:68:be:b8:fb:cc:5f:6a:f2:3e:66: + d4:c6:c5:f6:0b:67:e9:64:85:15:87:60:6f:dc:b4: + 5b:13:6f:b0:9b:f8:f3:da:c1:91:9e:81:5f:16:ca: + 9e:14:01:c1:1c:ce:2a:d3:c8:3c:0f:be:b1:37:aa: + c9:08:68:2b:de:f9:44:6c:1e:90:a4:12:bc:f5:3c: + 46:bd + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + 5B:08:8E:F2:1B:8F:12:03:BA:31:02:9C:CE:CC:BC:9F:FC:19:D1:E1 + X509v3 Authority Key Identifier: + keyid:79:06:CA:40:D3:9F:9A:54:AE:D3:33:4D:F2:38:3E:B6:0B:F3:3D:CF + DirName:/CN=SOCTOOLS-CA + serial:8A:74:93:26:80:5B:42:B7 + + X509v3 Extended Key Usage: + TLS Web Server Authentication, TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature, Key Encipherment + X509v3 Subject Alternative Name: + DNS:dsoclab-thehive, DNS:dsoclab.gn4-3-wp8-soc.sunet.se + Signature Algorithm: sha256WithRSAEncryption + 7f:b2:fa:33:d6:e3:6c:57:8a:4a:9a:ef:8b:81:2b:df:f3:d6: + fb:8c:bc:02:cf:71:54:a0:f2:0d:ae:3b:30:cf:5c:69:d7:d0: + aa:cc:16:80:4d:9d:c8:1f:a7:98:9d:26:dc:ae:8e:24:2b:bc: + c1:11:a6:8d:4f:ca:13:1f:7f:8f:4c:ef:dd:46:df:d6:97:0a: + 88:51:4e:f7:46:aa:3d:e3:70:e9:19:e8:9f:7e:22:fa:b6:38: + 30:00:0a:94:38:09:bf:b8:64:6c:c1:b7:05:6d:4f:f3:27:0c: + df:04:ef:a1:4e:e8:2d:4c:06:d0:c0:4f:4f:da:d0:6d:b8:f2: + b3:79:18:63:bd:62:83:53:55:38:94:d9:64:ca:e7:4d:71:ce: + d1:05:6d:b1:6c:fb:1a:4c:b6:ef:70:2b:3d:9b:1d:66:d8:d9: + 9f:f0:e5:48:29:50:e8:1b:1a:fb:b4:d2:5e:38:ec:05:45:c2: + e7:de:9a:9d:aa:34:67:c5:66:18:e3:86:8b:0c:1a:c4:21:20: + 7e:b7:ad:e2:0b:d0:0d:d4:76:e6:53:ca:77:bc:ce:d0:9b:7b: + 7c:fd:42:94:da:63:d8:a7:52:d2:45:f2:d5:55:ef:37:f1:a5: + 0e:ba:29:c9:b4:ce:99:45:04:21:2b:86:27:bb:c1:f2:86:9a: + 7c:51:5c:3b +-----BEGIN CERTIFICATE----- +MIIDmDCCAoCgAwIBAgIQYQlcLI017ikcmc6r1Cs8pDANBgkqhkiG9w0BAQsFADAW +MRQwEgYDVQQDDAtTT0NUT09MUy1DQTAeFw0yMDEwMzAxMDQ3MjlaFw0yMzEwMTUx +MDQ3MjlaMBoxGDAWBgNVBAMMD2Rzb2NsYWItdGhlaGl2ZTCCASIwDQYJKoZIhvcN +AQEBBQADggEPADCCAQoCggEBALrFTSCkYLdhIe0WoW9yxN6hAMDv/F2hiTQHFdK0 +OhS4lXWOgXFJRh3Igcvx7MdaEvaJYOTImBphyC0Sj3Pu+J2ItX8wcJcptKtDLdzb +pxBHx7UmmxGF+9MnjzpVvOp4F7iJEKOkEGA5w39CJan+hH84XvQ9w5g9Vrm6gQZV +jWUS8E4jiB2YDC9uT2f9Tmc5kbkBUhKqnrt6yOqPSi0Y+GmaOqDIbuPextu+TFng +z7w0Tyyw7z6CWt9ovrj7zF9q8j5m1MbF9gtn6WSFFYdgb9y0WxNvsJv489rBkZ6B +XxbKnhQBwRzOKtPIPA++sTeqyQhoK975RGwekKQSvPU8Rr0CAwEAAaOB3TCB2jAJ +BgNVHRMEAjAAMB0GA1UdDgQWBBRbCI7yG48SA7oxApzOzLyf/BnR4TBGBgNVHSME +PzA9gBR5BspA05+aVK7TM03yOD62C/M9z6EapBgwFjEUMBIGA1UEAwwLU09DVE9P +TFMtQ0GCCQCKdJMmgFtCtzAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw +CwYDVR0PBAQDAgWgMDoGA1UdEQQzMDGCD2Rzb2NsYWItdGhlaGl2ZYIeZHNvY2xh +Yi5nbjQtMy13cDgtc29jLnN1bmV0LnNlMA0GCSqGSIb3DQEBCwUAA4IBAQB/svoz +1uNsV4pKmu+LgSvf89b7jLwCz3FUoPINrjswz1xp19CqzBaATZ3IH6eYnSbcro4k +K7zBEaaNT8oTH3+PTO/dRt/WlwqIUU73Rqo943DpGeiffiL6tjgwAAqUOAm/uGRs +wbcFbU/zJwzfBO+hTugtTAbQwE9P2tBtuPKzeRhjvWKDU1U4lNlkyudNcc7RBW2x +bPsaTLbvcCs9mx1m2Nmf8OVIKVDoGxr7tNJeOOwFRcLn3pqdqjRnxWYY44aLDBrE +ISB+t63iC9AN1HbmU8p3vM7Qm3t8/UKU2mPYp1LSRfLVVe838aUOuinJtM6ZRQQh +K4Ynu8Hyhpp8UVw7 +-----END CERTIFICATE----- diff --git a/roles/ca/files/CA/openssl-easyrsa.cnf b/roles/ca/files/CA/openssl-easyrsa.cnf new file mode 100644 index 0000000..1139414 --- /dev/null +++ b/roles/ca/files/CA/openssl-easyrsa.cnf @@ -0,0 +1,140 @@ +# For use with Easy-RSA 3.1 and OpenSSL or LibreSSL + +RANDFILE = $ENV::EASYRSA_PKI/.rnd + +#################################################################### +[ ca ] +default_ca = CA_default # The default ca section + +#################################################################### +[ CA_default ] + +dir = $ENV::EASYRSA_PKI # Where everything is kept +certs = $dir # Where the issued certs are kept +crl_dir = $dir # Where the issued crl are kept +database = $dir/index.txt # database index file. +new_certs_dir = $dir/certs_by_serial # default place for new certs. + +certificate = $dir/ca.crt # The CA certificate +serial = $dir/serial # The current serial number +crl = $dir/crl.pem # The current CRL +private_key = $dir/private/ca.key # The private key +RANDFILE = $dir/.rand # private random number file + +x509_extensions = basic_exts # The extentions to add to the cert + +# This allows a V2 CRL. Ancient browsers don't like it, but anything Easy-RSA +# is designed for will. In return, we get the Issuer attached to CRLs. +crl_extensions = crl_ext + +default_days = $ENV::EASYRSA_CERT_EXPIRE # how long to certify for +default_crl_days= $ENV::EASYRSA_CRL_DAYS # how long before next CRL +default_md = $ENV::EASYRSA_DIGEST # use public key default MD +preserve = no # keep passed DN ordering + +# This allows to renew certificates which have not been revoked +unique_subject = no + +# A few difference way of specifying how similar the request should look +# For type CA, the listed attributes must be the same, and the optional +# and supplied fields are just that :-) +policy = policy_anything + +# For the 'anything' policy, which defines allowed DN fields +[ policy_anything ] +countryName = optional +stateOrProvinceName = optional +localityName = optional +organizationName = optional +organizationalUnitName = optional +commonName = supplied +name = optional +emailAddress = optional + +#################################################################### +# Easy-RSA request handling +# We key off $DN_MODE to determine how to format the DN +[ req ] +default_bits = $ENV::EASYRSA_KEY_SIZE +default_keyfile = privkey.pem +default_md = $ENV::EASYRSA_DIGEST +distinguished_name = $ENV::EASYRSA_DN +x509_extensions = easyrsa_ca # The extentions to add to the self signed cert + +# A placeholder to handle the $EXTRA_EXTS feature: +#%EXTRA_EXTS% # Do NOT remove or change this line as $EXTRA_EXTS support requires it + +#################################################################### +# Easy-RSA DN (Subject) handling + +# Easy-RSA DN for cn_only support: +[ cn_only ] +commonName = Common Name (eg: your user, host, or server name) +commonName_max = 64 +commonName_default = $ENV::EASYRSA_REQ_CN + +# Easy-RSA DN for org support: +[ org ] +countryName = Country Name (2 letter code) +countryName_default = $ENV::EASYRSA_REQ_COUNTRY +countryName_min = 2 +countryName_max = 2 + +stateOrProvinceName = State or Province Name (full name) +stateOrProvinceName_default = $ENV::EASYRSA_REQ_PROVINCE + +localityName = Locality Name (eg, city) +localityName_default = $ENV::EASYRSA_REQ_CITY + +0.organizationName = Organization Name (eg, company) +0.organizationName_default = $ENV::EASYRSA_REQ_ORG + +organizationalUnitName = Organizational Unit Name (eg, section) +organizationalUnitName_default = $ENV::EASYRSA_REQ_OU + +commonName = Common Name (eg: your user, host, or server name) +commonName_max = 64 +commonName_default = $ENV::EASYRSA_REQ_CN + +emailAddress = Email Address +emailAddress_default = $ENV::EASYRSA_REQ_EMAIL +emailAddress_max = 64 + +#################################################################### +# Easy-RSA cert extension handling + +# This section is effectively unused as the main script sets extensions +# dynamically. This core section is left to support the odd usecase where +# a user calls openssl directly. +[ basic_exts ] +basicConstraints = CA:FALSE +subjectKeyIdentifier = hash +authorityKeyIdentifier = keyid,issuer:always + +# The Easy-RSA CA extensions +[ easyrsa_ca ] + +# PKIX recommendations: + +subjectKeyIdentifier=hash +authorityKeyIdentifier=keyid:always,issuer:always + +# This could be marked critical, but it's nice to support reading by any +# broken clients who attempt to do so. +basicConstraints = CA:true + +# Limit key usage to CA tasks. If you really want to use the generated pair as +# a self-signed cert, comment this out. +keyUsage = cRLSign, keyCertSign + +# nsCertType omitted by default. Let's try to let the deprecated stuff die. +# nsCertType = sslCA + +# CRL extensions. +[ crl_ext ] + +# Only issuerAltName and authorityKeyIdentifier make any sense in a CRL. + +# issuerAltName=issuer:copy +authorityKeyIdentifier=keyid:always,issuer:always + diff --git a/roles/ca/files/CA/private/Arne Oslebo.key b/roles/ca/files/CA/private/Arne Oslebo.key new file mode 100644 index 0000000..677703b --- /dev/null +++ b/roles/ca/files/CA/private/Arne Oslebo.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDOTAIZIW4c8u2T +2P28GqTCETvhVXPlJpLT2eim3X2iHb5qfGQGOWAzOH1qyomd5RFYIWnzOohe6uUu +4Z27AB9ZGWlPazI9LxralT2ZlVOfsurbE0hjLUrcDEumHExi4tARJWfLgFIC6Pg7 +POvL9HEDWr7ZoEn+0XL+T77hrKHtpRUG9E7JBqubksI+uVgM9BUOBMCRG4VznbaX +oWxwChqgzkyNrCnkxRcAJgNEMqh7g1JJQ2ARU8geuOufH+MTVIF3xEdKLiCNSIyR +LuDU5TcLXLtfQDeS6WA7oPmYf22zIJI82ozweYHy6ne6tHsGVHWJd36tCDquHtwc +EWMIQxSXAgMBAAECggEAe0rx9hMEvEhztOj6vHEwBsxF/WYU3d8v4W1anl/BtiIQ +q5OsNAwWcoZQboKdvMAqnYFa0QMqfY/laR9uJVTtZ1LIna5zWB3O7tRC/IdCcy97 +LXNYz+1B0EGI9L306SSlNZolbnpCiXqy4LSIOFzfLiIN7gLeNmz3TQZcDoQeQuhT +SA42/6EW1GFWWlFjqFy/W9X9VY3AHZAuf4M9Sv5YK6L7w8dwv190F/JXZz/7z0ad +ElDfUh09xqsfvFhqvAzpWkGglhh6Ns9DGfH4bueoHZ0gF3nbdLxfpPp4eyRv/Ox4 +Ozf0E0snyJPG2N93Pluks5BKnC8yYYAvGo6hE2/wAQKBgQD2nrK2XCvh36uQIhGe +iGIzRFGeeKB4jt4ZAM45PryrzBqtXMnndV8V4WoZkPRl5D8/HmoeMVbA6Bb1zdLy +SDLs/U0IquMe8K6QR+F+wjWFLebu+aNaPsKnu8fJOVmDmNGReX7q3thTja+rcSDA +5h5dEi9viM0OsRl2Xf5zLuzUSQKBgQDWJLDem/cV7vyrB3r60EeVSY9pwj0AD7oZ +Tbcx2DuibP6ojvsDpUDbh3nuIlu69jRO0kl0rdCVnoWu3eaerDtFKd8EUsoQJv9B +CV+rD4xoNa/1C+1DggIyAcTrAGxTS+Z/qsgVBy1YGLWtdaqg1TZI47F7m+fVtZRZ +BMgW8lLh3wKBgQCRltRHxZf+Sw28E/C01yypuT45wFpzcVv6BLi5oKi+/soM6Acl +heuxPhZlq2YsNJeFyo2470WYsirDx1MtxqORtmNgp4lW/Zz//f9H1pzD13pKP8NI +hl5hqQBjcWC/yFqHd+MOAqpQgQdgvXMpjXAFX7PzMx5i+vfeIdUR6HTVSQKBgQCR +fVAljjVrU3mbAXQOX9+ij9297tfe6NB5TJHAbbbmfcLu5mWobmgIPp0aq4FDHu8e +9kQt38GtRYxx6BU9jKqgLPh2SYE7RCN8HlA/Okscqg0oIbhLe1LegtE1EI6IcTLj +XjaeAshN6EvW0/DfYLyG/RuibaQvUDS/3j3LSUwCZQKBgGbI4n8JyQx0N5N7seLH +E874B33QrURfoZqm1Pu03jWzzupzIL3Li+osgS/IAeh2tscCifaWX4eop973NGUe +FfSGoQal+iQStVoEhKG79k5q3Yut8YFNt0Oy6tYrl7rWm5kSdok97u10lylPJKJY +jryMaRsmZMcFRwby70+VtnoW +-----END PRIVATE KEY----- diff --git a/roles/ca/files/CA/private/Arne Oslebo.p12 b/roles/ca/files/CA/private/Arne Oslebo.p12 new file mode 100644 index 0000000000000000000000000000000000000000..273c8018b7bed8f691d9e9c24f5fa9d6425a0e79 GIT binary patch literal 3325 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 SvT*onuj~K4uqy#nN&)~L2}KS7 literal 0 HcmV?d00001 diff --git a/roles/ca/files/CA/private/Bozidar Proevski.key b/roles/ca/files/CA/private/Bozidar Proevski.key new file mode 100644 index 0000000..8a141bb --- /dev/null +++ b/roles/ca/files/CA/private/Bozidar Proevski.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCa3gD98em5KdlY +0Echz0tnF/epApMXz1dbb9smkDAJC9nFZl72ImarSAaqbIiz/ZNFpGDJXytsr9to +XifmhXEntyBSYd8UG9oGObIhIEsiSLdLdkQCsYlfDlkiy7nJHo2grChd5a7I6swF +IKJgERKNbYgKc+h8aJxILMmoxp3DPMHn9Af3W25CPT0PhW/iuYip0AKEuBlqrhOh +l1CYFsgMG70CyF+jL3N+JfiM55JDx2p1vIXqHEcoziybOo+oB+mMinU+wZcyzuPF +yh4K1zx3CtKrUcPl3DeQGjW/oEqqvTjvnm34gTd/03cjxltjmGQHL0f9fSEvV8LY +RADCKSJ5AgMBAAECggEABfbe2ujiM3tlH4KF+stdAA9wPlYXDCe0GZVpP0b2UqLe +NDgJGDmi8p3Hg/DCIwx1C42VHKxJo9nx/UcDCmHBReJLoGCcks2vy+WU8qmnux5J +0OIxJFlqDPske66U7SX8FmAK/fLGlH5WdSwYlNKTgFbjkmN8ZK4ytqTi71kW4ln5 +VUlXPd9FYlHc29u4qXJeaRLj9PIz/6FxYl0Ub13dXV8hfVEG8JaeosFjOhZqpgLg +t1oNaPrKBywYvJ1P+PKfX7lsFV6dllpaosP1j0OEjAVZ3USOAyVgMHmKqqvCynlg +IuKKF169bsJAb02KKtz1RMY3/Tao3VboHIGSNFSM8QKBgQDOALdl8uRaLSFHjJ6x +UQWks+Hzs8eCC4qJ39Yj7Eqznat3GmZwc6S5/1s414VAOz8lX1S+xKLEiuxRH1kL +etFRpGGA7XBHGI7EpRiHc4jyuzt/vMDZyA1Hh8iSsr03uDA5okVi6YWM647b/byU +Xl9aWZzqX72RDerikpRPMvERgwKBgQDAdCar1Y3flctOl4iRatpya3PWCLVDNGTA +88/m2DEGtwJxRdhfztNsrXIao8WkwPkvW+fnS5c6M8cXDOph3j5E56xsH4w+9vXG ++eN0/w6ci1ajZtCu6fCttwCVPBu5dzMSWAfNmnYbnnFQvzHLCV5ZbR3Z0dDMLM7o +2gD3JdynUwKBgD+aBQWa6lnVGTNH/S7tvvpM93QQi4ZhHdLXovvQVngCNBA/vGT3 +r2IlrvprwB5GrIZTWozTlRVtduzM6ucacknsoJX3uPSaZmncNyiKyTt4BzS3CCu1 +EjSFfa2dNcJgQbNpoFablrodeCv/uRttz67LgCD0kkiYrW5qpxOUvM0VAoGBAKbx +msIgg+tZs3y/clZCjLAIifk2oJZlkqjWVph3HUAn7NR5tBKYBUsWwg5d1oruYro0 +TVyUc+CnHaLfL0oqUXXQSf+Y9j2AWP97sVXCEti0/jjMbWXtxTvLrZPHCn296u2U +s2AlByM6NC3JTNZFkDSetPBIU4lprSrMQV4i19/FAoGAe7iRaTkcmMZaE1cvZs2j +Uv2TzZrXtj9MWtjxV7Tu1NrAcMV2WG4FJHxt+2V30beUrWFlg647Wo62ww2ylrze +kyQoE0/eccfGI6z7qh8D8026xAoh7oeoLubhzFszz/dqOfJPiUv1GyzyD2m2kSvZ +DlY3mCb9rL+6jbbXcS+7Iuw= +-----END PRIVATE KEY----- diff --git a/roles/ca/files/CA/private/Bozidar Proevski.p12 b/roles/ca/files/CA/private/Bozidar Proevski.p12 new file mode 100644 index 0000000000000000000000000000000000000000..24010a64063a960d554cd4e895e17b9e2e62362a GIT binary patch literal 3325 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 MzLJB#K7&e00Bh$qdH?_b literal 0 HcmV?d00001 diff --git a/roles/ca/files/CA/private/ca.key b/roles/ca/files/CA/private/ca.key new file mode 100644 index 0000000..3c45faa --- /dev/null +++ b/roles/ca/files/CA/private/ca.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEogIBAAKCAQEAtRmQxWST0ewGJIRLAfVOqrSvuNHYtyjnk8EaLCe4bz9RUI8J +yAt+wVJVateShIEUwnF4Cx9AnbcwtUZM/gFAi8ikzhpjQqpr8jHBEnabqCNTVC5L +9EHmFzI+ENS4dEZXamaRK99lH7FaMATz4YowFJVQB3iS744v7Z1LyPvvZ6NocdN1 +AIY0zDOfQL4mLEU9w1JHIjUpZacFfuwdqYJ6UYM7G1Rj9nIXmmkWBvQwG0Uy6wLV +cTtFiXP8zRkqb17jsgSt9P6cBjL4TRj3nJBJUqQ32nqbgPGQ3H2ijZNJBAb8yJVK +6WQZr7QXOQ5qXxAZUpOVCv9F0m5ShOXTqpVnNQIDAQABAoIBAFg1QJd0mq9Hx+In +caVdh1iMM37Q7z6fNNR53LafDi1ZaNDVKs1+E9ozsRkeMOZLPQJMZEz+humK3bWd +rUiW8YpkSyl8HtbMzVElPMYycTSfKCo7dpFdO6YWubZW9hTkYhWYKaN15vpd1vDG +qMc1GKAd7eIFr4Pw/JU+5TfaxkvysCuih6Q6/MZwddM61eCZO6VBYMf0k94RHn0I +gIY4hCeyJQ3RoIpzZr4XqUAGdLOvTmzPSTlqT4g7RVgsGQT1p6yG3o42kev0l+Y4 +L92dA25xWeHirWkaQLRj46tX4un67SWA8OkxwA1D49i3keIfhRjsa0d3YELmV8tG +60l6RcECgYEA6alfHn3zGMw7npN4V/iGEwv7Y4xDcDPdlWTCQ8Btc8XanHuVxcTu +bENrMouddeM6GI6sz7GVg4vXVyPXa0ZCBPIK61ArS8aNlmggqRd86pgQRWkgCVi2 +gXANwrV6NZNXYZ3X+glIljlRoqlNm7rH9hMQ2KwUW02Q9AdclgvpfQUCgYEAxmnM +leiSy+s0H/0Wo+LdvpC1NaZPTML6N8cmjwH9xe2mcsGI2a8EQdfqMHE6aWTuHErj +I3juwSDSBbPlQsf0nRku+qMuLTzsVbCVfG9NiYr5YPxdT7LnW/F/Kuxyn3mW1wgD +WXi4DM0muRPskw6c8f604crFShSpszLTcYE12HECgYA/exlxgkxiR1JHQc9nLwjV +8eJpaDkGKcEgjlBM8eGKm41KCDVnlpoj5akhAVdVKNemxlRi1N9G7t4hOYaUCXF0 +QIIA7jXlD1t2KnH9Hnl8jrWU9fuTLnve7J+Ab6d1GMObrLN5pb4HuijYpWCFV5ht +3T4tb4rUR12DPuDDjxbvNQKBgGEzb4B5IYE4xp5tNGwxNgSni76urOakFkTBEYi5 +pwMR+5r4aPyLmwBOsHHu5ni/c070+PVlx0FhvMICcWwX3SQhNDyhOHv8/qK0EWeW +d1vMc4Mp3uSudl06n9v9XeH2hQju6gUo+LF8x12f/yPD4utCpoZ++cvi94fMfH18 +mU5hAoGADsoT85//n1VPQLysZpW6FjYIp8quuGS94FAdkiQVKa7u6vO/Vy19ZxFI +7Cub8sg+e80wGakCCEi22AN6RwJyV9R8ec8ct+K/HeNqujKoDZN6ZDQzXo0a/vgj +BibssPr6+b3DVE+/e2qlfzjwQA+GqcSmP70fmg8tGlKbZwwBJxk= +-----END RSA PRIVATE KEY----- diff --git a/roles/ca/files/CA/private/dsoclab-cortex.key b/roles/ca/files/CA/private/dsoclab-cortex.key new file mode 100644 index 0000000..827da54 --- /dev/null +++ b/roles/ca/files/CA/private/dsoclab-cortex.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDNCWsUM0pHdVvT +2Wc7Ta0fpx8zq4axqjsJqxqm+6BgBONoMw6FVNFwYYq51da1bMKzNgKUtx0Yk1+I +gf8q9JlYbdeW4tJkd7l0RDzw+1sPQ304Xf6w2wV6qcUQJHUTyC3aab7jQzPwKDCa +U/j40xAyNewdh6seLLUAfJ+PYeBdVhWMRkUJeAJ4EMCvLyVswlvtX8EzC/jIE9zf +w/wFkP8Gnsu8HSvCV/K9qiKzS/XKsrgAGPEUELheaZ/t/ASD2S63mopFHFRxj2EC +aoqEL2ffkjoMX+W252wnaR9bBtZ/5t+rLzGlzWMyYMAHUGwNOctorjyy2g8gBncs +KKs6MJIbAgMBAAECggEAIdhGJqV4w2bp64Rdd/qQc0Mg8WSE7VrOOABYe+vZQ0BL +UW3sHbIsiEJxpc9Yi8YSNYba0jWPxfi9skjTGAIcNe6bwbpbRF5G7Jw++wBivZhE +WUOawRLGSsMvVkTOVp+agg0mh1kWf7QCodbuqBQe/krMWOuGIYr7rcLki8R6Rq2d +WuW8Kf697ciklh/6cyy1J6axe1LNT906lYvyRock246KbN517wWw7/fu47Mb2fdC +U6beFxbmbc5vk4lrViE7gSNkY97Vr/uXW9xlyRzvpNJuzZrm00CgNF1MnOnwf3l1 +k8kc63RMkUJGVWcxo5ubzLXpv4CnnmUNPfaSx+CeUQKBgQDuUT8JOu2vfzAC2VOQ +OfKR4NgMQ8fnK6T67zpLDeNUAGW+hBi62ewD8xxRse0j/rWXgvADBE1GplPXicZI +Q0o0VgIiL3NFQgCP7rvtPGE9VQXHYgd+ULKCHcPEBwonlbAhiHSwVnBqSFoqWdj+ +SHiBn4AD1ARoD6WSEVi3X6UU/QKBgQDcQATvzbbcr41vQHm9u1O7v0slk306A4yY +ItXk+GbtLEoLAiLy7n0REKybZAzniuLCDAQ1h1bWLkqRle26XqVfg3YaxGpoJODy +gPgr2Hi4Y/lcFrwRThUHEu8eaUWVRtY3B9Rgi5VjLVqydgI3/AFWdlzIVkhBeN0w +MOtKdEg69wKBgG+wD/TJcz8+QkfzhiAfqDkJwPbuhS8n2yfnGdC274UcspI44kYf +f2bSdsEqu9KUupIJQWaIi5bCuKRY415Wet5QOKvAxSr+JblOzy/9jizqPc0VeiGO +vDoSrP6ftfibRHJSuy0xNXn58pfKh9GUMTW+hIZGxNHoE1aDXqqB3qIZAoGBAIIc +A46SDLNDtZ6CDSjrD6T6dW8GONTboeOBuK+hmlQDdN4Z7gFqp1E8c2r8aK8jmZ8e +MCJbCA5QnFZyplQRc0oAQ/W+EEnjd0tqqrBkGbR7wqQG/iSO5tcd9UoW0DdF+Gfb +5Tb/XkmPUmPYWKkv4q5sD5V9ewPKXYgJbgW2ubCzAoGACfaFTBM3zZ2rqjJUk8+F +fGcuDeh/ZFk4MgcN5nbdKHwyXDhBlUY1FzLZlKi5J1lRyTInZUP8KYnXogw757Md +oa5wPlnw0a6VSHX1ZZUwa0yz1Rrv5M5CA4vyNBENCaHELKLoRWwbAook1gFie6cV +nrCXNbsWttgWkzqLDWkPT5M= +-----END PRIVATE KEY----- diff --git a/roles/ca/files/CA/private/dsoclab-cortex.p12 b/roles/ca/files/CA/private/dsoclab-cortex.p12 new file mode 100644 index 0000000000000000000000000000000000000000..252b3e7ef466cf7a4090ab3d5c551bd8dcaf5e5f GIT binary patch literal 3397 zcmXqL;&o(VWHxBxWoP5mYV&CO&dbQoxS)yW2TK#r7lS6A4+c%_%Mns+3!2zx7&Ng@ zVPa%3Xkzb0$S@knuyH|6;9+Dl;A7#aTyiR9(y|32OiUaM4NdF`^3v+fOukvCq+fAX zxwrpy-L%(J+a#$?@WjvS3qNVdxRoDP(K`2b;}nx=99~^XCZVdU94A^HSuLYqyTnao z=Z}8XPeuD3d>>`L{#MwxcG~Tm&lPTYOv_Z;IZa3Vtp6eRYi6~lWGu?NqxDwKeEH;} z(9YVnT%*;;7nn31xF2a1a<u62hG*A)tDHS^&3K=q@ZpJ{Y~nRGHnas#KUNZLE^+*` zdYyS<#>}jp54J1v?C5dJ*}F{0N4r3W{iW^Gw^ys<4HVZ(oqG6q^Y^V{%wAh6?=HW( zaOcE`s@>}?&%5b+PUCSt9qN5pUw%=P;{~Puq7<Q`OTw2cH{E#|%K7r#(XPkg^I4xg z=ukbvwD+o$|MK%DhcmRjojA(>&D!{7rMt?3kkcI(e#~Fh@ZKw`Yh#c(%c4NulL2vB z>rbf6oqp}|44Wfg-md+<CuUFS0`WPP-<v~TS$W@ZsMg5bXZCP+;tuV<Q}6U|7x1xr z{#m$o-^AS&yI=RrE#+!($ZfOUrDAThgY|nX%MrfWJEyd`Z$4n%p|_m(#ec5WJK^Cg z-Co`^45`(U_20a3>Y|A2EOBnn3Qir@RCoI!e<WIR<1L|O#}20K^i+R%)$Zjzrv)~w z)`eSqi|zVfXw-77c~r;iH;eCl;THym>TGZO_n*BL1Gh!QFuW7tl5xEu*m(4dr+G!o z*2GUUtHrf8i)}spL@>kFX7+C0sdG<zh^amj(J0RJ(7uqsmTkN=__ih|qlt#arj?o> zclw&n-y}J)VX{s51gVb<tBf?5T|ZX^_dCuune#n_r}|y^ntvHPuFg8FJ89m(1?*Wm z;qTWz6HW_P4|%?1+mbBZpC+?~EKSaZJ+;4|rTpqc&*Uo!Hx(_LZz+4)-#a`%mVK>7 zYK+vp?>F>nW~9#)nR5MU?Q(9tLtE~y^sq3nJl^|pp{$Wh#Y5#+Zyjw;95l`Djdf}~ zDC}Al5wT((kM^G||HmD(5~l0@mg81D|EK0&+;_+NKN8(>U%q|TJdr2j&5(S^L@?i` zdFlBu$-lmvJbHq7uPD2|Ic|L5{S}{@Q1$J$!kQ1(f7`~U;-D7szJ9`j^2$b=41Vd= zHo4J^ygXkQubwN;w#)pSF(cc|;@T@e{eD(SrEf5;i8k56x>ljIj`?hE;k8TmdQF5M zy-8uph%aqOSHJvfnm*t5i}TVrUsqX7{55Bddvl___t(y2H$?aO`WefX&UVz4c=w5E z#mqF5BezO7dZr4WyJfyza8cB*M*f6p8O0wCJq)y&^<eh~%WOW=2T#u2x0{o{(NwhN zz~rD;-M1^k%)flw=e}>{<|u}Fy8`D08Aq94{gj)X&-ifu*Ai2~_jyOJs2OMQy{fH$ z!hGbOr`V0An}=?CTE4av$v-eBwe#kGpM}3RXt=G+&pLX!V3iclRKvPN#$_zUKR&UA z-2T*ktM_wBdDZ6a9@0<y_2uU?e*ZCT*`1Z271((@)m|KlGW9m7wNG2F?Q-t&spO|K z87f0;FGt+6EAr{vySr_P|0_>Z<^x69vO6w)oKx_EwOex@WAn-9iu+e6E^CZ>63k#x zlY08ue`9a=%u`k~#6HJ3g_THp*9z}cE0p`SC*p%zn3MVIz*V<=PcC42H}mi|nT>nb ztrnAa65Va_{e^Gg7rWB3l>dkS$h7Y&{-3(6W?jDidA3873^{*V{+trLck0BY*2iz` zy|>-$YoETv(z#Mgn^)N-y5ACvlVo4${#!JrV~NeQoE?JEWjZeXyPR7}555f6N>B5x z{T-rExoFAix#9DY)W7_FQ_JclP;b;6!OI(4wv{WpqO!x=>B^~jeOec{KA4=Uvn*}O z42h<YUCEwD*QIVz%ipbYTe)%N#d{{4Yi}HqX_`ALyJKZF^VQkgv{UYUuT!;Kz+%2s zZofsX>l)RUSyk5eV!mpKao_Cxz3<bTCoXmDN3#r`J$>sNBF0{DaM6Y|6V6v!b8aL= zm$vcE?2CI;&am>$Iy1RRmM52AF6-iVz59XR;YHvbkMzA|k{Vkxy(iA>G%c3Po)#vU zzxk5X(&^i#wL8q4l4!*3wrVBQl-`Bq?|5YL51oAb!mTKPCI01J`<grMffq$<-aT(n z3e8n6)aMFa*7LjTXChb8JFa;RQ*#@yU*4|VJafkKP4PR|ct=0p-u!!4?<(JwlO~DO zutz-i3GDxK>Uf`z*zyiP?eE$vggo`<*Em03%*=S4rN5|DhAnZo{BN^Bp1!qwR}Q6o z(vdTgbxAAxQJUuXT=ezNl#BU^oV>+PkNJKO_~@IqJo;9}t#^;>g>F1xZMSW`>A3fD zJ)3(E%m147&ZZN)JAW%>SuVe7b8zwU-@3fFHf0^1ct@k>aZSvlAEBqx7aM#?4p`&) zEcn?WiBmQSG7Bbr-)DXQY*_7nrG(hVhTG!L*`Beq{*m2zqV?)Yl^I4wSsX?m_NX68 z_c?!NbDKt1U4ZGGJ87D7nFq4x+rL`7wzaY43D2J9Q0H%fAHvR6w;aw$x+Rr8?aFH{ zK@mNslr0%cH|KY+dS86-)SP+wTQ0ts`ZL)~&hcENL0ijd(fo8NmGe85d|n>8FuT2G zuR#;5BT|LDpo!IprHNI~povw>povwDjT=@yb1^b4XkvM1(8TfzrPgK!)!L@B6qp3= zPJaNZwON{2PJGz>IQ>P)r1M7KIbQWW{bL-w#k28%4!5)zhbPY>gZn3pj%2-(n6p}O zW%Io1Ee7qp1=CM_^)7y#d_#7ZukVT1kM3VA*ws7#jy&f(uZL1!3Vjx=PI<pT$o{=c zM?rCs(Bzzr*B#T2UNd_0&82<j)QPG#MGrZrM9ly5{ot0%$9<Rgd$?^{wfU*(LeDD0 zh^WT%5{@f<OA^m{Dk%%gzq`{l-C!591DDTr)6Is;fp7GAudDQVv7552jCT3h%FFj* z<{XJ*j9(H~ls~$=A}5*oo`TFn`-Kvx^$pJo{ODaid)edEnzcQPBevzWNeKy0-)^y= z@&CEpGrv=I7(8bzy3=I2vPK|%!HHuBHr<@K{Y8^kgzF@}$9J<sE1n<R@_OmKZW+t( zz8j|exA9hZde=5zmb>M^mcx}&pC3fHZ#HzZlrEA^W|*p8+<obpLZaP+qamt4R#@C} zago1zm|w3-HB(f2Q~GB6IM&@(7dPhRM4#m1V9egMTPiPc|9q>Nx(~KJDL?u1WLRrx z+M$21Ebg)V+q&}E&fC^ClkaI&t-kg!y<}DH%b@D`-+o5@r(ar~5Y0H&W<BqT`pa+I zrQ)6cOjZuL)v?BY)6C6vrtx*=8aFj1<HT*<H@_3*%k&js<~hn`rs<qH%dds?)`ZlY zm-$S>2V`vA3)f!H|CXwA=#l8rz2}!!PmNmdvCU?}lkS_-ep+0aYqurwqW+2gP1ovW zt&CPhMEpLb|3hy7I@zzDX&m#GGPp&&Yx@<olu3be7l%O&<K0<VV%ywiC9Pe5CSo>M zN81tMmO1{8_cavGu95rb$*lQt2b&GUAv3?(+l*dx__vx&2;TWjL)Fi@qfxQYNV#p_ z@%N?|#j5vSnWOly^TdXyuY~IpWpABWbo5^ELM}F!Q-4oOb}zD!^$)ricKqA(qW+Ru zXAHG-xkP^Y+fGmqIIcOz*U|lv+=YF+=X0*xm?Lq#YcZ?)nV`f&xlUzmldoQ0c#5+> zJ16ORsnz%S?e;J3Rn`1!_;;_TwR6X0#nQvs(~i&8aOTQC_{+GE!Q4?S*ns_wh-s&C z*(Vk!_PK`w4Xz}w-0x}Za&+;86|1JddZeD<)nyy>bLE{6QgV)6xf*-C%L;EubF?K) zD|*w$yy6bixrjf@KR-CI*l`uh5)aQ)-K)-T;B(n5-}~%oUP$joS3_BE<Cab5H~Y+E zti4+oZ|?Nf)&I`T8&VH6b}j8$(~|bC*)T3`Z3f%dxzfqC5eqGq^fu3~<}FcpxGec# z!mSBkFWItRe;NK($glK>*yZoM+156az85)MZ`}K4ab!WU<2AP_ca;{$zOfW%>5J*x zetWM#fYQ7UpOpQpDlhJN!DMzco6DL*TJ80Ev7d^!81Li<tCpt+>OXZ_E_3k>%YUDy zEv!M(%%)72IJO(xh;2-p>H9(X`j%XKxdnOu|Lu8n#p^xa+u1j*4T8%4Y9Dg!nANgf z`gT{d-S?yVmjq>v;_vU35kB(C^Q8Ls>q=4{>?b=I^<FYhvYHZP!}Et>`U8gY*tB;Y z!X1h?7tdhXDt&I-LI0d{Gj={X)%@Yc8P-;ZWr4qQl@1v$m3=I+<jp3*jjVk-FZN`w zT)scT;=1|l1>O5AjRdXvPKk<Y-rM<T)%A`4et*3w9&7YLD^ODVhQ`C2?<-F-{#nd^ z$xzim8D2VaiW-Wsh$Lmr7xlgxQR}V}cWAG!`_(P(?$-?r4HOMH*;uvtn3<$l8CXO* mJ8Y!w|0unBy2wC4<ixN4tpN{Dvv4HxUw`#7%G(uGN&*0kPfV2n literal 0 HcmV?d00001 diff --git a/roles/ca/files/CA/private/dsoclab-haproxy.key b/roles/ca/files/CA/private/dsoclab-haproxy.key new file mode 100644 index 0000000..abcca5e --- /dev/null +++ b/roles/ca/files/CA/private/dsoclab-haproxy.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDJxyIzCwsPoIzE +qYE3vVEvRzL6G4hFsbsRQz3es3Bn14s5Wo8T+y94CLGxMsbRDuTTLjrbhNvSZWsm +JGzXFuWlkI4CRhMCCpZmRoe3sO5WTDzYrkx971uqbgGOif5Mud5suuQ/jfjXOu2y +KZpbrFqGZgXzGS9ZjXyLapceQ4o2gLLp4YT2lLwTETG40lpy7WjDsTfkW5GCYqoT +8rbgOqqFZnAKqa1cp1L/3PmZXuUV1Qz+zSfLmJ5aacpxdDHmJt/s0kJDufMEjix6 +KKb5jrpkPGkOrPXc1fMqUEdQ1Iz17jEIc2kfrkIdUoRdR2jdox8HV+w+ng0jeBZB +vGjyT+kZAgMBAAECggEAUcxwiNDJQySK7I7q23XcG5Z5i/rtW5OZin3/7vA/eVlg +D3gu2KLTs42Su4siHk4zZYkwQx2xH7INpgDOPsQBhQT9DN7rhcBVCFE/Y7BObp2p +bQ375HHMb2L5Lpeyh9gx21JIhZtAbcBt6/QBp3hPmnxxnQNwtpUtEDe923714PHD +SfJ1Nd+mgeJ3ShPrk2jhcDdU82/mQrk5eH8M5QJqlTEWCvBgJaKhBf89T2XrX8jf +oPzeVijOqgLg49QEtAPmI98GlE1OAp3boFx4/QA/s76pgWZhYIm1hcm1AguYhQvJ +bi96IgdgVQQp/y7L+ix8zsq+YRxwPuCSBl+9BotYoQKBgQDm4neNC87XV4RhGuHG +w8WpFXFe1uOucPfyfTMmjifh61GZa4aWgBQByBQxBs729MOr9TFrNApTGWPO8Lag +ANnREyNndaUAUFgtCdY7Gc99deWyIx861aAVU7GGIFVkCo3OK0twbbyzqOj+B+H8 +c/P1tXXMayt/gPVuRDj7sq90VwKBgQDfuh6Clxa2sq0GdKsRkiDXaY8eZxJZchYw ++0MsYQjX8hPOGn0YWGy14ppE7JEPTEWSRuzCf5cwem/em8AIESgdCUWcGkgcQO5n +DvZeXrHHpVrTmGE5xEVNYrD/NPY7VizUsyLNvn5yC4hyByWkwLV+AUGpACE3HP2s +7xTakmmoDwKBgHKEfXuuEafptrVbWgT2cYHOKu85crDBQ5o40zgaZlm+GDkahiT7 +3fCMRseScvE2sh8GfL6Jj11sSH8KEesGwQLclUDpry+aqkGckW+6+5lk8ssKdKD/ ++GjbnD/EpdX7Dh7mhoJ7S49pBjeJvWM0OBr1KDp+JZMWaaWJnSHqnO/9AoGAXvM4 +m6fP5f3y3PiK2cwwz/tm2DpaWUfID0Wz/pO4Ex4UNbacPMbabF8dpf7Ymat/I1Oi +i/FmkxaDf/COEV5mrdwPhO7Kh+MuyuJYwThjLx4IbCERsliQKQWnpMgvcINkR2k3 +biZYt8IZSHusCD4ZSL7zxOvfLOrK5qgZK6JT4RUCgYEAk94TNC+rYRZOfOIaYA7+ +K1qTQAe8tawTBlKauXptWCzMFtMSEwozuHuxgnyAS/uRUKFMgRk00KrSvnuyGEBX +5QxqqhBOMvGDs672q/kVZ5C9M06+y5+Zpg0Mf3r+zOBqB5tCASnl2KfOCZkAt8rV +kyb4KyOsi81/fpVM/WeOL7w= +-----END PRIVATE KEY----- diff --git a/roles/ca/files/CA/private/dsoclab-keycloak.key b/roles/ca/files/CA/private/dsoclab-keycloak.key new file mode 100644 index 0000000..8c5ebed --- /dev/null +++ b/roles/ca/files/CA/private/dsoclab-keycloak.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDqqeprL2ycn22c +iU4BusbAMt9ZJiuV9MI9yH4izrZ4A+giKIGcmqanuv0FZqNQgYVxwdnqvCHhXQqH +e75VsH0BV95M/jrFyVR3LhX8Egf475979wkBcHVTO9yxDGVNScT7HUIgb4FFQtPb +HUxXGx07gTnuss+VSynQqDmY1pM2mb/FQyaNTdttJDv8Fnah/W/GGRHHEg2AFkyI +2iwJeD0bfGzs254BUF+jVn/UO6Qm0m1Ce4hOjWTtHhoOBVhlWEeDYJ607RXOck+g +tSLdn6TaiIb+y4Rucj0AQtqLhSry79fuu4VCurn72Z3SLFgPfAIjt0bQaQY3QJ1Y +dInKtxLlAgMBAAECggEBAIj6HCLq8NxP15zLLSSnUQK571PLix+iWovT74UD4tEV +frgJqvat81/vL2iqq+P/ZtSrUjfKD4DMXawOGGFOfvl8v/9zWv0+8zYKSbz1DYBK +525mGfSkH2gxhjY2xR8jU389ae8jB3NVefLqHDiwVBT67sUdzTwZPtRUjiJgBliU +soJCsCutHAy7GW68N79F0BQItHhjMt02fYybnFxNvBntD4lodZDn7K9iqBoZPduX +TBsH1FcwZQyvQuiUlJgjUFM//5zrZUMjErv+3ev5c/WdpY4ycbo6VVBGZouVbyeX +RAWeDUE1nrsEsLBSnTkXVInFjPS6mBxsIi/+hlf6XCECgYEA+bWYDKPgelSe8ii5 +mK94wcLr6MybO+GrBHT4lIP1UggGsvPtXTifNvgGrYx90gmmL6F9QWHE+4lxyh5L +yEXCTHXl4QopgZCxWnnKekz0ma0lFlGYGr4KA0Z3Ntp+sCb/hcqVW/n24wVhNnmo +z3ztlSI/GY3B598R7dO9sR/RoYkCgYEA8JNKbTegmeeaAyBehEPy3eajAiT6759p +7m6Ml1P6IC3Ff3fllJrNWRi+JDKnJF9SUePOVWLWSgYSJyFLoiWK1CzoyLPdbcW9 +Ap9XNzD/aoDi6DBbKCFhRpBCsmTPnT8eFvA9PhuYY60w2UoM7byH+i2aJ1Do3izl +tLsHJbcT230CgYEA5S4Sl/9MBlpl6xEPjh/2L7drdyVaj/IFWLjWcNBPtnMhWtrf +joBqODQZRO09iSlL+kk3wWsvNEEoS33UxcGomy5Vxl3iTET1UXmYKPk6QVUVRc+r +T1f9rpXc0l5kid2xBSUyQdFAE4obd7jfA1fAYfClgxmEzv//34xHfCoc5ykCgYEA +01sD00pA3ZXc+AwzHY64y3z6D0M/9s+d+GzFNZoAsM6lqaRDXbhW2oTjX9fkgg8A +upMiTl/kFeqZfilBUnYbLuc5qEJlMjC8KpakwAdbDk2njAgXvfz9gknxXts0j1jJ +bauokm0aB9A7j1sAWsj8ya3QtePegnr9YDfEQr1CQ90CgYBfAQaYG9ldXcxTlERG +jOGu0bh9DtnmwsenwTZQD4mNHpvL0MkmIQxR5FAL8XXbNBq50zCiOapLLrhdqbh0 +ih3WoOdqxLIDQtAJYs3ANhOmEAxvQPxpPKhRHRKPGXxyzgW9zeQ08GpYoR/M7VRF +TypqufvopzWOpbxpgbfiJQmd8g== +-----END PRIVATE KEY----- diff --git a/roles/ca/files/CA/private/dsoclab-keycloak.p12 b/roles/ca/files/CA/private/dsoclab-keycloak.p12 new file mode 100644 index 0000000000000000000000000000000000000000..41e7ba3a2fe1ed26a9e29ffe24a723a5812760d3 GIT binary patch literal 3397 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 literal 0 HcmV?d00001 diff --git a/roles/ca/files/CA/private/dsoclab-kibana.key b/roles/ca/files/CA/private/dsoclab-kibana.key new file mode 100644 index 0000000..9eec2e4 --- /dev/null +++ b/roles/ca/files/CA/private/dsoclab-kibana.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDOT8kPhE1Oe9wR +kMlJqPNgRKglG1mDZAvR4LxZUCKl9Yh6yEBl5CI9d9KPnjAXgF4ghbxwZ2HL2OKf +mnx7puhOeXvNhm4mUjdFtqu3b0CPelWL0ZHMIW9VN1A7ch8tO791R5GIahzqOd2L +JTFVDrxSb78Llu/jElzaYyJU5bOViwKeVz57T6D1bweoW0V8yzSDdzSlsf8FEoiP +zMQFXennfSsS+rtNJfT3BOeVBpXqqcR1TvcDZy2cmvQB9iqNbG3QWanOHxKxdjnI +B9Qgcx7znLlngzuofG77huo/ao6YTDmp0U2+nwpDSRv9CWe2YnH9h5pjJQCqx6FN +IxLjVg9vAgMBAAECggEBAKJC7gdeLs8Da1oFXcqpLoEQfo5wrD5CeWlgL8Ku3BFa +wzSOOtfoTWW6z8hUyc4yD9XUWRiutqP0uIh+oFlANIVD1rMWf5t0HjSeLv/eaBBw +Tsfg06KQyVdkYZ3fa9XPoA1FdJitnIA7cpr1bY9QP502djNPSux0jMLWJTJQVqXN +fXykLoIvB8xIPWbJAJMgF75turJMFT3wGN+qjCzbsZqIHmqp4eaKoH4Mz+Y6SJcA +uSzCdGKVPxHUVZbtkXn5GZXFx5YQ0wwRHJRWQ6Fn49HtKc5vBc7PN8fG18+s3DA2 +BR7MLgIaHGBKsnJgcOOZQiRCQP/uBBEIxIF0qU3h5UECgYEA6aiUvvBNcShCRaaH +Wf5GpYTT1ANNv5+3sCTy4KKt3yCxyyn5ENEFL1i8w6/LffGIAsoLnoEcxWV/fhLy +ZH5FzIYxlR/w2rddUyOXENx/9CWw/IhL91U9525JCJ0B0TBkZ9842ORX7kcI8+0g +4oaC5bDYTZotAto4ftNIzmfznesCgYEA4gnREIl4nv9v28x5aUS+HhSpsH9kkVrr +FQ0amCJSHu4U9J39MXS3Fju3rlmZG59J9ymEQ4tr0Hq3S+tsTy4hP5d67/KtoxKr +3smyKduX6gfOmEy3TjCSc+OMebM7lX0crX2+0JCm355yDC8fxdAGxpmqYvwmVw9Q +NbIb2mHR/40CgYEAjshlnQhbSnq/hLBupZ+srBivGS+rox2Gsizh/kNq3J6uBuhv +Osd/0572Ot6CC0Q9SPcOgp2DZ1zOu8v4M1C2dnTKd8Y8+Gp0rQlilvsndZpSvP7M +7Sc53OKX3puTMLHRqWfO5TskQIdIAUc2gTaRZqragxFj0App25ZhN0BurmECgYEA +uM8L5vhu7ZitjUk17zKsOo3sW4kc4ZczY4fOOZq+B9niukm+LMRfuUbkHCHXg/UN +lY6VPGBuqwraeLEoYei2eHbSpgKFozHt4f6Is55+K3Nsn6sBqGUgKK5gOVSon8Wm +P9byvzW1qlmyp3GUCbjXAWO8IqhEdKPpka1pBnk6KDUCgYAhGqRGJ7NG4+Wz/0/5 +Z/IQeEsLO4lB7EuIADn9udmrYgYqv7sHDzhIUOviJPRgf2ag68LEXXZsC029famu +/wbhD6pw1yq0QKGDcgH/LzHL9+74TqRlT7drPyOFPqOGPKtc88wL/aXRC90n7dsT +jFEbunnLOfUUjgxXiJpNU0FtjQ== +-----END PRIVATE KEY----- diff --git a/roles/ca/files/CA/private/dsoclab-kibana.p12 b/roles/ca/files/CA/private/dsoclab-kibana.p12 new file mode 100644 index 0000000000000000000000000000000000000000..f9e8737d615ab77c25857cf3b3c8eb2d77f03104 GIT binary patch literal 3397 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 literal 0 HcmV?d00001 diff --git a/roles/ca/files/CA/private/dsoclab-misp.key b/roles/ca/files/CA/private/dsoclab-misp.key new file mode 100644 index 0000000..9b8a5d6 --- /dev/null +++ b/roles/ca/files/CA/private/dsoclab-misp.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDPsRvnoq5wgXGl +V0YULkdkiU69ffCCLQMZ1odEs0K/cngDzJGYWzZCFFXighYSWGBURI8V9hsfdjYi +Luis0zwK30bH8QS8Or/+S48qU4PjUIIGCfwq+v6UoHt/wj4LPtxyuJQQCguQ/UV2 +KYVSvw8gQ3j+O9NJII+apQyJuw6X8mewLfAXUyWmm0tkDnKKv8njjkG77fMzalVf +jVKE+qNnGntx+5DxX2HfROoLd4jy5cGDcVjHWIqbOUVZTuDbFraWcpCM7sITdeoV +xmvi3DreyAfeGIQtlrbETOFKTRNvbJod5flvzH4bSjp1Grk3sG2gG2k18bbmwqXT +VtNXxw6LAgMBAAECggEBAIb/4VqMVQTOLvfBJc0iU8eWtLbZMMb8ySI3Xs+aEc3t +cvNNOmolB7ymCTllQ0GDboH32mX1BaZKqV9IzHbiCwoqHZEDKgfLzFZX+OQTSwwr +nYidXur1IRuswPnHYZrfrl1net5+GQyShF8NGBs0E3nuQaxHaMwEvTNRCzhPfWnn +u/g3IExtSdE/XSxRnTGRQqSnMAf9OXs9bw/iTSR5cQO2mW/dRLr4aUCQOJ5Hx4mO +ub172vkNeNwOSUzc9FjtZyQZOtn25WoS7SusK7y9ToDqqR5OcI5M+kxq+fQo8Wvu +XlIeOvTKTHOBaih6QYEzHo9zq893I/c0xiOmfOr0v7kCgYEA7WQ7g5z+2Lyt35Sq +XmzyQyAEbx+PMPc7yTQC62YuvpEAaDFDHMphDw1zM2mraLO+2IuBuDz7CTlsf1zl +xwEJoEZa3odRi2McpqiUVQgJYD+bCUv35J8X93K4/7tLHvXDJQ3BKBNNoLHxjD5P +SlR5xBCFwZiiXAkquWpZaaWAbg0CgYEA3/jjf723dlWRrVcG/m7VJrhTWq10Jltp +8y786INKU1IUrwqFt7ph4c9/Jbop40QVkJKzsPojzWreDf3EZYGnBVhOLA5p4MC0 +X1ZTzN86dn1Y3SDCopGnJVP8X2EdDGfsTkfXxOjRCzSPOyZzxzseACw9WWAmullU +zQs4K6/4YPcCgYB117znb8bepoMVqwILz79PbRRmaV82qnRGRAhy/I2V0ftGvbWY +FCqsQzv9uKX7WscRTed+It9nS9c9PkteR3iU1HgFYV0seW3emW7Q6yVkXw7CRbDw +D73g+1U0ta/r1Yoi2boZ/8MYU10aBlBsEJVFrAIKAZAPagmIc2+hTyP6/QKBgQDX +FHSr3C0NJzkhA7zEovxwFXx+TKmImCqTjKD0S/gZMW6JdYpZmFOc/Jz2RuMoyt4G +msqSfnPZNPIO744liC8zM8zGBAVq/sN39je9OvUyikbG+0nNwh+H+jIWCfVST44e +0mEDSCxPHWcaf1+ZiEzUD6fOZ0Zpl5WW3lpPocncmwKBgQDIR7uJctv3UZkEO+oq +g1Q4jLUYJFUb/3fk1mEmpq+b90e/xQMqZHlu/KHiHcKrukdWj67d/LY4mrw4DebR +PTgdj9e0O8V9M7BYxDN+zEYrvmmY4A+tg07zm8aqmhCNKpOMsW0MkKFFuRiMkiCh +bopZVfjdd+d/56vLZW+GSBaCew== +-----END PRIVATE KEY----- diff --git a/roles/ca/files/CA/private/dsoclab-misp.p12 b/roles/ca/files/CA/private/dsoclab-misp.p12 new file mode 100644 index 0000000000000000000000000000000000000000..34e63cf61702da91592e85b97cc2c41066f4089a GIT binary patch literal 3389 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 literal 0 HcmV?d00001 diff --git a/roles/ca/files/CA/private/dsoclab-nifi-1.key b/roles/ca/files/CA/private/dsoclab-nifi-1.key new file mode 100644 index 0000000..2d054af --- /dev/null +++ b/roles/ca/files/CA/private/dsoclab-nifi-1.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDDr++3oZVHX1Xq +fujW/dXjGWguch+QYqh5dtjS9lHfcYA3Wux9+214bjf+5RvI1XPkyaXL6EpIJsbg +pl4ULJCxgbJpMeJEhZf1YBKIBp2Nz0qid7PZ//NBQEwh4XONmIIvNycMJNhnvccF +UEDFqdDkP7sMcil8vgYBlgO4oELEb2/aqhc0X17zcw53tXqaWeM80TlQFy9TGAWC +NCkbGVYuwtskeVEPqNlmPHIeoPcD1unlxrm+lOSEvc2TJus7F7vN5Vgl8ig1pLFw +3zJUhfY8IJ+Ii12DosQeMdmhdh0uPPh4ZKTdOrJWZb+oKqjtYsliLHK9nX5rH4Dq +vDNgR9MPAgMBAAECggEAJ4fH/il3FXbtzTQb5ypZ5cmBITjOpYU4kWjvvhYiTegI +xaXpdj2vTI+/Yg94QGbWRZZylrFzKAYlUMZq5Npn1GPl3ZhFJCB0pQ3mUHI9q6L/ +abiSrWwmAL1zY7i+dhEj41PZ4Hsk+Df/F1Sx8PwwBZvWNlpthRSB9BoQ4GAHfNTH +qkJPz7IZ8ZCWZRRve71+h7rBSJVnrz3iWUmKgGigFWErD/vW0PpD4apGkwe9egkR +2MDvf+x/QQ1vudzYHJEkKg2OMdsKokLmoJGmSh3Cq1dswAjnBqM+MPXUklHK6gZm +L3x3GwBowQSVI/EHJT6MeMyZSGAwJlouX0oN/Prg2QKBgQDkY2ZTbV7ih1wgIJDS +hKYqo7swHOo84JaMtz2FZBfv7KdYYUwAQObPD7jnrvV6EqI6yIOfo0WN28obz6fw +rgugYeAlFka5g1Gg5fTGCgWIy8yTm5RvOrNn7lOsE8xx1dPuSqniCtTHjGVqc0EJ +6yL+uZSKfL3Mgfli/RHTXmcv1QKBgQDbWHE5ZyudNF61xHAn6sFjESSOwLA4LsIG +qeZN0l1WIZjwq33HrK9YK4F3k7AySYGlla03rOWVArM13fAPlNq+1WRZ4a6iArdx +s3Wri9b7spzxz+OD9e+sPMjR3+odSAamZyWzk0++F+wQlu13rCX2kNO71laWOrSE +u6vvmg+NUwKBgQClMYxy7ZoDCdtF1ahKzO2Py+v6Sf/XVq8uSt/x2stBnBAS6hVZ +3ZfUz090LOWbjVzQXfZugl8t03slkJatjIYWVJUW3jz7tBNX6NyaXedQ4fAwGAlO +Rsw7cXQN9CgdcoefRVwJhsIPL+qvC3xQm0YtrrfVT5LNGHn08o1xMEg8nQKBgBDy +3Iza8/vJuCfDbgcnlJnbEUAWk4dD1ao+JpWM07l8Dx1JowZyyXm+otpihxLbqzDo +R+Itce/5rW9UHuCVV/G2+3IWhi/ulc4rV8RRoeMBAi+NKL9hmYtthvbwnl502k6x +WbBuiZLetlbx0peUrbpHppS1Eyu4jYpUFg0Fkn4RAoGAZsuipVjJpM/nj+aS6aUJ ++FNYaqZRsSpad/IY509ZD9G8lf/ANNxjwZuX4P3Im/m3772LcCe2LEv4f8sOfaF6 +wz/noWgJxaTqSaNmugNDhPJpXTgdgsTeqnq20MtHrpi4ZXUs21CDsJph5dlS/gWl +AQQhj15wJkiYTHv093f2vaY= +-----END PRIVATE KEY----- diff --git a/roles/ca/files/CA/private/dsoclab-nifi-1.p12 b/roles/ca/files/CA/private/dsoclab-nifi-1.p12 new file mode 100644 index 0000000000000000000000000000000000000000..0076ad1207c243f877de929e2424ed953f60469c GIT binary patch literal 3397 zcmXqL;&o(VWHxBxWoP5mYV&CO&dbQoxS)yW2TK#r7lS6A4+c%_%Mns+3!2zx7&Ng@ zVPa%3Xkzb0$S@knuyH|6;9+Dl;A7#4ZIbWgSC<rJV&Y(EXkt%zP#db>QP)$rSZBd} zzN;mSmBBNYo|TqpvE9D?<G;ttE*bo|74&xIs~-kB6V5CD7nEb@?|WXz!p3o6&*wMS zFE5DsFL`;vyF8{H0U6&_sy5{B^%jijzoHb<H%E_4Le<JYlJ!JL<bT$TNymQiYjEoS z3O=$uaIZ*rRVM#cuA3!Hj-RFSDwpo<+v3o0)x>}Hg`iWc7q36`NpRs<@6yE2!r&{& zw!JUzgXpj55SAxxrj2)YtuCIu;hFc<Ro1$j`xSXpTz4(nUViRkknC9|M#b&wfuS8g z;=g~}8OpL)?EAgNS6myK+0NAZCU)F9nHIF8gGGPtV$L+T;O0d=31<&Y{<6M6)ZuNX zM0VDn86qsTd`*icC%c82ZG6ac=$0MJRyiR(xrHa|MB|lb^gn1jQQ*>XrBMIS>m7>? z&(2hw$`e(x@Ma6wy0r&)GKQ8N=UkrD6~Jv(wxb~PY=q)@RvCpk%Sx;ldM^qz`8UO+ zqN~6$`1bFWUpA)Ic30kWvA_3m(~Xo#!q3eLxti>4i@1yOgD%A1XGy*!a^-{kC9@+& z3eIN@nlpFKXQ=z{vee^JTlJn<Q3fhCdgbEt<qesVvNQhNp4fS?M(n19z*dp{#!c<k zn@aWMl*-C3GhDW3xv0LN#WCXFbe?@X^LH$Y5IKF}ctO^IuRMBx&3$iZ1f6)Hxv*J# z+ok7*Oba)CKV)7pWr|M56!qAU4z)QCmoiyo`tR)9S8eXH<Ke+mQId0A|H_vBzPF)9 ze#Mq^;f$M&;-9_>t_kI@&TPr~8=BU1+M->}N;CI+W}ei9ZH>3Sa7<|X8}nFcL#u+# zy)}JIA*PaZ-!1zSallo;Y1@Ju<y+=2c(9Pu%Exo!K8G{UmKSdSroH&+C7!F7+RjPY zR;<+ibinVi>!f3@Yx>#r=Xag+4A`=;Xxhi<=G?@Rz%ymlsX6=CE9^S5ku|~7SToT> z<l^u9Y_Fni?#l@Zx;h^J*t2NE%re#T&+iY+-g5fwZ);gThtJ#9j%V3!n-jvgMR|`u z&$X@QYp?85GXB)IbMcW#o*Ch`Uze=qe7D3VySTSpQ$oaSgV>Kbe?L}Ab+rXg@ezw| zJs<M@{0BZ}hb`*$hGjQA-wHkHSaNIjw29f9R!ur)_5N|K>dGZwr}Qh`yO$Sz{``T$ zvXWM-bYD}uxAoS77lIoaIWqe1ZOeYSb=sW`XAOequ_W6RT=7l4u3Mx%Z~aa_ucum# zFEyn1m#e>i?kBS0j?3E~8yz2;bZPDt+Yf~I*B;a@|20+Z?TO-5J9t9VIq&s*{8HN* zontsR@p`P-kJWPdWk(nnWIL+fITbiZC!SZJd-ruot=s!%cPdO1Q;jlQ_{S{l%IgR7 zV_9yV>3s3id8cU8frl4LcI$idO_Ub0<_PF9yu3G!Z}!Ud_q%w1-q2Z{vGsvx#UwxT z9icH>?p=zV`0$nX<|F+A>$G3%3aIn4A8g&q(rNbex@FSt&c)?tTOBkH{`I(Q{#U2S z@-KgK#8>4Xm8$d3-cIVg{7lC->94=mZkHCr6=r!BUZ#5A9$xUCvwF|u2l*F$OW4$v z(#lnju_Ur=zwx&`czXNnPfyZkE&A{+AntZSsnz<|+tQmJ6_!UC{Ev63{jl_#{G@y5 z^rlV|)IO8Juv3xG_G09wo%|O+gzcOWvC`wSt0-@~#v`S3-;ON{X%Y6yW{R%=7<lmZ z&S_y+XS4s-UAD|xVXB^X`h_F+9-g{b%2fT$&tv|b8<$T{Zu4EWxUsy%#I(v`&WEJx zN3AK=&$0!LT;64G-+e4P+BE#g>Me$9R*fPBUp8{OUK3*q|6qOT|FczWR$@{+f4pe6 z)XDU7n4vzcBeY`8m6_~E%I@(kyYPdNv01#|MB;w;fhp6LUA@wK|Cq3#-}G0`x?87* ze&=mC@9cJtLEzZ?i|St|e=N!}dTrE@Z}(LF&bQ}s{sq5OzGc_6De&iS+opM2ojce# zdbQNFU*=O1Cx`By{!?|e<HNoie36ck+qM7ScFGdI!MDO+G&$xt1KW$RqN%s)w<zS_ ze|7%VvXUjLleXC2pL%2||6EIdk-UXpl0HbOi3WA@XkPn&$$Gxc;RZK-xhUUGtt6jl z*A%9Y7O@{x(!boT%hvdLL{~QKT<kyZ@7LLuE?wWfd)m~f_I%z0tJLJ*DXyBKC2@T1 zvAItVoe^0ub8A}Pj}MKX9?m)z*Oq_t@&3Mkwl1R|R%wnc#!-8Md!7H4JZIUrKbG;x zQ_*v|2PexnTb*BNf8M>!I^ygnR);IMCWuLd+Rd<d-YnPqU~5B&z+s~ap8FMpJq2G( z&n(%Jx=Y!qy?Xfu?j6;VEc@AC8n&uB@mF`vJhlAy3KxER;S28fzwCIluBg-7cv|@G zc~1^0iR?eqx8z#*&!hth|F)IS>pa;tDJ#6%VZPG>Z}A|ZV{!7Igx>!V(b(8oo2436 z5~J30V)@f>gDU}YB~=#>yX}3j^P$Gn9m192`TNebGG|I>Fg65zdVi`)_i^Z#7MIz* zayy?|<gL!`IyX&H?Fqx<xkq;j?oi`%c<wnrWsSDO*0K=&a`vwc?_a3~CciqDw05^$ zszDR0BT|LDpo!IprHNI~povw>povwDjT=@yb1^b4XkvM1(8Th}0J+v?2G!b}^O-_> zTv)h3wKhu=%ZbTrmi_HdE?}Bo{PLTpU+u~3r{vFd=LWm+KF*Lm_2l&r<KT@lE&gB5 zhA!IOIP*()`kUwkPS<-sUf*+bDd?Wcm(v(5Q|JC$K6T>$JJV0GCi-l;o%`dX$kxt1 z?q7;D+s&@7)_9${ENGkBr!z;awS4b29gNx+F#oHx?Cq*M3jYJRkNoqy8&z+)+wZ?X z>6=(3@9vn~q%5xDd%JaZHeT7<Q|snxf5=```rE~C$FCmX_#xv~y`$vNitgo)db|Z= zH-C+M`E-Mt+UM?!XPZJdIlbp$i+B<x)@;_|7U&UsU~Ry4$tt0B7JPzJj;gNgZ!?~q zC|%-I-(dA>iu{%@nO{Of_j=A<QWB!VtEaK*t;Xl2XZM_z->+`SXtZ9=`Fj7J{GC15 zgFl}45ejz<P`I*|yZm8{Tg-8j>zA&r4Ey=wt4mZ+ukBKo37U)v$rBGe(v2z?vQ_Fo z_~^OfHY4p@_g-9$J}&4tled4xbD1CdjE5%wNSJ<bYIe^4=_~lwnp7vAD>CmCoKn4S zgY3pV=DY`=>2NM~Fbh#CUY@jL>e2U`omkg={;93MljFvl3N`(A1*MVulQwK{Gbla! zsh?>pi~4od5Z~oH`7VfRA7{Pg8IZhb`iC8SGr287&u8^aKdchFCXUHxqDSmzuU|sJ zi2|E~SM^^?Y418T@703TOZVQ-DK}4Bx2DFzYSWGj^Bz1goD{NPqmXybkG0S0Quk_Y z`M$ZRj`b7ktQD(lw=aA6QtF9o<eO{WUfC^&-*YC0Rv+%wXEi!tH21Gz+n(4TVm~YQ zthLg~xw`NU+l%U-4!y^@UBsBqEj*UI$oPK8$Bh4Hr}XwmS>(Uju*|_SNKi|Hd)9m3 zIo}0h%r@M+6PvXDr;MoeuifRm9Y2CIEhm4w^`>#^zG#icx{rAgdvezZJ`b6jx%b`i zrloGWCvMMXJaheaQ-X%a%||Z2ox8#nO^$5e<Ewr=e{%Du9{Zi{`$GhnT}!qa&v@Ud zKa1ts`(1w?9j#(<{XTK|)B}c_1U~K+;&9(4!Mp8GC&%(14E^tz<}OGN6Lfv$th4{& zjE|3Q<pd;(JQABEd%1LXW`CzZTI=6OS@yM$mz|P7XR`nIx;%|;t!0<=H0M^gIUj4E z5fjG!YvK<^n}1i<`t}wt@SFa_YOmRL>864P?r%4*npB_aEhv8aR><js`m22kGSbTC zP7_)dDj81h%jCGSf7$+UYmPd{&1)~m9+dq0{;lW<d((w2g{`SGC62kyTb%f9^)bDd zXVffqJufs?%{>;Bc<0e8wy0Crzg)YvEzM-bc7w|c5A!k~om#@K+OPVO#qM~9nAtS@ z9nq`hcdOXH%VqLp&D#4!Y4*+9%eCK{r_@c3Q02(t3()H5Xypz{wTl-^d#LOAK>Exw zwTU%hYc_6K_)yHNQvd2|JqzvS67StMRDGW_OLW7j9Fv_stSOg@SD#F-NPe-@^=+H~ zY#BROMoo{KrjwVijeX~`qgQX;53U~9Bl0foy;-8B9zU*^M_%$ujDND@n6~#f*-D0` z`?Xq(!YBP+Ga;lxb?OB3ukpKov<Fz;Re#{IO-}ml(&NnvCh`V5(k8J#@O$=k|L^=e z%6iM<?=`bk9A4aI`)x)o|LxNcCAoR|FP_-XU|HxH|2CnuyN%azmqYE92fu98&pnkt z$zZ5zpbRe^IYkY{SVY!)?NL4%<!^B}s_dyW`_iX#PI1&37#b)VaI&##^D#3?u`;lT mM0`zA5i#{unO7`1SC6sfsP~=+CM+EG5A!4vE<`bbN=X1(3{!Ui literal 0 HcmV?d00001 diff --git a/roles/ca/files/CA/private/dsoclab-nifi-2.key b/roles/ca/files/CA/private/dsoclab-nifi-2.key new file mode 100644 index 0000000..a6d1733 --- /dev/null +++ b/roles/ca/files/CA/private/dsoclab-nifi-2.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCst0vi1Yd/jhWb +z8AX69uM4xuDwGm5BpGgm8Y13C/ojHIoUAKCxbHr2tnjnZXS2d3hCDVtg3OVmLoZ +/T4EZ5oJN0V50x0L7ApDy7gkzGhczi6u20jYblrzMb6HKIZ2jo+NaJUfcmxlSvye +uH3ig+I9sDBdwXMGrpv3mlS4AmuCkBEIP9ZfWVzfqiVZwGd6/OHwyUqL4DG2UxPC +v4xPOubtETCmQSatVo8DC62HbLJzxC5BPpkatilt4Nyvj0Vu1WkXDfFYpn6MgDJy +JCHS6bREI/YQj59kf+/mq/FDlNCKlw7kkb2GuR9C9JY5hQUm7ZABkRGjHwRbRv8b +qXR32xgDAgMBAAECggEAIutEGm5VYMKXN9M+4Rc8YjWgYHjMZy4ezzvvTQBhZ0DN +67yRZWMW37p1hwFbQy/tHgwM0UFcYwhnx81ddoKDsA1OrJy0KK7mPGK5ribtiqXc +5llLVwaouLZ78NOOq/WSrGJSk/MMW0ZX4LcoLF3BpfszLCFqYhV3Tw4Sxskmd1TY +DAIJ8P0mcAuiEw1G2VuVEsy8c6Ojkp/cJZudlhUk4J/Dqzhq3XcdRu+IoTOg1FTY +Tw6aW0dwW9niZWaTCzksjnsY6ydIoe6v2GMiCOzCnfmogAgfuTH8Hg2oDvJDqFel +zXNwxn52Q7HMvySnDn5j2BAYOyfybNkUDvjq170BkQKBgQDfwI+q22h24zg6ZLiC +0AlqdKNliU1qdtaXu1bU1Mm0/9/o70+TP6GUDeZ0xJVPDpgf/qULaY8k2H4Ucb7i +PNCPVYNF21qd591qaZA3i/YDNbXmzYNgy+hCPjY9+jW+DBEKOMDSCbUgUP9RJpNj +CgEadH2xvumPeuLLhFwnmDn3XQKBgQDFm7tWnpUiyOVWcdEZ+xXPiqRr3JZFcjHk +N3vSOVsS0xjaYPbyBnUNiw8Mxdm0xmaCCDHjv7lmIOCEUtD1YU/bp/e6UqvAULg7 +UasrT0h63eQPxS4tLpDaIjk5Zk7A/NFAHoTKrtbZEs1YONL8ltkrqOYUv4jaX1ae +76f+1/s23wKBgAUDDzTIjWJ8XHoSX3+uoUddLXvMw4sq9kuXyq4hxhLj2GQjWCj4 +N+pVFWBwNtf6f7XXwmKrDqXIo6pZkekHa7SKOdKKw1DeLLuBedWEsRIJVfXBjLvS +VXWGZzikLif/pTIRa2BJD2GV7uImdw603ql1Cou8twabvhDI+jd41XORAoGAW8b2 +fUZt8Zfom/uEqFJrUNcNgmMTD/H3pgz23y5wVA/jDRnX15SULNQXC1GgyUsUNPRl +Z2eWTg6a+BoWnsCxfE1Iyyq2Rj23MyW9IAJUoWwJDiIATk/ASu92MGiJzywca3FB +L3mAo5UN9hl+NH5DIvnw0lYa04FQE8Uu+zeIn3UCgYAgWQECDVgkUgoTtUZBmUAT +wL5cXXfmDnMNLVn2TJNQRDvLMkdI0naQ94Dxvky6BIbSqaKx67PA3I7yRIDUYhGZ +RM4RC0WpGtjxYmWyHkdClGLAJjSp4RPDUcCNAqmQhTySGCL4gBMalERbDzo16SSM +lyWQP3MOrilDi/GjbUi3JA== +-----END PRIVATE KEY----- diff --git a/roles/ca/files/CA/private/dsoclab-nifi-2.p12 b/roles/ca/files/CA/private/dsoclab-nifi-2.p12 new file mode 100644 index 0000000000000000000000000000000000000000..fdbd25a1e50851b8ea865781bc903dcc78a1cc8f GIT binary patch literal 3397 zcmXqL;&o(VWHxBxWoP5mYV&CO&dbQoxS)yW2TK#r7lS6A4+c%_%Mns+3!2zx7&Ng@ zVPa%3Xkzb0$S@knuyH|6;9+Dl;A7#CldqpBfAU)#6B7qRLlb+#*4<IrYbFNQ1q()2 zW$?s*US7GN>z8qJRdnn71gqz6;f*{YlMXy8c({r8OPyxkB+<{YQ;L@}DjKi+>1+1& z#m|-b+^6<36n_11d<xg`6UX~wtJXcLf9UW`w0+xL7e7U*eOu=In5kH#x7{&unV!kp zdv6t1{o=8xI_Ms8`rJDut)25L1h?I&w@_X$a;tmGYQ7cHiq>z`dP*O>t}xPmtzyCy z{BHImlgwquj$68IlL>3H^L-Nk;HqEA;c^BUkHS*@nI$_8KG;6z$aHHRlXl@PcjH9( z&ddwAx~16ctm6Tp>=$!#%AGvgqnobYeP4O;QLx#bDjV6<eOW7SE_BOx;pOe$b!~cY zS=#cRa1&4G&5a71jhH_jwV!n;YJ<68>-nVX%N0I{-@eMn9;1HQ;cnTtsctPZgk$F# zY*^^EOmTbE!6#yh&7rlwUMF_+rM*4&Dvl}Ux`Wn}K*QsGPJO;59Uc6}AB#21cb0FO z5g*m4(i}NCZqAV@MT!0bGiEM0!B97K+RQ&zev{5UEd96oM0fZ)c{>Bq^vcF7$4ehL zR@^F>rRSOcNoz)&F8>#ct6co95)Y>LatPXP{B51H&xG4NvG|C_xA(R2HrI4-ttfVW zA)EB}^c9cZx%+Ru>T<c=Gf81l+VwDowFd+YMd$ro{O-jY-**m-WeWPMofj_XdT=a8 z?1i`^=a%h8Kd-w_s1Lc_b4!D}`E$GAqu-~SuL-}su_<uIqt_R7L-h9gOZ0tqN~kEE zUADcYhi7F}iOb5udNvj348e*&LbDUj1iJ*r?YO%qUFVgB{d1*F`m1*)-D|nsx^gC4 zoderf2ai?rz6sA~P|IDWvEg9eU!HXj+CH6Rc~`#KRGPUoz3r40d+w2{8&|h}NV{R< zURmh8ef{ZtnedxmUta%Qv!Km=k6%ROY9|vB*&yK^%Vs4VGT5<GUM{=!i&uv9%d6Hu zjN^lN-mJYZchS5o^Q_-BgO~far%v8lENRB>=AE(ozT%NNt-l{UIot5Zj7w})^psRz z!=7tf4>9_^oab^lINfH+x3d2SkBU9+k%*S&mgat;S2K6joZ78RgMTaT=6lVV6n)U; zuv|gDrM=_*t#fPFKFO>7ARi_FarU}Rp3_}lOn5uBzLWQMV0zgf`@+JBuMWid8BW}@ z`+}@q;Vz%3kIDz_1Ua0a8&p3jE-&ui>iBbo=9HytQiN9WtT@$uapFVgSsa(_o(0?t z>s}H!i(zrvr^x}mCl+-qeG{Z%@TEP;<>%L+JF>q57AifMey_zYwB?1(fu%vYhd$j~ zU#<5hKIDDuMg7?;Tp!#|t~e4?Kj|cg1>a<zt*Vaio;^CZ=_0RSUx_v+v-huA?1y7- z%hkDeZLBtOm8d>!a)agFL8%UfzIVM#_5@GcvgrS|7?zbq_R=4@7C0xIOOI{3zv-pB zqwsf2=BCY-`ve5?&Twq5WqGW+M%X!iNdr$x&F++K2anv8m{GaT`c07Q!X+8&@>3?o z6#diOm}2$UraLa~vd!x9Z>k>`FvjS)FTD^d^Er!CNh9dY#H>WsZ5pzn+M?W1+Ya!a zzxC$oU0uz)rD9@7IKt$NU0R!NDX?v3KIx^W5hXQSt*XNArsmSa$xD~F94=J6eYMr< zhJSzQhu#aumFrH{EO^J-a9m}k?uROd36myeeJ>W@z4N0d$GqbiPyU_LW4bW;(w)32 zW3OLsDtc?QGOiYRRj^;%s(wo~lXtD-U2RoaA(kpxaleO5N@qJI*S!evXHeL@_QS>; z{<qh2ZW+HZe)%bbvu)<KtTv{l+7stYNI8CN!L{cMtW%E_Gso=O{cUCF#zwX+&xKAe zS-VQ|Ygc}4*sQC{Z|Cmf-xL({<+4{;)Ss8XFaHUWd*%P&pS(<ScYOZ*ABLBwxtY$X z;>v!YXE0;KO131wZ?jL_%XFQ$;mowj5f}FzSbDEK=J}7;Y+s*<>~!?{VEtj1<*G>@ zQnlw6ybcvERm?At|J&bL_A#APro;Mj_&;%{6Q|eos3<(^XSt#9mm`&F_qJoAk0i1$ z@toKg_~%V)<8*O`*><gt69cL{<#l(iytuWoeMis<waRZn<!AT2s;%Afz%OW>xt#n( zSG7Ms+i%X4JaVk<ue8*my}g(1{@lENMBe@BBVX-_f2Y2_(xL49etMSMp{Z9mDh?gu z3F-0;-oS8jcCX9N7wdk%c<}VaPS>xt@&y-~I83D0>2qz~Fw-HS?p&F8*(^W(D4kQ* z4hk|$g?hI7i}v-{R&rOH>ANuc+8=Mz+P^9KS=Y85$MVfjCvHo68_l|>B~W<lp%ZLw z^S-%H{N5B|z2#{RPu=xY!7Z7I<!bY$JF*&WxL^42e9+4On>Oag`Mo$gb)BE_C%(0b zhegfXLv|c%yFZ<Ga?-4r7pK_N&uTI|*NSLQ|6G5z?DN%yKf(iUt#-0=V|2?&y)1J_ zj^$_YPO}HQrx<MW7uFB3a$DDUp;*Hv#cI}zxpI!DMgQJ*of#Q=I-^6f<oy&8@rJ$A zN}S$q+x~3x|EF0AZT~jya+jGR=68PQlbZd@wEcC9E}S~`*UD+z<ZfSPv9750?|<fP zTz@9epo!HHsX|`R#A?LS#Hwe|#HwY`#Hz-|4Xd8H7?~C{vAi>AVtIv9Ycqpt?cnEk z{`TAdRRh)9EKMvYq*(Gl@V-0wh&k;1((2>O`QqJUrth3TGon^5d(Vl#bD!KW`*0-W zXXopAg{}4X_$#A!{84XnD`nnd6Ee+Cpl^Pi*AZLY@PqbYt3(d8m<hbf@4O~HV})I! z?vz}1lU2Ls9WL#Nx;KL-Ui{56!-MH@c6;p>`2F=-Wn*<-Y=*ayj(bYdFWWWQb4CBI zj@3K5UBPI}4FlP~9E*9J)^A=XYj*y`)17MUE8Gp9rzd@zwf@ZZfNP2(aW8A%eA4rC zVK~_)aKFBTX<HnVFz2+zfm@jMr<`_Kw6FBSBQ=9t@4dD<NZe4~&%`6ZGy8zZUr)Z! zL<5VL8(6<AV|bIg(8JYigZ;rRyH}e1o#!Kz5GKR;EpFq!!p{aXvc1)-!rBVwuTTv! zGj2{*dd^|fspNkn=;HMm>f6OcW~`Hpxy9<B^egevp8%FzpF<mRpUXN#-!3}qpD^Q@ z!)j-*oJDJ=Z#Z%+SNP7_?3>j#vpyFIuU=sxYxJi!?>bxBkuw2Nid_?~uGf-~m-4Ue zyO+19d~RNQ&OwIXO8@p<^3wnO=LWauX}gz7?i0+Ia^9IIzH9h+C-Or?@FY<&<^1CL zHMS8`S*>T=t7){lUsl^y_48vzEko!Br5Q6?zumHC<@;OW)pQ_tUZsCETfX7N%wU-< zuVP(4hCX}#+S}sm&U-D-3px6Yc5_bH;%K#6^+4ag?`yWQNtiBA<mi9Fa@R*(-0HW` zj@eq#>oYeUaB~TpdM)lu=e>KAd1KD1mA;Rb6mgpLp#JI(ixoe4?l;HH?OiFm^!URg z2`=epW?lPq>G5oNo`k?D*^1J~%1>t9Pl{7xG|k*r*L?T;a_!KAXP$N*yMAfLj<dpg zPgG21tnWPY_ozz9@|)}Zw@%-(J=ThEZ{VjhTi)s4@`&j+{yK|~^~c77FcHUlk{l98 zGoE@c7rP<ydiTw)ZAaC2m;C+IwRn4u<UPhOxzjcWNrt4~d)2VMUjI<zk=_q`b4+$O z|K#Yk5We~{<+J(y3a?BX=93>}_Vdopwf*zDJ3+okVd0(EDY4la%U=a49y@$g+QRJ4 z8{zZsJmY?OywutCLXi1|bnuTIeRZ9R;szz_UArf}vsSPE_H|a>gEPB>dmr-2K3#G$ zM*3<6TUIjT#Wbfa0h|}IIyOseF-&iL@N}=B)up=H<sM7Dr?=hSdg0o=^?g&;*yv1| zaOvaU|9di1PgkiuI>VGCJw@nSQ2HVLBPJqYOndAjPgnglJai!4VttaPi2s5=5zM^j z1o#Zs`de<u_@7)eRlAJ${aSIg6C0OvbI9_q*`YK4<!sTJ-fofJ%@NwITmAc<tookG z&VQ2UeN&T04$G#9+=iyyi)}JO)<#@jnU9TJa^r(8eh#gY;QYKbTx{D^Erw}lKYq?n zdK8<MBqQM!v}@X-%{@Oazb`I-61`}ViE-S_eEHWZ^;b-`eUQGSwv{<%W^ccaV~P92 z_N<AyyA~eV@#(hMn(9ObRj)NJLVb6xa;rBchc>>-xo0%R*SEXYyyVj2|6i{eZ&$d% z{`*s{vRH1%Ul*ojte!#ZUCp+3&RH?pw5D%=Ol=BZ=7S$!zO3HDxOuZj{8QnH>Ke~E zk1S7{`CKncBy!=zHJ_gTGydJDWK;OO@CjGr^PCu8rAKR}<)T-+2AA^)Uj3o`dYQ?G z_pc094V2-fBd4gL7>kHw9sj9s#;T`p1RV&O*I};`X0)Nzz|cU^fRl|?n~#}Eij{#y nB$)3<qSM72SA)OJnwIjcb9Y6b1QQEKOoy0v_C53Opi&Y5zxP{D literal 0 HcmV?d00001 diff --git a/roles/ca/files/CA/private/dsoclab-nifi-3.key b/roles/ca/files/CA/private/dsoclab-nifi-3.key new file mode 100644 index 0000000..4c508b0 --- /dev/null +++ b/roles/ca/files/CA/private/dsoclab-nifi-3.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCnSKDTqx6MSWCL +uL2aqlwJYgF5icnlXzBkOMrxlS1IIIHvYKpv0e+0rImO6fUWfWQHsDt1w+HhFXFk +YI8VjhaL3riXeaeDGXdbqjaCN7lRp5W1H6ydgcbs+xQ6hHcenN08BjChXtCPsMla +E60OVle8HT++10xLN6KIck0aYogIoFe7IM5+r7dy8u6GGrEoO0H00+oUdJDhM0Ea +kuIu7NMgYGBh1vwOP1dDiF8QKSBRQEbtXZ/RWudLUvTUI2BKIqeSbNTLIAGmuVNx +enEC4QVyQaVCn0FHLDB+DLFzzPdjYCc/PTaTFKp+Eu0b8ctN6HwyIFD1LX0GCpPP +eoUrC6axAgMBAAECggEAIwh9zfZvTlfrpTdKVgLJhZmFz4tAwg2eV87hCZkBQ7Kz +I4uuBf8EYWUk5c4vasdV1JpeyXn9ayMPfUMPlCcOp7o8FFUA9N63dXX/NmQvJl+f +ZbA9eTr9ixHGGb82Jy4Y0wJE2va9XOpcMMYgHvmMJDRH7lKugq4jFspBRX5PGOcM +6MxlzOSEcPZFrccDFcVJIU57rJ3HO85mF8OUmQoReA7SH9qNLFFtERrsgCSkWlwq ++Pdz+FwkK2tmSBU6+4J2YTyJ0AvF5DUex8tf6rAD7H1AGz70VEFumlbjyz+OZgsS +oeoAFRm6Uzoo2kU7mB3fPpA2oCGVWVIY6fgHbyZHsQKBgQDR0L/WuzeTpYB3oXbX +2rPcbZVa/wK0Evl1dfj1UZUBqazkVntMVko02Xt5RHt8FTaorTqi2ieEGfcbOonn +cSZzChPNCvyr6MJJHRcqNP4pgxd4b1LfP8sCLZTvi7HdBA1DPamgWuiKOkqGghHs +38BX7SPz3/gTxEjwCE7g9970FQKBgQDMGy+CjGI8btlbKBK4LkebuGGWgWUIXa+V +2OhoEZzIwDQf6LotauA8pdljTeeQ0VG4kO365hN2v5bL02SOCo3ciaLkQ2tQhRNt +1xSDoKf2ipbjFZr9o6uDHGtVKZF1B20j48vEWBu5EEZ8yf7L68BWBm/RCVeN32oL +jpmIMySDLQKBgQCwbv/CzDASAkwjTS2omgpBRA0iNerKDmKjeY7ei7nnag0u/eI0 +8SL5iiCgewvz7crG0NTL+PLdzQ/UX8dzTdztQ/4eoCyVSueFn+bI4UMRGWF1Lvfb +L8PAkx/4x9nLZwrYDlRDue5tvlLJBTuZmxYdWhavjxkHVjmXTwU1fHqJeQKBgQCO +Rgj5FEhJ3e8PFsDtt/zcdEs6MVou2bdSWc+u80/5s9jhwUU98Xj7bZQ6H4ziKrav +U/8/XG+G4AgKboFybbLzXtG4EbLVft3LPBilpDBQr8x74IyYbyVYEFBVHdOx4wpV +8S0R4WT5vHmV9OvyU5RPos8AxGVOlMSD59Pn19aExQKBgFTfUARZ/liWznEU8X5Q +krL97ge1+oaqQBI0iS3jmi8cfRNpwWFxc+uRgHW5WybGC9PxV/n3yu1i4wIyrwfC +g4f0HH19x+VTFs9+H09wudytJh0K8LLTns5G3Nu3WW+o0gtJDQDcAxijvEr2jn08 +qnSQ95GLsDqLTauqOMzEyhM8 +-----END PRIVATE KEY----- diff --git a/roles/ca/files/CA/private/dsoclab-nifi-3.p12 b/roles/ca/files/CA/private/dsoclab-nifi-3.p12 new file mode 100644 index 0000000000000000000000000000000000000000..4d4b23daaa41114bb1ab95eea974f0c2618dbbeb GIT binary patch literal 3397 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 literal 0 HcmV?d00001 diff --git a/roles/ca/files/CA/private/dsoclab-odfe-1.key b/roles/ca/files/CA/private/dsoclab-odfe-1.key new file mode 100644 index 0000000..f10604d --- /dev/null +++ b/roles/ca/files/CA/private/dsoclab-odfe-1.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDlRvZxzqI/YV6b +88ZhiIeZCqy46J08X4xgK0FbNvs5Cm+hFgIxrA29Dv+VWdjxIWu9ltZ7eQHRZRzK +CSJQMAHq7bQpv7RwJduzHelz7WOTAkyQIgRtMXQxroU8Eo2z9pIv3nV1j8ql8qIS +lPvoczA38Xy1TlmrcXMmgJpGjUmUsAnlJxA0ncBTO/p3LgbAc44Pmh6MJzIM6/LS +DKdSSMbuEiEV40UwiYFjf78KW9EFyBz8X7u4giqSOzquGZ3pp2J8CvLCKuao1JsK +qKJa7OWjGnPggz3S6HSpC7DksP3+rR5X6A0gfKofMWm1DYw/HI3c03Fb8QRqrrkt +qL4oEfVLAgMBAAECggEAGkUQNaf8VRC9+1ZqE4DGMJXVhnY4ldNIzTgHjAD3tehp +M+bGp5RUGqZeSGl7/tzacGWY+5q4x5ozOz7irJdjkNxdeS8a6IKd8p7pwbugXha0 +WQtcwHobGxoo7+IcVFNbGpr9kFPCX1M2mLRzTIXuL2q+5DMu+QLNs8qmYpELrjpp +wiY3yQ6zcv4ndWJloMWo+CzTXq+Gh0L7cWB8dk9NOGu0dAF1HIVokvud+xUejyIB +2bBN/J9ErGBX366C5yqzMei1JhDXBT7N3XATs/i5tx5jHxO9/G7Psz6Ka7wQ2XlF +9gY9AndkXGFNt/YnKpvN+h39caH7lRvC/AADwidsYQKBgQD+dHoAUKrCKfrHDazQ +gQRPGNOY/J9anHhKvPKUwkoY8VZ2MDqB1uwSWioambx2CVc81eeHWmRQUAp7Qw94 +p9DWhqcPdhqGZDRQGSolw8uXnSLKLkJ0f1VxRv7B16wwLyaMgdcwn0JaZ0iaQqwk +VX7V3OnRpbaji+7pkoJUetbyOwKBgQDmq1mSa8G+/5K8CURJz6K7/ItI29VCFm4t +ggeQ2QdjpCEhg7b5wyW7Y+CjbWoUx/zKnT4FFX213Ca3TaOKn/sU2lu0J7AP4A85 +yV6JizecpU/aDsAelezO4PfpAdHiUN49lWt6VCTWzOM/+hKdLE1GVpOfqBCtEEYZ +DJwS8JdIMQKBgHm9Sl16OqhYo1W20jaTc3dQXnQ0cR1N/TNswPaxGfhjBsXW/zb9 +l8aUAs7lPMiQYX+Gq5YThijykoE0rWNBjuYEWEtKaxhfOrQTxhl5Wp+4G1v10++e +uEdQ+zPMtuH6vQu+VzE5EOrlvVOokGl1yhAR+IBIM2B945k2ckpu1wXfAoGAEGtY +B+UluGvGzR23v61I/yqd24TSbE7ebtzXnwbj0MLpHNKcXrD2aZ1VayyppWsK4n1I +4eHCvgQ6uUeMgZybqcNVTcCZdrfTPaDI2u+O+NaHlZUBNewkHCHFY8+eWga5mxac +vOtqZ+PTtUUeuBNkOMKG5ZF4BmmnI7dTEMIRcrECgYEA0LJjKYwHmqHXe7Yel/f5 +6U3fQka70cpS0hg9T1qHlC2A8Goj4p2uchJmRkH3uYd0FTtImkoiAqksnWu949pI +YFdI65eKm/7a7Pmoy0C7TMM6pN2ibbN7XBoZ7bZ6Fj6FI74MLgUBUIwMyKXWRhTX +RWpegcD8h8CCEagLjZ6PN3I= +-----END PRIVATE KEY----- diff --git a/roles/ca/files/CA/private/dsoclab-odfe-1.p12 b/roles/ca/files/CA/private/dsoclab-odfe-1.p12 new file mode 100644 index 0000000000000000000000000000000000000000..ed4bd60a1d96595774f510ecfd8c864a09e8d338 GIT binary patch literal 3397 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 literal 0 HcmV?d00001 diff --git a/roles/ca/files/CA/private/dsoclab-odfe-2.key b/roles/ca/files/CA/private/dsoclab-odfe-2.key new file mode 100644 index 0000000..6b56b08 --- /dev/null +++ b/roles/ca/files/CA/private/dsoclab-odfe-2.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDHpeE/4KMiafG0 +FV65PNvXRLvZx2mUW8F9ozRNPogK4o8u05iUrrQfSaP9SycWcKsDq81MAip77Tr/ +SUkuO4j2WYUm3je0R54cvqM4jrAia8rFEuW+QJxXek0CDNsTxZ3Shd+ZVzKQN1QI +FkYBVNoMdzFjOUYniD/0rU7m/Qo+nZiaU5iQvpvu47KRx38/obli+HoezLQj7YKg +XK2Ge1BTyexXBEQcEvYzP2hC+LcvJZEcqrDfF2vtbcxtp9a3B2thpRZRnwIHrbJC +QsoLsS7BbpQtPl6ISI+2ixWwSI41WOq1kJz7Wvr1xye3ETB6yzZ8T+pSAEdA6fDK +Z2My4DNzAgMBAAECggEBAJlsPTQ0cckRd1/3iCp7vUmplV5fYyBSftgI4jl2E1+i +CXxnuPqRYvQkSDRvW2NgQ9t3XDXL+E/x14O1EtrHf5Io6y0aWd5dpwDZ816UMIDT +KyjVQ943kq2a27D2piiElarhnBofq0iubBIm47dEOKiZtEdXDTV1/AgQYvEZhZTl +dZWsX21gP6YbMgGE/ZFz2tMjFlaK/f0XygJd64gGwwt0wzhBnJsb5Nf1nyrqfuNk +XIKXQCBx3IbFxxHSd0LxeokYR1+nWcdw2i2T396UjlFJn4n58oPJEQSQAuq5RXHe +aJDCiPLx16Hx0sqSgwXfjptXwdxYt7DQKYZkYHdUZtkCgYEA44g/xK6aUJWfhc5n +QeOAB/maCa6GmSaGhvjIjOVu2nimmHl4jBF3Fi6FyWG8Tqj7XBgDaByuLBy5NIAQ ++/cQ3IGMHlI7SboQRllmsUMrCApOFyENBn5V+2dyCIRIqzstYHWGefv9ElrCroZa +a/XZrDGO2zj3psoaKwat+b9i710CgYEA4KCC2NnP7henjH/rDbQfebIg+NSBeSn4 +1PDh37p3vm0gIclhygWS9vL1ERlvt9N3o272ago9jM+PaVK9fFBiqGuMU8X0/2qx +LnPppWUKY3WKPkDKSBgz5J5jkTTneL6wPLY0saHB8Ob4zIKpfh8dsIXBwmiYsmO1 +x+q+HAL7EQ8CgYAjKZsxOgp/CaBtfUhX1mCi2uADPwVuBZYkpa3YmFxZRuv4BE2s +18Yfl3D1fjUrstGlmdBs9oG0L3wvsNrvFW91pE+TIAIpkqeRN5+3JToxM+Z9jI4G +wt9mysXEqyzPyYVpsr/lehvSClSrw/eVV5kcE0yQdG1RSUph+9ZHElynwQKBgEcy ++WaM27iHLOd+4F1um49yY7sbeJKUODgeximpLC1i3412DJYBYE0AQ6eQ3XVyBPj7 +wgVoi4vneniS7lbKEAt8U3V2SKrxAYpM2WFAfqN57UDAPp3Ndh1gCwVKtJf0MV59 +DoTDVfrq6y+/tsOwTzPVoc3iY4wfyM2+XVX5p+UHAoGABD84C3yYWYZ9gBkEkXHH +jjKUcDCWUTcbErUtaloI9AU+Fw3XP+H21b1ahblQ8JtGcGIosYLOGreZyjN/gVJO +Us14LTFkYwnSQMJ0KLmfZ2qEL89xl8fIFbjmccJUmW01F1y2M9yZVTVeNiAiq/VL +j+8aCEyjHb06KrRCjseb1u4= +-----END PRIVATE KEY----- diff --git a/roles/ca/files/CA/private/dsoclab-odfe-2.p12 b/roles/ca/files/CA/private/dsoclab-odfe-2.p12 new file mode 100644 index 0000000000000000000000000000000000000000..106170ff7a325bccade7cfecf2f60642e866a4a0 GIT binary patch literal 3397 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 literal 0 HcmV?d00001 diff --git a/roles/ca/files/CA/private/dsoclab-thehive.key b/roles/ca/files/CA/private/dsoclab-thehive.key new file mode 100644 index 0000000..6d4d8bb --- /dev/null +++ b/roles/ca/files/CA/private/dsoclab-thehive.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC6xU0gpGC3YSHt +FqFvcsTeoQDA7/xdoYk0BxXStDoUuJV1joFxSUYdyIHL8ezHWhL2iWDkyJgaYcgt +Eo9z7vidiLV/MHCXKbSrQy3c26cQR8e1JpsRhfvTJ486VbzqeBe4iRCjpBBgOcN/ +QiWp/oR/OF70PcOYPVa5uoEGVY1lEvBOI4gdmAwvbk9n/U5nOZG5AVISqp67esjq +j0otGPhpmjqgyG7j3sbbvkxZ4M+8NE8ssO8+glrfaL64+8xfavI+ZtTGxfYLZ+lk +hRWHYG/ctFsTb7Cb+PPawZGegV8Wyp4UAcEczirTyDwPvrE3qskIaCve+URsHpCk +Erz1PEa9AgMBAAECggEARJH9cBeJfqoFp6LgYCd1yfq4aR1yvPl6gwR66aHLlSHz +lXZdZbcuK+8aYEMQ2FvkjGkBjt1qonz13j5rNngtBMFVST4CiC0CrMH8S5LFMj/4 +PTTQR822F971QciKlFbE9rYzyrCIZpuuf8FMTK4p/P84NVmbvv/+IDAuAKJWSB3b +TXVeYzqET/cENXrNZNsTMHVoPAudtsHXXa5w3yXJXhTlRQrjMtMHgV+H1O2iOvi5 +IAJUm2HVmGON9aqQKZlzYvx9txSBRczEwQK+fLPoXGEG/KhskiBPMU0y9a60SV5F +Oi94zzBCOSf/k+C4+EhkvfSq727ZFs60zGcoEW7rzQKBgQD08umyOtqJEB6dk5hg +RA1mc3qx332Li0Ep9ciPD0oOyt9H/pQBMYHlV4Vf26dmjxg7XMPqB38topjbnVcY +r1QigQ8tnHXktcO1tUpx6MhTkN4sBH9dvZE4TdBiarlcThgnuCfZUhjyfyr715tR +BIC8TA9bd/6oUaf/zd0S4aGcEwKBgQDDMnKe7PoDlHtjxaiDs8VLRRgNKocT/jaD +SZ5j5a1e+fvIK+lqpW7pXT/AlBVvxC6ke2Zb1csgndgF0p45ZO9WsB5fV3x8AREM +zIvrqpH4hdRBEF7o1syVDMXmTQLsPOLzj6B2UC5mpqoo2GkI9yyXpJhNR0kqzkDy +Pclu3xZL7wKBgQCZsFAxI/w6Q4LyG8lfnVNLFOnG8RM0mwsn6K8OE+nDnka6RWFX +3lhCLcfhfVBraR0rIelKzaleWMbQBMjBFEEV5SRA2gqele1V9YngLs6CoELGG4xO +pMKZMTmuhogHAnjlcwaNtJUykdfGbGFnVAvyGUcJfSCrO5DNT72GO0vLQQKBgQCF +WyPf2/r7Eygxg8qbH+h8ghnqdNGQIS9RBqzFhxapOpR/rzBrAdcCbAiwIvt6Pke3 +a+8Ecs2x3OTHJZufjovNZ8l4TaboeToSynQVb5UGezgFs4+D96wRcIaLzrVefEJ5 +L/jqm+D3lInQGfm4fFXkzDiZI0ijjAHm/btumc771QKBgBTu4KvY6rzgmHbymux1 ++tr+xl3/Nb29XQJHpZV+hgFGg1+aWaR9c0WXz9mKovBanEUHJb5khqFQDFZuWMNG +tNQ1JbwTXwxmAfVJbLYbSHnuePkh+qtpmTVa3H5NdRBI/062/Km6Rxcf5JljB8/J +k+SqVxdKSTfaWxGqyyAZgVis +-----END PRIVATE KEY----- diff --git a/roles/ca/files/CA/private/dsoclab-thehive.p12 b/roles/ca/files/CA/private/dsoclab-thehive.p12 new file mode 100644 index 0000000000000000000000000000000000000000..4651a2126460e39b52b3c9404b73b982758cf006 GIT binary patch literal 3397 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 literal 0 HcmV?d00001 diff --git a/roles/ca/files/CA/reqs/Arne Oslebo.req b/roles/ca/files/CA/reqs/Arne Oslebo.req new file mode 100644 index 0000000..dcf6392 --- /dev/null +++ b/roles/ca/files/CA/reqs/Arne Oslebo.req @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICWzCCAUMCAQAwFjEUMBIGA1UEAwwLQXJuZSBPc2xlYm8wggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQDOTAIZIW4c8u2T2P28GqTCETvhVXPlJpLT2eim +3X2iHb5qfGQGOWAzOH1qyomd5RFYIWnzOohe6uUu4Z27AB9ZGWlPazI9LxralT2Z +lVOfsurbE0hjLUrcDEumHExi4tARJWfLgFIC6Pg7POvL9HEDWr7ZoEn+0XL+T77h +rKHtpRUG9E7JBqubksI+uVgM9BUOBMCRG4VznbaXoWxwChqgzkyNrCnkxRcAJgNE +Mqh7g1JJQ2ARU8geuOufH+MTVIF3xEdKLiCNSIyRLuDU5TcLXLtfQDeS6WA7oPmY +f22zIJI82ozweYHy6ne6tHsGVHWJd36tCDquHtwcEWMIQxSXAgMBAAGgADANBgkq +hkiG9w0BAQsFAAOCAQEAg1Qb6ZHRANNpMip4Swkowrq8EqkMwnaei5l9ODVzlYa9 +Wo5f+kiGVMnza76E40/OOTRT8624hZEbaOzh2bLRd/9MCxE3oGWeSVtu/MOkN0f4 +vERTql3zlcIzOmQHXp2obtJXdpSt+8jlYbFQm9HV9k6qCnv+k9zjkIEkNaZ26NIa +CzsR4d6J5l9B9eEnpZHEcbtD5SyB8pde3d5lGDkJ7tdwVc874cbxSA/402lOf6Gh +5huX7ID1xN92VHEdtiwtOkcWjtzp87Dr0GxlFd9u48ctOmvfvxL/wBPXAYDnwLrB +d89p+JzRZzr8eRj5KCEW2W7AbOVpaL05IBAR6a/4GQ== +-----END CERTIFICATE REQUEST----- diff --git a/roles/ca/files/CA/reqs/Bozidar Proevski.req b/roles/ca/files/CA/reqs/Bozidar Proevski.req new file mode 100644 index 0000000..cde307a --- /dev/null +++ b/roles/ca/files/CA/reqs/Bozidar Proevski.req @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICYDCCAUgCAQAwGzEZMBcGA1UEAwwQQm96aWRhciBQcm9ldnNraTCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBAJreAP3x6bkp2VjQRyHPS2cX96kCkxfP +V1tv2yaQMAkL2cVmXvYiZqtIBqpsiLP9k0WkYMlfK2yv22heJ+aFcSe3IFJh3xQb +2gY5siEgSyJIt0t2RAKxiV8OWSLLuckejaCsKF3lrsjqzAUgomAREo1tiApz6Hxo +nEgsyajGncM8wef0B/dbbkI9PQ+Fb+K5iKnQAoS4GWquE6GXUJgWyAwbvQLIX6Mv +c34l+IznkkPHanW8heocRyjOLJs6j6gH6YyKdT7BlzLO48XKHgrXPHcK0qtRw+Xc +N5AaNb+gSqq9OO+ebfiBN3/TdyPGW2OYZAcvR/19IS9XwthEAMIpInkCAwEAAaAA +MA0GCSqGSIb3DQEBCwUAA4IBAQBI2j+FMBWk7pwuvK10IHSgJl+MW/PS4LALPy00 +QCo6DUrkN3EsIY+wsY+jCUS2VGTlOehilOywH/RpmhFBxT3N+NmSyRHPhCBAJAHF +lmziZfPU25xOt/q5TAbBgEgWJuZuMVUEXY0EV/BxHyaZLPOFogXMijP6jhLxx3yg +8XU3aWYyFu3Dl5wwvhgtgXN4Bt5jHK7y4Cy+ChrybXabU6x380XlBDnlBLCmLmPP +ASQ+xzmacFGIY3SVqI1sHBgSMGueVQLWmGEgT3uD7mX0sD1teFR4MA6pySrkhJeg +7kZiw1lMNnFziruBsrk0wfVK5X4fy13lfOBZEc0YgVykUklo +-----END CERTIFICATE REQUEST----- diff --git a/roles/ca/files/CA/reqs/dsoclab-cortex.req b/roles/ca/files/CA/reqs/dsoclab-cortex.req new file mode 100644 index 0000000..1959ae3 --- /dev/null +++ b/roles/ca/files/CA/reqs/dsoclab-cortex.req @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICqjCCAZICAQAwGTEXMBUGA1UEAwwOZHNvY2xhYi1jb3J0ZXgwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDNCWsUM0pHdVvT2Wc7Ta0fpx8zq4axqjsJ +qxqm+6BgBONoMw6FVNFwYYq51da1bMKzNgKUtx0Yk1+Igf8q9JlYbdeW4tJkd7l0 +RDzw+1sPQ304Xf6w2wV6qcUQJHUTyC3aab7jQzPwKDCaU/j40xAyNewdh6seLLUA +fJ+PYeBdVhWMRkUJeAJ4EMCvLyVswlvtX8EzC/jIE9zfw/wFkP8Gnsu8HSvCV/K9 +qiKzS/XKsrgAGPEUELheaZ/t/ASD2S63mopFHFRxj2ECaoqEL2ffkjoMX+W252wn +aR9bBtZ/5t+rLzGlzWMyYMAHUGwNOctorjyy2g8gBncsKKs6MJIbAgMBAAGgTDBK +BgkqhkiG9w0BCQ4xPTA7MDkGA1UdEQQyMDCCDmRzb2NsYWItY29ydGV4gh5kc29j +bGFiLmduNC0zLXdwOC1zb2Muc3VuZXQuc2UwDQYJKoZIhvcNAQELBQADggEBABmN +TbZUl+mAgRYgyBhG8QxYAD8sLcKqPDrldqy/5qsGuLQSA4txQ7uEMFb9mr5RsjvA +rsKljltvjmEMyLjOio00NanddY/qTAwqfk8VoPK49g0Sf1c73E/84JwhzjzTqR5v +4Evckh4r2lrgtqos0sZHr5SUdYiMpAJ18WUAp+PCa6RydUt5+Upwu391lgjQpSr+ +M7DCM+KDSZ4X0eaSf6oFrfNA035FlDaHdRHGMIW5aE+fBXSXEU7EwgjCEMuy6iLR +Arpjo8t2Kj5P+zJVXo5021VhWtTR221GI1v+JJxSkolHAziTohsj45m0jA1cCKbL +bzpzNH/WwlpNEH7tWGs= +-----END CERTIFICATE REQUEST----- diff --git a/roles/ca/files/CA/reqs/dsoclab-haproxy.req b/roles/ca/files/CA/reqs/dsoclab-haproxy.req new file mode 100644 index 0000000..7377346 --- /dev/null +++ b/roles/ca/files/CA/reqs/dsoclab-haproxy.req @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICrDCCAZQCAQAwGjEYMBYGA1UEAwwPZHNvY2xhYi1oYXByb3h5MIIBIjANBgkq +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAycciMwsLD6CMxKmBN71RL0cy+huIRbG7 +EUM93rNwZ9eLOVqPE/sveAixsTLG0Q7k0y4624Tb0mVrJiRs1xblpZCOAkYTAgqW +ZkaHt7DuVkw82K5Mfe9bqm4Bjon+TLnebLrkP4341zrtsimaW6xahmYF8xkvWY18 +i2qXHkOKNoCy6eGE9pS8ExExuNJacu1ow7E35FuRgmKqE/K24DqqhWZwCqmtXKdS +/9z5mV7lFdUM/s0ny5ieWmnKcXQx5ibf7NJCQ7nzBI4seiim+Y66ZDxpDqz13NXz +KlBHUNSM9e4xCHNpH65CHVKEXUdo3aMfB1fsPp4NI3gWQbxo8k/pGQIDAQABoE0w +SwYJKoZIhvcNAQkOMT4wPDA6BgNVHREEMzAxgg9kc29jbGFiLWhhcHJveHmCHmRz +b2NsYWIuZ240LTMtd3A4LXNvYy5zdW5ldC5zZTANBgkqhkiG9w0BAQsFAAOCAQEA +afvEI0PRtJHdn9wjijMSmeFqcKb7LrV3cXKgMNlps/7+D9S3E2id457QpHLteOLn +G7YOlL+xddxa/rn95ovL/p+qU4i4bPfE3tG/Yj6GclQTNb4JWocZq6ukgDzPaLPu +7XyS42sreCN8QlDuHDM+lNpb4wyzyLVKV8pUGLn9QjskKvAFmwXNOV9X20RLSlAo +NhOYFxCoiwcCT/wyOh83uh5FcGOzZOPrG/J95rV+RyYOQGttu2l00nDVTD7Gbjza +tv30d2Gj6tJAxTqXZm99qJ8zi7wBgymX7uQoaw+D4uZqRCzUqgEe9j72N0Jh+yF0 +/wo9Lx4oVJj6GR0I7jY24Q== +-----END CERTIFICATE REQUEST----- diff --git a/roles/ca/files/CA/reqs/dsoclab-keycloak.req b/roles/ca/files/CA/reqs/dsoclab-keycloak.req new file mode 100644 index 0000000..c9316cf --- /dev/null +++ b/roles/ca/files/CA/reqs/dsoclab-keycloak.req @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICrjCCAZYCAQAwGzEZMBcGA1UEAwwQZHNvY2xhYi1rZXljbG9hazCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBAOqp6msvbJyfbZyJTgG6xsAy31kmK5X0 +wj3IfiLOtngD6CIogZyapqe6/QVmo1CBhXHB2eq8IeFdCod7vlWwfQFX3kz+OsXJ +VHcuFfwSB/jvn3v3CQFwdVM73LEMZU1JxPsdQiBvgUVC09sdTFcbHTuBOe6yz5VL +KdCoOZjWkzaZv8VDJo1N220kO/wWdqH9b8YZEccSDYAWTIjaLAl4PRt8bOzbngFQ +X6NWf9Q7pCbSbUJ7iE6NZO0eGg4FWGVYR4NgnrTtFc5yT6C1It2fpNqIhv7LhG5y +PQBC2ouFKvLv1+67hUK6ufvZndIsWA98AiO3RtBpBjdAnVh0icq3EuUCAwEAAaBO +MEwGCSqGSIb3DQEJDjE/MD0wOwYDVR0RBDQwMoIQZHNvY2xhYi1rZXljbG9ha4Ie +ZHNvY2xhYi5nbjQtMy13cDgtc29jLnN1bmV0LnNlMA0GCSqGSIb3DQEBCwUAA4IB +AQAFuWENWuE+yIOLn3KkTz1HoJrOwzn6g/XkrhMcmQtRucKd9T1CMr384yWXkGcP +f+BrrW/m2WSpPGikR6i+gW5aW1zKOtu+IABFpjsOcHTuKZGjsAgzSWXIffuNzrMt +TvmOdtlez0sBmxPQ+JmpmNkGzSzEr/qnMxdxHonn17/pLV5P5Z4Dy5vMhTKlw32I +1C6gD1yfjoF1nI0BWmu6vSih1IBApR2tdexa/gGZT68z1XncTD7zzUnPBoqWJjJf +7NZ/HUxmQBcM4/sYNFnfx+XHY83Hm4+i2PS18SgC7WN+GTaGnOYdgLPbUGwCEv0t +TnDRqK0EfRbr8E/6wCgkyhz6 +-----END CERTIFICATE REQUEST----- diff --git a/roles/ca/files/CA/reqs/dsoclab-kibana.req b/roles/ca/files/CA/reqs/dsoclab-kibana.req new file mode 100644 index 0000000..c742520 --- /dev/null +++ b/roles/ca/files/CA/reqs/dsoclab-kibana.req @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICqjCCAZICAQAwGTEXMBUGA1UEAwwOZHNvY2xhYi1raWJhbmEwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDOT8kPhE1Oe9wRkMlJqPNgRKglG1mDZAvR +4LxZUCKl9Yh6yEBl5CI9d9KPnjAXgF4ghbxwZ2HL2OKfmnx7puhOeXvNhm4mUjdF +tqu3b0CPelWL0ZHMIW9VN1A7ch8tO791R5GIahzqOd2LJTFVDrxSb78Llu/jElza +YyJU5bOViwKeVz57T6D1bweoW0V8yzSDdzSlsf8FEoiPzMQFXennfSsS+rtNJfT3 +BOeVBpXqqcR1TvcDZy2cmvQB9iqNbG3QWanOHxKxdjnIB9Qgcx7znLlngzuofG77 +huo/ao6YTDmp0U2+nwpDSRv9CWe2YnH9h5pjJQCqx6FNIxLjVg9vAgMBAAGgTDBK +BgkqhkiG9w0BCQ4xPTA7MDkGA1UdEQQyMDCCDmRzb2NsYWIta2liYW5hgh5kc29j +bGFiLmduNC0zLXdwOC1zb2Muc3VuZXQuc2UwDQYJKoZIhvcNAQELBQADggEBAD3L +9U2PcNoNGQu7wDkVblw29QoEkbm7yXvcXt5fFlcd85Tw3+Wig4fXC2AVLBxTvK7C +1wLGTMVtQfzH7+H+xQvhiQG+Rz2dLD6K10sPK+Uj5iXZyyeb82cqw7QwaH40jCot +uLgvSIIrChFWGijW0tHy2UmHjTh6+cPzwGe58yYXTK/OBJwbEKKox3IL9XtF3QJJ +wNhuCYPNbNmy1qZQ7Fny9cCU+syHDRkJwIYBAcfKVvq4/L7txkYZasnoQqE8H2Tq +UnCOD97mt85wXID6vhi8gqUvujr/NHqCIJqd4yZ3fi8/uxbK2Igw6sr4d1y90Dj5 +iUsJ9h+hlzojGLzqB98= +-----END CERTIFICATE REQUEST----- diff --git a/roles/ca/files/CA/reqs/dsoclab-misp.req b/roles/ca/files/CA/reqs/dsoclab-misp.req new file mode 100644 index 0000000..051c713 --- /dev/null +++ b/roles/ca/files/CA/reqs/dsoclab-misp.req @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICpjCCAY4CAQAwFzEVMBMGA1UEAwwMZHNvY2xhYi1taXNwMIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz7Eb56KucIFxpVdGFC5HZIlOvX3wgi0DGdaH +RLNCv3J4A8yRmFs2QhRV4oIWElhgVESPFfYbH3Y2Ii7orNM8Ct9Gx/EEvDq//kuP +KlOD41CCBgn8Kvr+lKB7f8I+Cz7ccriUEAoLkP1FdimFUr8PIEN4/jvTSSCPmqUM +ibsOl/JnsC3wF1MlpptLZA5yir/J445Bu+3zM2pVX41ShPqjZxp7cfuQ8V9h30Tq +C3eI8uXBg3FYx1iKmzlFWU7g2xa2lnKQjO7CE3XqFcZr4tw63sgH3hiELZa2xEzh +Sk0Tb2yaHeX5b8x+G0o6dRq5N7BtoBtpNfG25sKl01bTV8cOiwIDAQABoEowSAYJ +KoZIhvcNAQkOMTswOTA3BgNVHREEMDAuggxkc29jbGFiLW1pc3CCHmRzb2NsYWIu +Z240LTMtd3A4LXNvYy5zdW5ldC5zZTANBgkqhkiG9w0BAQsFAAOCAQEAdn/gw4DW +EuPNCWcDYqlXVmwo0a0Enf5awha/1A9IxU22Tl4jv7KOb+SFRRy6d2UURGP+12EB +iUq7e27L9byhs2gR9xXrw4CQlLjZ7egRg4a6fW1YeL2gKU68PvppOyMGxxH0saCL +LmAM5N8ClvujX8wvLudCXu/NNrsBwQGaQ5CXtysYXrV7FyHwkO7FP2CTbvGbyYj/ +WJT8g3P4RM3PKd7+7+mmNoqKCOySj1gnB6xEn0iPoBWRRcC/2SlyUXi6idG45C0p +G04CKFxHJHn2x2nV+3Ym/1ctCTaxg5tGTrZ7Mw3Fkp2QGsmlQuq8ukeO0wTMJlyt +41DA9acx/R0vAg== +-----END CERTIFICATE REQUEST----- diff --git a/roles/ca/files/CA/reqs/dsoclab-nifi-1.req b/roles/ca/files/CA/reqs/dsoclab-nifi-1.req new file mode 100644 index 0000000..6984cbb --- /dev/null +++ b/roles/ca/files/CA/reqs/dsoclab-nifi-1.req @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICqjCCAZICAQAwGTEXMBUGA1UEAwwOZHNvY2xhYi1uaWZpLTEwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDDr++3oZVHX1XqfujW/dXjGWguch+QYqh5 +dtjS9lHfcYA3Wux9+214bjf+5RvI1XPkyaXL6EpIJsbgpl4ULJCxgbJpMeJEhZf1 +YBKIBp2Nz0qid7PZ//NBQEwh4XONmIIvNycMJNhnvccFUEDFqdDkP7sMcil8vgYB +lgO4oELEb2/aqhc0X17zcw53tXqaWeM80TlQFy9TGAWCNCkbGVYuwtskeVEPqNlm +PHIeoPcD1unlxrm+lOSEvc2TJus7F7vN5Vgl8ig1pLFw3zJUhfY8IJ+Ii12DosQe +Mdmhdh0uPPh4ZKTdOrJWZb+oKqjtYsliLHK9nX5rH4DqvDNgR9MPAgMBAAGgTDBK +BgkqhkiG9w0BCQ4xPTA7MDkGA1UdEQQyMDCCDmRzb2NsYWItbmlmaS0xgh5kc29j +bGFiLmduNC0zLXdwOC1zb2Muc3VuZXQuc2UwDQYJKoZIhvcNAQELBQADggEBAHM0 +gTZ4mCfbnMSSETTVJM90A9LvYRYegrDd9iiyrHnA1ybJh4wfvmKYq1UfD04Q/wT5 +MT5ebLiCOtnicU1XtZIOdqVjrdHgYh5AiNuqGfWPTJ5714XtUfuV0U47iGgs8OtV +W0C+DvWOm2v5xMs66QIMZRJObXiNjz/5NnigHAf0eyKj+fkmfB7oW3O28vD9drPk +WCZYRFOTxEviwWAgapI5JCmlpvAu61gljYEDJhk7x+l2obOxEt1ibTJoobQCSt5U +BF2ZBNI/nAKz6pQhj1bW25Gc5o2QM5bkv7uIzjHMprgGMKnJnbBZjEBdHKRxv7n7 +Pa0EZRioaWxc7VVDYbM= +-----END CERTIFICATE REQUEST----- diff --git a/roles/ca/files/CA/reqs/dsoclab-nifi-2.req b/roles/ca/files/CA/reqs/dsoclab-nifi-2.req new file mode 100644 index 0000000..31f0180 --- /dev/null +++ b/roles/ca/files/CA/reqs/dsoclab-nifi-2.req @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICqjCCAZICAQAwGTEXMBUGA1UEAwwOZHNvY2xhYi1uaWZpLTIwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCst0vi1Yd/jhWbz8AX69uM4xuDwGm5BpGg +m8Y13C/ojHIoUAKCxbHr2tnjnZXS2d3hCDVtg3OVmLoZ/T4EZ5oJN0V50x0L7ApD +y7gkzGhczi6u20jYblrzMb6HKIZ2jo+NaJUfcmxlSvyeuH3ig+I9sDBdwXMGrpv3 +mlS4AmuCkBEIP9ZfWVzfqiVZwGd6/OHwyUqL4DG2UxPCv4xPOubtETCmQSatVo8D +C62HbLJzxC5BPpkatilt4Nyvj0Vu1WkXDfFYpn6MgDJyJCHS6bREI/YQj59kf+/m +q/FDlNCKlw7kkb2GuR9C9JY5hQUm7ZABkRGjHwRbRv8bqXR32xgDAgMBAAGgTDBK +BgkqhkiG9w0BCQ4xPTA7MDkGA1UdEQQyMDCCDmRzb2NsYWItbmlmaS0ygh5kc29j +bGFiLmduNC0zLXdwOC1zb2Muc3VuZXQuc2UwDQYJKoZIhvcNAQELBQADggEBAG7p +jsz6CmL0Am6fDwlnBWML8EMgYcBhhFyiemX+6hrGxZLeTXCfFn/rSKpA8oDTfNyf +OK2BceBxePb4JJDzqkH3lAdqsuEqByJMnUQfEpLHEorXl1CN2iMaQ4F/1aX7H2g4 +dwtdYcHD/vsBu9bP3q4FM+SKE6GHcpgM+R6gyJ/yRhSWO2pmdbxSGM7MWRHc9XBz ++8kJNwhraGqNRYlwruCFxtqL3iMyMzz0x9QS4To1T/klybmCxZ+JJaFTdZtD5fFa +aL1/PoTJUl01ycxiL8nS0vVwh/UyFe/9c2z2OnUdJo2rsKp8NHRnHpkm8SfxYy/D +J2jaavn1ViQDB7T8OUc= +-----END CERTIFICATE REQUEST----- diff --git a/roles/ca/files/CA/reqs/dsoclab-nifi-3.req b/roles/ca/files/CA/reqs/dsoclab-nifi-3.req new file mode 100644 index 0000000..be09de6 --- /dev/null +++ b/roles/ca/files/CA/reqs/dsoclab-nifi-3.req @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICqjCCAZICAQAwGTEXMBUGA1UEAwwOZHNvY2xhYi1uaWZpLTMwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCnSKDTqx6MSWCLuL2aqlwJYgF5icnlXzBk +OMrxlS1IIIHvYKpv0e+0rImO6fUWfWQHsDt1w+HhFXFkYI8VjhaL3riXeaeDGXdb +qjaCN7lRp5W1H6ydgcbs+xQ6hHcenN08BjChXtCPsMlaE60OVle8HT++10xLN6KI +ck0aYogIoFe7IM5+r7dy8u6GGrEoO0H00+oUdJDhM0EakuIu7NMgYGBh1vwOP1dD +iF8QKSBRQEbtXZ/RWudLUvTUI2BKIqeSbNTLIAGmuVNxenEC4QVyQaVCn0FHLDB+ +DLFzzPdjYCc/PTaTFKp+Eu0b8ctN6HwyIFD1LX0GCpPPeoUrC6axAgMBAAGgTDBK +BgkqhkiG9w0BCQ4xPTA7MDkGA1UdEQQyMDCCDmRzb2NsYWItbmlmaS0zgh5kc29j +bGFiLmduNC0zLXdwOC1zb2Muc3VuZXQuc2UwDQYJKoZIhvcNAQELBQADggEBAKKZ +4Wy4xgX3E+O7mrt791MpRJTTl4qE0bgn54Y7Pzz2Do3SNeC7OpCtFHAVVfGDjpKY +vac+9+rtdn21ttT7IjwOIao2vKUdxzbLhqM5onUDQmattCqvh5ewMtH4rVfbKg4C +S7MlCb9tezg8zBx6T9ZO7eoTcIZwnS6jEoRhNABb1D46AAfEkW/4psXUpJ/e1Vv8 +UFt+mGqLIzZ2MLwINv7RM5koCEw/9WU4haEjJWvvTLmXVedV3eDidJCFQrNwRF68 +/VHLs21e+lZK7t0wAWGf/tzQOTzgy1AydtMI1cpRVFV1OcjEvSwjZProAVNjqBoq +CHJSL39w3B0+e51cKUo= +-----END CERTIFICATE REQUEST----- diff --git a/roles/ca/files/CA/reqs/dsoclab-odfe-1.req b/roles/ca/files/CA/reqs/dsoclab-odfe-1.req new file mode 100644 index 0000000..c680ab2 --- /dev/null +++ b/roles/ca/files/CA/reqs/dsoclab-odfe-1.req @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICqjCCAZICAQAwGTEXMBUGA1UEAwwOZHNvY2xhYi1vZGZlLTEwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDlRvZxzqI/YV6b88ZhiIeZCqy46J08X4xg +K0FbNvs5Cm+hFgIxrA29Dv+VWdjxIWu9ltZ7eQHRZRzKCSJQMAHq7bQpv7RwJduz +Helz7WOTAkyQIgRtMXQxroU8Eo2z9pIv3nV1j8ql8qISlPvoczA38Xy1TlmrcXMm +gJpGjUmUsAnlJxA0ncBTO/p3LgbAc44Pmh6MJzIM6/LSDKdSSMbuEiEV40UwiYFj +f78KW9EFyBz8X7u4giqSOzquGZ3pp2J8CvLCKuao1JsKqKJa7OWjGnPggz3S6HSp +C7DksP3+rR5X6A0gfKofMWm1DYw/HI3c03Fb8QRqrrktqL4oEfVLAgMBAAGgTDBK +BgkqhkiG9w0BCQ4xPTA7MDkGA1UdEQQyMDCCDmRzb2NsYWItb2RmZS0xgh5kc29j +bGFiLmduNC0zLXdwOC1zb2Muc3VuZXQuc2UwDQYJKoZIhvcNAQELBQADggEBAKzr +ygHDc8j5mTfhtfsRGfnEGfZiLYCV6YGBDazc+JaQiKzRXb5FWWTPbWZ0EtiQyVJA +J/yfkRQug6qQKLaNa22br7iP1LrPu0xQD6uTH9FgYu6J9YyfibBb0aav8em10JGQ +fdW7AmpLRwdLVii+DwJURcd5GEBBYyRPJzwloQmktPoBsnQ1EATqcStasE6AVoGu +1h2jlb6amEGJzUIe22CDuYs0SO5wHrn/t32EC4sub1I+jjmbiLo0r7uku1JAHT/C +wL19wSfauW079sNjgBPgJkFbjIW8lC4VQe8X0YmCXT/d6dqsPc3mJPK3AojYZGaM +Df8uQI9AQthiaGo1Yr8= +-----END CERTIFICATE REQUEST----- diff --git a/roles/ca/files/CA/reqs/dsoclab-odfe-2.req b/roles/ca/files/CA/reqs/dsoclab-odfe-2.req new file mode 100644 index 0000000..e97a639 --- /dev/null +++ b/roles/ca/files/CA/reqs/dsoclab-odfe-2.req @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICqjCCAZICAQAwGTEXMBUGA1UEAwwOZHNvY2xhYi1vZGZlLTIwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDHpeE/4KMiafG0FV65PNvXRLvZx2mUW8F9 +ozRNPogK4o8u05iUrrQfSaP9SycWcKsDq81MAip77Tr/SUkuO4j2WYUm3je0R54c +vqM4jrAia8rFEuW+QJxXek0CDNsTxZ3Shd+ZVzKQN1QIFkYBVNoMdzFjOUYniD/0 +rU7m/Qo+nZiaU5iQvpvu47KRx38/obli+HoezLQj7YKgXK2Ge1BTyexXBEQcEvYz +P2hC+LcvJZEcqrDfF2vtbcxtp9a3B2thpRZRnwIHrbJCQsoLsS7BbpQtPl6ISI+2 +ixWwSI41WOq1kJz7Wvr1xye3ETB6yzZ8T+pSAEdA6fDKZ2My4DNzAgMBAAGgTDBK +BgkqhkiG9w0BCQ4xPTA7MDkGA1UdEQQyMDCCDmRzb2NsYWItb2RmZS0ygh5kc29j +bGFiLmduNC0zLXdwOC1zb2Muc3VuZXQuc2UwDQYJKoZIhvcNAQELBQADggEBAA0a +Y6OxjtMpOkPMMTCOeMniiS4yzTxgfWe4ky6wOGE0E7ZXuQgb58CypGd7vJuUJvv2 +scIov+MH65NqswlHXoENSi1j042gc9+ce/Jr1MsLMwVW0JaY2fb5uxj8oi2GTcyF +ldcLvD6Ga/zCcyttkMy3zidOlWUd0VsMJFyQl+N9BaiUOoNP3M0ux22FQ0a6OcG4 +GlsD0w59dx/jYKlmp0eKFQ7ogaYWu3O2X+BFMigGFq2rISd57WdEZk+K8ZGazNW8 +li3076e1DflticRO/uy7q9xzvuLFlfSFLoQgem8Zp9CgNJYfa/QVnfVQH7iZLm2K +8AHzPPLphDavqr2iy5o= +-----END CERTIFICATE REQUEST----- diff --git a/roles/ca/files/CA/reqs/dsoclab-thehive.req b/roles/ca/files/CA/reqs/dsoclab-thehive.req new file mode 100644 index 0000000..1bcb046 --- /dev/null +++ b/roles/ca/files/CA/reqs/dsoclab-thehive.req @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICrDCCAZQCAQAwGjEYMBYGA1UEAwwPZHNvY2xhYi10aGVoaXZlMIIBIjANBgkq +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAusVNIKRgt2Eh7Rahb3LE3qEAwO/8XaGJ +NAcV0rQ6FLiVdY6BcUlGHciBy/Hsx1oS9olg5MiYGmHILRKPc+74nYi1fzBwlym0 +q0Mt3NunEEfHtSabEYX70yePOlW86ngXuIkQo6QQYDnDf0Ilqf6Efzhe9D3DmD1W +ubqBBlWNZRLwTiOIHZgML25PZ/1OZzmRuQFSEqqeu3rI6o9KLRj4aZo6oMhu497G +275MWeDPvDRPLLDvPoJa32i+uPvMX2ryPmbUxsX2C2fpZIUVh2Bv3LRbE2+wm/jz +2sGRnoFfFsqeFAHBHM4q08g8D76xN6rJCGgr3vlEbB6QpBK89TxGvQIDAQABoE0w +SwYJKoZIhvcNAQkOMT4wPDA6BgNVHREEMzAxgg9kc29jbGFiLXRoZWhpdmWCHmRz +b2NsYWIuZ240LTMtd3A4LXNvYy5zdW5ldC5zZTANBgkqhkiG9w0BAQsFAAOCAQEA +SrEnsOQ1zqalbv8SBBMBhRXlrKH74UUc8uhwqS9peQv0ILmJQqZ2FZx3HRyRcM2X +30qhiND97sMs0H1D4ViDAk5lScX4LNCgPx7YhAVtxXAR8Y1An47GQHF2ln1veRGo +UJ6kZO0VTnf0TSWAbEv2EwHIT6GsRiWv9xDebrtRByZXWEJF2z/PkAMfXOaYHu+9 +ZHc7oyHm06/iN9bC7n6dfPSq+odfuYKYc90Bc5pS/bOLZuUCNuWS8fZ1QdtaTAdK +FGms4qBL3IIWWrKzxGBtCa0B/fvCrqrNENaE0J5In2nYiobU2A8wdAb3qCrMHsDW +sXrXrXiWYjb0jUyMIOsKhg== +-----END CERTIFICATE REQUEST----- diff --git a/roles/ca/files/CA/safessl-easyrsa.cnf b/roles/ca/files/CA/safessl-easyrsa.cnf new file mode 100644 index 0000000..936ba8b --- /dev/null +++ b/roles/ca/files/CA/safessl-easyrsa.cnf @@ -0,0 +1,140 @@ +# For use with Easy-RSA 3.1 and OpenSSL or LibreSSL + +RANDFILE = roles/ca/files/CA/.rnd + +#################################################################### +[ ca ] +default_ca = CA_default # The default ca section + +#################################################################### +[ CA_default ] + +dir = roles/ca/files/CA # Where everything is kept +certs = roles/ca/files/CA # Where the issued certs are kept +crl_dir = roles/ca/files/CA # Where the issued crl are kept +database = roles/ca/files/CA/index.txt # database index file. +new_certs_dir = roles/ca/files/CA/certs_by_serial # default place for new certs. + +certificate = roles/ca/files/CA/ca.crt # The CA certificate +serial = roles/ca/files/CA/serial # The current serial number +crl = roles/ca/files/CA/crl.pem # The current CRL +private_key = roles/ca/files/CA/private/ca.key # The private key +RANDFILE = roles/ca/files/CA/.rand # private random number file + +x509_extensions = basic_exts # The extentions to add to the cert + +# This allows a V2 CRL. Ancient browsers don't like it, but anything Easy-RSA +# is designed for will. In return, we get the Issuer attached to CRLs. +crl_extensions = crl_ext + +default_days = 1080 # how long to certify for +default_crl_days= 180 # how long before next CRL +default_md = sha256 # use public key default MD +preserve = no # keep passed DN ordering + +# This allows to renew certificates which have not been revoked +unique_subject = no + +# A few difference way of specifying how similar the request should look +# For type CA, the listed attributes must be the same, and the optional +# and supplied fields are just that :-) +policy = policy_anything + +# For the 'anything' policy, which defines allowed DN fields +[ policy_anything ] +countryName = optional +stateOrProvinceName = optional +localityName = optional +organizationName = optional +organizationalUnitName = optional +commonName = supplied +name = optional +emailAddress = optional + +#################################################################### +# Easy-RSA request handling +# We key off $DN_MODE to determine how to format the DN +[ req ] +default_bits = 2048 +default_keyfile = privkey.pem +default_md = sha256 +distinguished_name = cn_only +x509_extensions = easyrsa_ca # The extentions to add to the self signed cert + +# A placeholder to handle the $EXTRA_EXTS feature: +#%EXTRA_EXTS% # Do NOT remove or change this line as $EXTRA_EXTS support requires it + +#################################################################### +# Easy-RSA DN (Subject) handling + +# Easy-RSA DN for cn_only support: +[ cn_only ] +commonName = Common Name (eg: your user, host, or server name) +commonName_max = 64 +commonName_default = ChangeMe + +# Easy-RSA DN for org support: +[ org ] +countryName = Country Name (2 letter code) +countryName_default = US +countryName_min = 2 +countryName_max = 2 + +stateOrProvinceName = State or Province Name (full name) +stateOrProvinceName_default = California + +localityName = Locality Name (eg, city) +localityName_default = San Francisco + +0.organizationName = Organization Name (eg, company) +0.organizationName_default = Copyleft Certificate Co + +organizationalUnitName = Organizational Unit Name (eg, section) +organizationalUnitName_default = My Organizational Unit + +commonName = Common Name (eg: your user, host, or server name) +commonName_max = 64 +commonName_default = ChangeMe + +emailAddress = Email Address +emailAddress_default = me@example.net +emailAddress_max = 64 + +#################################################################### +# Easy-RSA cert extension handling + +# This section is effectively unused as the main script sets extensions +# dynamically. This core section is left to support the odd usecase where +# a user calls openssl directly. +[ basic_exts ] +basicConstraints = CA:FALSE +subjectKeyIdentifier = hash +authorityKeyIdentifier = keyid,issuer:always + +# The Easy-RSA CA extensions +[ easyrsa_ca ] + +# PKIX recommendations: + +subjectKeyIdentifier=hash +authorityKeyIdentifier=keyid:always,issuer:always + +# This could be marked critical, but it's nice to support reading by any +# broken clients who attempt to do so. +basicConstraints = CA:true + +# Limit key usage to CA tasks. If you really want to use the generated pair as +# a self-signed cert, comment this out. +keyUsage = cRLSign, keyCertSign + +# nsCertType omitted by default. Let's try to let the deprecated stuff die. +# nsCertType = sslCA + +# CRL extensions. +[ crl_ext ] + +# Only issuerAltName and authorityKeyIdentifier make any sense in a CRL. + +# issuerAltName=issuer:copy +authorityKeyIdentifier=keyid:always,issuer:always + diff --git a/roles/ca/files/CA/serial b/roles/ca/files/CA/serial new file mode 100644 index 0000000..a09a0c3 --- /dev/null +++ b/roles/ca/files/CA/serial @@ -0,0 +1 @@ +A7217943DDD1145BC6F68CBA362CB35C diff --git a/roles/ca/files/CA/serial.old b/roles/ca/files/CA/serial.old new file mode 100644 index 0000000..5762571 --- /dev/null +++ b/roles/ca/files/CA/serial.old @@ -0,0 +1 @@ +a7217943ddd1145bc6f68cba362cb35b diff --git a/roles/ca/files/truststore/SOCTOOLS-CA.crt b/roles/ca/files/truststore/SOCTOOLS-CA.crt new file mode 100644 index 0000000..04b1f20 --- /dev/null +++ b/roles/ca/files/truststore/SOCTOOLS-CA.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDNTCCAh2gAwIBAgIJAIp0kyaAW0K3MA0GCSqGSIb3DQEBCwUAMBYxFDASBgNV +BAMMC1NPQ1RPT0xTLUNBMB4XDTIwMTAzMDEwNDcxOFoXDTMwMTAyODEwNDcxOFow +FjEUMBIGA1UEAwwLU09DVE9PTFMtQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQC1GZDFZJPR7AYkhEsB9U6qtK+40di3KOeTwRosJ7hvP1FQjwnIC37B +UlVq15KEgRTCcXgLH0CdtzC1Rkz+AUCLyKTOGmNCqmvyMcESdpuoI1NULkv0QeYX +Mj4Q1Lh0RldqZpEr32UfsVowBPPhijAUlVAHeJLvji/tnUvI++9no2hx03UAhjTM +M59AviYsRT3DUkciNSllpwV+7B2pgnpRgzsbVGP2cheaaRYG9DAbRTLrAtVxO0WJ +c/zNGSpvXuOyBK30/pwGMvhNGPeckElSpDfaepuA8ZDcfaKNk0kEBvzIlUrpZBmv +tBc5DmpfEBlSk5UK/0XSblKE5dOqlWc1AgMBAAGjgYUwgYIwHQYDVR0OBBYEFHkG +ykDTn5pUrtMzTfI4PrYL8z3PMEYGA1UdIwQ/MD2AFHkGykDTn5pUrtMzTfI4PrYL +8z3PoRqkGDAWMRQwEgYDVQQDDAtTT0NUT09MUy1DQYIJAIp0kyaAW0K3MAwGA1Ud +EwQFMAMBAf8wCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBCwUAA4IBAQA0XK1+Eg+j +JdwKnUpnwPq+fsyrCs4TF1DgwtqY4yr1KCw0QSPMK9ldLp62lJaRnrPE7ZGOQ7sd +z82yEM8nMulNREp3TZwuVFaWgs0yLVKkfqZ0jNGDuEf8AJAynI4ynRbtYxtYzBDy +XgJPk9lKK/gR14IXBet/dGbZf4yHiMzldMCb0dWzyDS1S+Y1iLTRCmpmRbFow12g +CjNoSxdyoJPZavcOVWa4tDc3PLMdkgdY20ewo3IvCQTOg9ogVX4Hq5/M4xTz8XUX +nHeUqshdkPVGFCIujCBg9131RYSE0SkVrPUaIbP9tgzabkZWwhiq8oSpTBmIi9qh +GPiQTFGknE1U +-----END CERTIFICATE----- diff --git a/roles/ca/files/truststore/cacerts.jks b/roles/ca/files/truststore/cacerts.jks new file mode 100644 index 0000000000000000000000000000000000000000..9d4001b7d9a466941cda896b6bf145bf2f02020c GIT binary patch literal 893 zcmezO_TO6u1_mYu1_nkj&0U<IT#}!kQ>>eu$iTo@S}9llhJiIg&(y$@fq~i5po!Vk zpovL#0W%XL6B8#xSIK0xhG?hl2E1&XT5TR}-+37sxmg(u#0*6YgxHuvS(tgagZ-UD z{QZ4`b)6jz<ivT63=9p74GaxT%ndD~#CbtXBMT@Or@kgeC1fiYSs9p{82K3tni#p5 zniv@wwn|Ponlky~8#a{|Z^o~FtG2A)aq-4>jpvgOO6jQY$hQv+=;u7aU3V}jH0%1L zmPV07g%#ZL4s*8~Y<2Vb$LP>~V#ztFWT#cxp9~KQmCatE92}zO{l)Q_xRIT}l^rE+ z;aO=DweP3OZ;Ucv`TVfUKxAqFd&Q*pefn?bdY}0HK7DaU;pI|>Hj^{P^Bwl7>A2b+ z4susA)l6N^TK7hFWm8pPv$b?c^0y-KS(##NUks#Ojb1ZdEwpy+EdFy=QY%01@g|nF zU;fQuGy35x@qNw&&!8pdx2k40e4KEnc2VzSPZqX6C#HJ6Op#o_Mck4vD_%e{X!2C9 z|E`zvf?A$lUNtq{l!=*<fpKwTt3hLvfh-$ys4O3g7>h_H+bM_3^Jj&uyKL<H$--_M z_h;Ml25ul}Wfpq_+Xk!(7D_FVz!eWoNHNX>GDnz&)qt6i@xK8#h{w;u!py|Th8$De z;Fw}$Fo{`PC&a&4^$youuk-`I_SKzP&2>&#JmA5hTQeSOebvx0aa2B|eKS^X-nJ>z zCeGV@<n6>h=iRdB&u$VpuWt0x*Tt*ccaC02*tDjzM!G>u>Xw!CTx{Oq{)b_L(VRY` zxnggVr6bM=e2Qc8pM29x`-kB5CUMr+^(ARH>wDTe&O9wSF#F=w%_mH@dOtJm*m998 zE6sId#^KlnT*evR;zbK4-^}{X7n-(Xi@CYYX4y&X5x3npEH2XLWI5M-OChw5ef9h^ zk3~LzEES(qK4sO3*a=_VM3nS;6cWD2esyhWxu_|+=Bt$A=D*u`Zsoa!9g<k}sb!^) nWJmX{g%Up|_yjJQ;~Qf5+vDoDTqXObIbI&Z%6$8^_~bbON?lF- literal 0 HcmV?d00001 diff --git a/roles/cortex/files/SOCTOOLS-CA.crt b/roles/cortex/files/SOCTOOLS-CA.crt new file mode 100644 index 0000000..04b1f20 --- /dev/null +++ b/roles/cortex/files/SOCTOOLS-CA.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDNTCCAh2gAwIBAgIJAIp0kyaAW0K3MA0GCSqGSIb3DQEBCwUAMBYxFDASBgNV +BAMMC1NPQ1RPT0xTLUNBMB4XDTIwMTAzMDEwNDcxOFoXDTMwMTAyODEwNDcxOFow +FjEUMBIGA1UEAwwLU09DVE9PTFMtQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQC1GZDFZJPR7AYkhEsB9U6qtK+40di3KOeTwRosJ7hvP1FQjwnIC37B +UlVq15KEgRTCcXgLH0CdtzC1Rkz+AUCLyKTOGmNCqmvyMcESdpuoI1NULkv0QeYX +Mj4Q1Lh0RldqZpEr32UfsVowBPPhijAUlVAHeJLvji/tnUvI++9no2hx03UAhjTM +M59AviYsRT3DUkciNSllpwV+7B2pgnpRgzsbVGP2cheaaRYG9DAbRTLrAtVxO0WJ +c/zNGSpvXuOyBK30/pwGMvhNGPeckElSpDfaepuA8ZDcfaKNk0kEBvzIlUrpZBmv +tBc5DmpfEBlSk5UK/0XSblKE5dOqlWc1AgMBAAGjgYUwgYIwHQYDVR0OBBYEFHkG +ykDTn5pUrtMzTfI4PrYL8z3PMEYGA1UdIwQ/MD2AFHkGykDTn5pUrtMzTfI4PrYL +8z3PoRqkGDAWMRQwEgYDVQQDDAtTT0NUT09MUy1DQYIJAIp0kyaAW0K3MAwGA1Ud +EwQFMAMBAf8wCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBCwUAA4IBAQA0XK1+Eg+j +JdwKnUpnwPq+fsyrCs4TF1DgwtqY4yr1KCw0QSPMK9ldLp62lJaRnrPE7ZGOQ7sd +z82yEM8nMulNREp3TZwuVFaWgs0yLVKkfqZ0jNGDuEf8AJAynI4ynRbtYxtYzBDy +XgJPk9lKK/gR14IXBet/dGbZf4yHiMzldMCb0dWzyDS1S+Y1iLTRCmpmRbFow12g +CjNoSxdyoJPZavcOVWa4tDc3PLMdkgdY20ewo3IvCQTOg9ogVX4Hq5/M4xTz8XUX +nHeUqshdkPVGFCIujCBg9131RYSE0SkVrPUaIbP9tgzabkZWwhiq8oSpTBmIi9qh +GPiQTFGknE1U +-----END CERTIFICATE----- diff --git a/roles/cortex/files/cacerts.jks b/roles/cortex/files/cacerts.jks new file mode 100644 index 0000000000000000000000000000000000000000..9d4001b7d9a466941cda896b6bf145bf2f02020c GIT binary patch literal 893 zcmezO_TO6u1_mYu1_nkj&0U<IT#}!kQ>>eu$iTo@S}9llhJiIg&(y$@fq~i5po!Vk zpovL#0W%XL6B8#xSIK0xhG?hl2E1&XT5TR}-+37sxmg(u#0*6YgxHuvS(tgagZ-UD z{QZ4`b)6jz<ivT63=9p74GaxT%ndD~#CbtXBMT@Or@kgeC1fiYSs9p{82K3tni#p5 zniv@wwn|Ponlky~8#a{|Z^o~FtG2A)aq-4>jpvgOO6jQY$hQv+=;u7aU3V}jH0%1L zmPV07g%#ZL4s*8~Y<2Vb$LP>~V#ztFWT#cxp9~KQmCatE92}zO{l)Q_xRIT}l^rE+ z;aO=DweP3OZ;Ucv`TVfUKxAqFd&Q*pefn?bdY}0HK7DaU;pI|>Hj^{P^Bwl7>A2b+ z4susA)l6N^TK7hFWm8pPv$b?c^0y-KS(##NUks#Ojb1ZdEwpy+EdFy=QY%01@g|nF zU;fQuGy35x@qNw&&!8pdx2k40e4KEnc2VzSPZqX6C#HJ6Op#o_Mck4vD_%e{X!2C9 z|E`zvf?A$lUNtq{l!=*<fpKwTt3hLvfh-$ys4O3g7>h_H+bM_3^Jj&uyKL<H$--_M z_h;Ml25ul}Wfpq_+Xk!(7D_FVz!eWoNHNX>GDnz&)qt6i@xK8#h{w;u!py|Th8$De z;Fw}$Fo{`PC&a&4^$youuk-`I_SKzP&2>&#JmA5hTQeSOebvx0aa2B|eKS^X-nJ>z zCeGV@<n6>h=iRdB&u$VpuWt0x*Tt*ccaC02*tDjzM!G>u>Xw!CTx{Oq{)b_L(VRY` zxnggVr6bM=e2Qc8pM29x`-kB5CUMr+^(ARH>wDTe&O9wSF#F=w%_mH@dOtJm*m998 zE6sId#^KlnT*evR;zbK4-^}{X7n-(Xi@CYYX4y&X5x3npEH2XLWI5M-OChw5ef9h^ zk3~LzEES(qK4sO3*a=_VM3nS;6cWD2esyhWxu_|+=Bt$A=D*u`Zsoa!9g<k}sb!^) nWJmX{g%Up|_yjJQ;~Qf5+vDoDTqXObIbI&Z%6$8^_~bbON?lF- literal 0 HcmV?d00001 diff --git a/roles/cortex/files/cortexsecret b/roles/cortex/files/cortexsecret new file mode 100644 index 0000000..3119d12 --- /dev/null +++ b/roles/cortex/files/cortexsecret @@ -0,0 +1,3 @@ +{ + "value" : "06ca9734-9621-4c6d-bb04-8ee68e028dd9" +} \ No newline at end of file diff --git a/roles/cortex/files/dsoclab-cortex.crt b/roles/cortex/files/dsoclab-cortex.crt new file mode 100644 index 0000000..a743bd0 --- /dev/null +++ b/roles/cortex/files/dsoclab-cortex.crt @@ -0,0 +1,88 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 5d:c4:bc:49:5f:a0:76:a8:13:a4:c2:32:61:64:0d:92 + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=SOCTOOLS-CA + Validity + Not Before: Oct 30 10:47:29 2020 GMT + Not After : Oct 15 10:47:29 2023 GMT + Subject: CN=dsoclab-cortex + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:cd:09:6b:14:33:4a:47:75:5b:d3:d9:67:3b:4d: + ad:1f:a7:1f:33:ab:86:b1:aa:3b:09:ab:1a:a6:fb: + a0:60:04:e3:68:33:0e:85:54:d1:70:61:8a:b9:d5: + d6:b5:6c:c2:b3:36:02:94:b7:1d:18:93:5f:88:81: + ff:2a:f4:99:58:6d:d7:96:e2:d2:64:77:b9:74:44: + 3c:f0:fb:5b:0f:43:7d:38:5d:fe:b0:db:05:7a:a9: + c5:10:24:75:13:c8:2d:da:69:be:e3:43:33:f0:28: + 30:9a:53:f8:f8:d3:10:32:35:ec:1d:87:ab:1e:2c: + b5:00:7c:9f:8f:61:e0:5d:56:15:8c:46:45:09:78: + 02:78:10:c0:af:2f:25:6c:c2:5b:ed:5f:c1:33:0b: + f8:c8:13:dc:df:c3:fc:05:90:ff:06:9e:cb:bc:1d: + 2b:c2:57:f2:bd:aa:22:b3:4b:f5:ca:b2:b8:00:18: + f1:14:10:b8:5e:69:9f:ed:fc:04:83:d9:2e:b7:9a: + 8a:45:1c:54:71:8f:61:02:6a:8a:84:2f:67:df:92: + 3a:0c:5f:e5:b6:e7:6c:27:69:1f:5b:06:d6:7f:e6: + df:ab:2f:31:a5:cd:63:32:60:c0:07:50:6c:0d:39: + cb:68:ae:3c:b2:da:0f:20:06:77:2c:28:ab:3a:30: + 92:1b + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + 9A:0E:E1:26:13:A7:12:5F:A4:F1:41:C0:09:FC:AD:EB:4E:66:C2:50 + X509v3 Authority Key Identifier: + keyid:79:06:CA:40:D3:9F:9A:54:AE:D3:33:4D:F2:38:3E:B6:0B:F3:3D:CF + DirName:/CN=SOCTOOLS-CA + serial:8A:74:93:26:80:5B:42:B7 + + X509v3 Extended Key Usage: + TLS Web Server Authentication, TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature, Key Encipherment + X509v3 Subject Alternative Name: + DNS:dsoclab-cortex, DNS:dsoclab.gn4-3-wp8-soc.sunet.se + Signature Algorithm: sha256WithRSAEncryption + 27:2e:a1:0c:8d:fb:b1:36:ff:4e:ac:00:91:75:81:4b:20:79: + 3f:da:1c:e1:80:b9:8c:6b:60:47:a5:8c:bf:1f:34:98:61:95: + 00:bb:79:d4:9e:c8:fb:dc:fb:6a:48:b2:69:d1:1a:04:cc:52: + ca:0b:48:01:3e:94:1e:68:0b:e3:4d:fa:12:c4:aa:ff:b6:5b: + 0c:3c:80:21:fe:50:87:8a:14:3a:7d:e7:a3:5e:b6:dc:22:ba: + cc:97:69:00:a8:78:08:dd:66:d1:cb:ca:28:41:b9:cc:8a:6b: + 7c:40:b7:5e:1d:a1:88:5a:b3:fd:18:77:e9:c4:48:fd:38:8f: + 06:6e:78:0e:f1:1a:1b:b2:6c:0a:df:38:11:e3:5a:3d:2a:5b: + de:41:63:14:ab:25:8e:a6:9f:a8:b7:32:9e:dc:23:45:f3:6b: + 6d:86:b7:17:b3:53:df:55:bd:cb:41:a1:b7:73:ae:21:1b:68: + b3:b1:0a:e5:e6:0c:2a:77:76:23:f3:87:ee:5f:0e:6d:cd:3b: + 94:9a:6f:f2:fd:4f:2d:72:a3:21:94:55:c0:4a:6c:2b:13:e3: + 82:13:a5:1f:82:6b:ae:6e:e2:ec:eb:7a:25:6a:f2:9e:45:d7: + 0a:7d:75:be:9d:f7:94:6f:ce:a5:27:d6:9b:dc:d2:12:54:64: + 09:c4:f6:a9 +-----BEGIN CERTIFICATE----- +MIIDljCCAn6gAwIBAgIQXcS8SV+gdqgTpMIyYWQNkjANBgkqhkiG9w0BAQsFADAW +MRQwEgYDVQQDDAtTT0NUT09MUy1DQTAeFw0yMDEwMzAxMDQ3MjlaFw0yMzEwMTUx +MDQ3MjlaMBkxFzAVBgNVBAMMDmRzb2NsYWItY29ydGV4MIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAzQlrFDNKR3Vb09lnO02tH6cfM6uGsao7Casapvug +YATjaDMOhVTRcGGKudXWtWzCszYClLcdGJNfiIH/KvSZWG3XluLSZHe5dEQ88Ptb +D0N9OF3+sNsFeqnFECR1E8gt2mm+40Mz8CgwmlP4+NMQMjXsHYerHiy1AHyfj2Hg +XVYVjEZFCXgCeBDAry8lbMJb7V/BMwv4yBPc38P8BZD/Bp7LvB0rwlfyvaois0v1 +yrK4ABjxFBC4Xmmf7fwEg9kut5qKRRxUcY9hAmqKhC9n35I6DF/ltudsJ2kfWwbW +f+bfqy8xpc1jMmDAB1BsDTnLaK48stoPIAZ3LCirOjCSGwIDAQABo4HcMIHZMAkG +A1UdEwQCMAAwHQYDVR0OBBYEFJoO4SYTpxJfpPFBwAn8retOZsJQMEYGA1UdIwQ/ +MD2AFHkGykDTn5pUrtMzTfI4PrYL8z3PoRqkGDAWMRQwEgYDVQQDDAtTT0NUT09M +Uy1DQYIJAIp0kyaAW0K3MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAL +BgNVHQ8EBAMCBaAwOQYDVR0RBDIwMIIOZHNvY2xhYi1jb3J0ZXiCHmRzb2NsYWIu +Z240LTMtd3A4LXNvYy5zdW5ldC5zZTANBgkqhkiG9w0BAQsFAAOCAQEAJy6hDI37 +sTb/TqwAkXWBSyB5P9oc4YC5jGtgR6WMvx80mGGVALt51J7I+9z7akiyadEaBMxS +ygtIAT6UHmgL4036EsSq/7ZbDDyAIf5Qh4oUOn3no1623CK6zJdpAKh4CN1m0cvK +KEG5zIprfEC3Xh2hiFqz/Rh36cRI/TiPBm54DvEaG7JsCt84EeNaPSpb3kFjFKsl +jqafqLcyntwjRfNrbYa3F7NT31W9y0Ght3OuIRtos7EK5eYMKnd2I/OH7l8Obc07 +lJpv8v1PLXKjIZRVwEpsKxPjghOlH4Jrrm7i7Ot6JWrynkXXCn11vp33lG/OpSfW +m9zSElRkCcT2qQ== +-----END CERTIFICATE----- diff --git a/roles/cortex/files/dsoclab-cortex.key b/roles/cortex/files/dsoclab-cortex.key new file mode 100644 index 0000000..827da54 --- /dev/null +++ b/roles/cortex/files/dsoclab-cortex.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDNCWsUM0pHdVvT +2Wc7Ta0fpx8zq4axqjsJqxqm+6BgBONoMw6FVNFwYYq51da1bMKzNgKUtx0Yk1+I +gf8q9JlYbdeW4tJkd7l0RDzw+1sPQ304Xf6w2wV6qcUQJHUTyC3aab7jQzPwKDCa +U/j40xAyNewdh6seLLUAfJ+PYeBdVhWMRkUJeAJ4EMCvLyVswlvtX8EzC/jIE9zf +w/wFkP8Gnsu8HSvCV/K9qiKzS/XKsrgAGPEUELheaZ/t/ASD2S63mopFHFRxj2EC +aoqEL2ffkjoMX+W252wnaR9bBtZ/5t+rLzGlzWMyYMAHUGwNOctorjyy2g8gBncs +KKs6MJIbAgMBAAECggEAIdhGJqV4w2bp64Rdd/qQc0Mg8WSE7VrOOABYe+vZQ0BL +UW3sHbIsiEJxpc9Yi8YSNYba0jWPxfi9skjTGAIcNe6bwbpbRF5G7Jw++wBivZhE +WUOawRLGSsMvVkTOVp+agg0mh1kWf7QCodbuqBQe/krMWOuGIYr7rcLki8R6Rq2d +WuW8Kf697ciklh/6cyy1J6axe1LNT906lYvyRock246KbN517wWw7/fu47Mb2fdC +U6beFxbmbc5vk4lrViE7gSNkY97Vr/uXW9xlyRzvpNJuzZrm00CgNF1MnOnwf3l1 +k8kc63RMkUJGVWcxo5ubzLXpv4CnnmUNPfaSx+CeUQKBgQDuUT8JOu2vfzAC2VOQ +OfKR4NgMQ8fnK6T67zpLDeNUAGW+hBi62ewD8xxRse0j/rWXgvADBE1GplPXicZI +Q0o0VgIiL3NFQgCP7rvtPGE9VQXHYgd+ULKCHcPEBwonlbAhiHSwVnBqSFoqWdj+ +SHiBn4AD1ARoD6WSEVi3X6UU/QKBgQDcQATvzbbcr41vQHm9u1O7v0slk306A4yY +ItXk+GbtLEoLAiLy7n0REKybZAzniuLCDAQ1h1bWLkqRle26XqVfg3YaxGpoJODy +gPgr2Hi4Y/lcFrwRThUHEu8eaUWVRtY3B9Rgi5VjLVqydgI3/AFWdlzIVkhBeN0w +MOtKdEg69wKBgG+wD/TJcz8+QkfzhiAfqDkJwPbuhS8n2yfnGdC274UcspI44kYf +f2bSdsEqu9KUupIJQWaIi5bCuKRY415Wet5QOKvAxSr+JblOzy/9jizqPc0VeiGO +vDoSrP6ftfibRHJSuy0xNXn58pfKh9GUMTW+hIZGxNHoE1aDXqqB3qIZAoGBAIIc +A46SDLNDtZ6CDSjrD6T6dW8GONTboeOBuK+hmlQDdN4Z7gFqp1E8c2r8aK8jmZ8e +MCJbCA5QnFZyplQRc0oAQ/W+EEnjd0tqqrBkGbR7wqQG/iSO5tcd9UoW0DdF+Gfb +5Tb/XkmPUmPYWKkv4q5sD5V9ewPKXYgJbgW2ubCzAoGACfaFTBM3zZ2rqjJUk8+F +fGcuDeh/ZFk4MgcN5nbdKHwyXDhBlUY1FzLZlKi5J1lRyTInZUP8KYnXogw757Md +oa5wPlnw0a6VSHX1ZZUwa0yz1Rrv5M5CA4vyNBENCaHELKLoRWwbAook1gFie6cV +nrCXNbsWttgWkzqLDWkPT5M= +-----END PRIVATE KEY----- diff --git a/roles/cortex/files/dsoclab-cortex.p12 b/roles/cortex/files/dsoclab-cortex.p12 new file mode 100644 index 0000000000000000000000000000000000000000..252b3e7ef466cf7a4090ab3d5c551bd8dcaf5e5f GIT binary patch literal 3397 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 literal 0 HcmV?d00001 diff --git a/roles/cortex/files/logback.xml b/roles/cortex/files/logback.xml new file mode 100644 index 0000000..2dfba26 --- /dev/null +++ b/roles/cortex/files/logback.xml @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="UTF-8"?> +<configuration debug="false"> + + <conversionRule conversionWord="coloredLevel" + converterClass="play.api.libs.logback.ColoredLevel"/> + + <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>/var/log/cortex/application.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <fileNamePattern>/var/log/cortex/application.%i.log.zip</fileNamePattern> + <minIndex>1</minIndex> + <maxIndex>10</maxIndex> + </rollingPolicy> + <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>10MB</maxFileSize> + </triggeringPolicy> + <encoder> + <pattern>%date [%level] from %logger in %thread - %message%n%xException</pattern> + </encoder> + </appender> + + <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> + <encoder> + <pattern>%coloredLevel %logger{15} - %message%n%xException{10} + </pattern> + </encoder> + </appender> + + <appender name="ASYNCFILE" class="ch.qos.logback.classic.AsyncAppender"> + <appender-ref ref="FILE"/> + </appender> + + <appender name="ASYNCSTDOUT" class="ch.qos.logback.classic.AsyncAppender"> + <appender-ref ref="STDOUT"/> + </appender> + + <logger name="play" level="DEBUG"/> + <logger name="application" level="DEBUG"/> + + <logger name="com.gargoylesoftware.htmlunit.javascript" level="OFF"/> + + <root level="INFO"> + <appender-ref ref="ASYNCFILE"/> + <appender-ref ref="ASYNCSTDOUT"/> + </root> + +</configuration> diff --git a/roles/haproxy/files/dsoclab-haproxy.crt b/roles/haproxy/files/dsoclab-haproxy.crt new file mode 100644 index 0000000..5be39cb --- /dev/null +++ b/roles/haproxy/files/dsoclab-haproxy.crt @@ -0,0 +1,88 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + d2:7b:43:cb:9b:fb:09:cf:cc:86:ef:d1:01:9a:42:fc + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=SOCTOOLS-CA + Validity + Not Before: Oct 30 10:47:30 2020 GMT + Not After : Oct 15 10:47:30 2023 GMT + Subject: CN=dsoclab-haproxy + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:c9:c7:22:33:0b:0b:0f:a0:8c:c4:a9:81:37:bd: + 51:2f:47:32:fa:1b:88:45:b1:bb:11:43:3d:de:b3: + 70:67:d7:8b:39:5a:8f:13:fb:2f:78:08:b1:b1:32: + c6:d1:0e:e4:d3:2e:3a:db:84:db:d2:65:6b:26:24: + 6c:d7:16:e5:a5:90:8e:02:46:13:02:0a:96:66:46: + 87:b7:b0:ee:56:4c:3c:d8:ae:4c:7d:ef:5b:aa:6e: + 01:8e:89:fe:4c:b9:de:6c:ba:e4:3f:8d:f8:d7:3a: + ed:b2:29:9a:5b:ac:5a:86:66:05:f3:19:2f:59:8d: + 7c:8b:6a:97:1e:43:8a:36:80:b2:e9:e1:84:f6:94: + bc:13:11:31:b8:d2:5a:72:ed:68:c3:b1:37:e4:5b: + 91:82:62:aa:13:f2:b6:e0:3a:aa:85:66:70:0a:a9: + ad:5c:a7:52:ff:dc:f9:99:5e:e5:15:d5:0c:fe:cd: + 27:cb:98:9e:5a:69:ca:71:74:31:e6:26:df:ec:d2: + 42:43:b9:f3:04:8e:2c:7a:28:a6:f9:8e:ba:64:3c: + 69:0e:ac:f5:dc:d5:f3:2a:50:47:50:d4:8c:f5:ee: + 31:08:73:69:1f:ae:42:1d:52:84:5d:47:68:dd:a3: + 1f:07:57:ec:3e:9e:0d:23:78:16:41:bc:68:f2:4f: + e9:19 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + 49:DC:74:02:17:71:C3:D0:A0:64:31:9E:60:2B:B4:38:43:62:DE:98 + X509v3 Authority Key Identifier: + keyid:79:06:CA:40:D3:9F:9A:54:AE:D3:33:4D:F2:38:3E:B6:0B:F3:3D:CF + DirName:/CN=SOCTOOLS-CA + serial:8A:74:93:26:80:5B:42:B7 + + X509v3 Extended Key Usage: + TLS Web Server Authentication, TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature, Key Encipherment + X509v3 Subject Alternative Name: + DNS:dsoclab-haproxy, DNS:dsoclab.gn4-3-wp8-soc.sunet.se + Signature Algorithm: sha256WithRSAEncryption + 04:a0:71:31:d2:11:93:09:96:c8:1b:2a:31:b8:b9:34:07:ac: + 89:cb:b0:6c:b0:f0:17:5f:18:3c:a6:96:ca:b3:fa:c7:af:40: + 17:e1:7e:e4:dc:ee:fe:5c:dc:86:40:b7:2f:9d:c0:9e:fd:16: + 6b:85:ab:c2:a8:63:1f:fe:03:2b:89:6a:80:c9:2e:ae:cc:3d: + 19:75:32:0e:56:57:16:27:02:51:49:1d:b3:78:aa:57:d3:00: + 9b:93:fe:6d:a3:37:ad:26:35:57:e1:5f:90:bf:ef:30:bc:68: + f3:bf:7c:59:69:4f:61:30:2d:48:66:a6:44:2a:51:63:6e:4f: + a7:8f:96:7e:91:b2:b2:46:bc:97:1b:01:df:c0:24:5c:b2:aa: + 8d:20:3a:25:5d:8a:1c:84:53:0d:d4:f6:d5:81:5d:30:de:c4: + d7:fa:42:9c:79:68:92:56:b7:76:69:c6:c9:ad:07:47:a6:d2: + 46:d4:a5:0c:10:a9:03:21:4d:56:40:e5:28:e3:fa:70:1b:23: + 32:68:07:3d:d6:8a:3a:fb:6d:3b:a6:20:16:1b:09:f3:47:f0: + 2a:4f:dc:97:86:56:37:96:42:1b:89:b8:76:1a:ab:7a:25:4e: + e8:62:d9:a0:3b:ec:62:72:64:64:ca:87:9c:be:0a:08:09:52: + ab:03:89:2b +-----BEGIN CERTIFICATE----- +MIIDmTCCAoGgAwIBAgIRANJ7Q8ub+wnPzIbv0QGaQvwwDQYJKoZIhvcNAQELBQAw +FjEUMBIGA1UEAwwLU09DVE9PTFMtQ0EwHhcNMjAxMDMwMTA0NzMwWhcNMjMxMDE1 +MTA0NzMwWjAaMRgwFgYDVQQDDA9kc29jbGFiLWhhcHJveHkwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQDJxyIzCwsPoIzEqYE3vVEvRzL6G4hFsbsRQz3e +s3Bn14s5Wo8T+y94CLGxMsbRDuTTLjrbhNvSZWsmJGzXFuWlkI4CRhMCCpZmRoe3 +sO5WTDzYrkx971uqbgGOif5Mud5suuQ/jfjXOu2yKZpbrFqGZgXzGS9ZjXyLapce +Q4o2gLLp4YT2lLwTETG40lpy7WjDsTfkW5GCYqoT8rbgOqqFZnAKqa1cp1L/3PmZ +XuUV1Qz+zSfLmJ5aacpxdDHmJt/s0kJDufMEjix6KKb5jrpkPGkOrPXc1fMqUEdQ +1Iz17jEIc2kfrkIdUoRdR2jdox8HV+w+ng0jeBZBvGjyT+kZAgMBAAGjgd0wgdow +CQYDVR0TBAIwADAdBgNVHQ4EFgQUSdx0Ahdxw9CgZDGeYCu0OENi3pgwRgYDVR0j +BD8wPYAUeQbKQNOfmlSu0zNN8jg+tgvzPc+hGqQYMBYxFDASBgNVBAMMC1NPQ1RP +T0xTLUNBggkAinSTJoBbQrcwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC +MAsGA1UdDwQEAwIFoDA6BgNVHREEMzAxgg9kc29jbGFiLWhhcHJveHmCHmRzb2Ns +YWIuZ240LTMtd3A4LXNvYy5zdW5ldC5zZTANBgkqhkiG9w0BAQsFAAOCAQEABKBx +MdIRkwmWyBsqMbi5NAesicuwbLDwF18YPKaWyrP6x69AF+F+5Nzu/lzchkC3L53A +nv0Wa4WrwqhjH/4DK4lqgMkursw9GXUyDlZXFicCUUkds3iqV9MAm5P+baM3rSY1 +V+FfkL/vMLxo8798WWlPYTAtSGamRCpRY25Pp4+WfpGyska8lxsB38AkXLKqjSA6 +JV2KHIRTDdT21YFdMN7E1/pCnHlokla3dmnGya0HR6bSRtSlDBCpAyFNVkDlKOP6 +cBsjMmgHPdaKOvttO6YgFhsJ80fwKk/cl4ZWN5ZCG4m4dhqreiVO6GLZoDvsYnJk +ZMqHnL4KCAlSqwOJKw== +-----END CERTIFICATE----- diff --git a/roles/haproxy/files/dsoclab-haproxy.key b/roles/haproxy/files/dsoclab-haproxy.key new file mode 100644 index 0000000..abcca5e --- /dev/null +++ b/roles/haproxy/files/dsoclab-haproxy.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDJxyIzCwsPoIzE +qYE3vVEvRzL6G4hFsbsRQz3es3Bn14s5Wo8T+y94CLGxMsbRDuTTLjrbhNvSZWsm +JGzXFuWlkI4CRhMCCpZmRoe3sO5WTDzYrkx971uqbgGOif5Mud5suuQ/jfjXOu2y +KZpbrFqGZgXzGS9ZjXyLapceQ4o2gLLp4YT2lLwTETG40lpy7WjDsTfkW5GCYqoT +8rbgOqqFZnAKqa1cp1L/3PmZXuUV1Qz+zSfLmJ5aacpxdDHmJt/s0kJDufMEjix6 +KKb5jrpkPGkOrPXc1fMqUEdQ1Iz17jEIc2kfrkIdUoRdR2jdox8HV+w+ng0jeBZB +vGjyT+kZAgMBAAECggEAUcxwiNDJQySK7I7q23XcG5Z5i/rtW5OZin3/7vA/eVlg +D3gu2KLTs42Su4siHk4zZYkwQx2xH7INpgDOPsQBhQT9DN7rhcBVCFE/Y7BObp2p +bQ375HHMb2L5Lpeyh9gx21JIhZtAbcBt6/QBp3hPmnxxnQNwtpUtEDe923714PHD +SfJ1Nd+mgeJ3ShPrk2jhcDdU82/mQrk5eH8M5QJqlTEWCvBgJaKhBf89T2XrX8jf +oPzeVijOqgLg49QEtAPmI98GlE1OAp3boFx4/QA/s76pgWZhYIm1hcm1AguYhQvJ +bi96IgdgVQQp/y7L+ix8zsq+YRxwPuCSBl+9BotYoQKBgQDm4neNC87XV4RhGuHG +w8WpFXFe1uOucPfyfTMmjifh61GZa4aWgBQByBQxBs729MOr9TFrNApTGWPO8Lag +ANnREyNndaUAUFgtCdY7Gc99deWyIx861aAVU7GGIFVkCo3OK0twbbyzqOj+B+H8 +c/P1tXXMayt/gPVuRDj7sq90VwKBgQDfuh6Clxa2sq0GdKsRkiDXaY8eZxJZchYw ++0MsYQjX8hPOGn0YWGy14ppE7JEPTEWSRuzCf5cwem/em8AIESgdCUWcGkgcQO5n +DvZeXrHHpVrTmGE5xEVNYrD/NPY7VizUsyLNvn5yC4hyByWkwLV+AUGpACE3HP2s +7xTakmmoDwKBgHKEfXuuEafptrVbWgT2cYHOKu85crDBQ5o40zgaZlm+GDkahiT7 +3fCMRseScvE2sh8GfL6Jj11sSH8KEesGwQLclUDpry+aqkGckW+6+5lk8ssKdKD/ ++GjbnD/EpdX7Dh7mhoJ7S49pBjeJvWM0OBr1KDp+JZMWaaWJnSHqnO/9AoGAXvM4 +m6fP5f3y3PiK2cwwz/tm2DpaWUfID0Wz/pO4Ex4UNbacPMbabF8dpf7Ymat/I1Oi +i/FmkxaDf/COEV5mrdwPhO7Kh+MuyuJYwThjLx4IbCERsliQKQWnpMgvcINkR2k3 +biZYt8IZSHusCD4ZSL7zxOvfLOrK5qgZK6JT4RUCgYEAk94TNC+rYRZOfOIaYA7+ +K1qTQAe8tawTBlKauXptWCzMFtMSEwozuHuxgnyAS/uRUKFMgRk00KrSvnuyGEBX +5QxqqhBOMvGDs672q/kVZ5C9M06+y5+Zpg0Mf3r+zOBqB5tCASnl2KfOCZkAt8rV +kyb4KyOsi81/fpVM/WeOL7w= +-----END PRIVATE KEY----- diff --git a/roles/haproxy/files/haproxy.cfg b/roles/haproxy/files/haproxy.cfg new file mode 100644 index 0000000..e102cf4 --- /dev/null +++ b/roles/haproxy/files/haproxy.cfg @@ -0,0 +1,17 @@ +global + quiet + +defaults + mode http + maxconn 5000 + + timeout connect 5s + timeout client 20s + timeout server 20s + +frontend public + bind *:80 + default_backend apps + +backend apps + server nifi_1 nifi_1:8080 check diff --git a/roles/keycloak/files/SOCTOOLS-CA.crt b/roles/keycloak/files/SOCTOOLS-CA.crt new file mode 100644 index 0000000..04b1f20 --- /dev/null +++ b/roles/keycloak/files/SOCTOOLS-CA.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDNTCCAh2gAwIBAgIJAIp0kyaAW0K3MA0GCSqGSIb3DQEBCwUAMBYxFDASBgNV +BAMMC1NPQ1RPT0xTLUNBMB4XDTIwMTAzMDEwNDcxOFoXDTMwMTAyODEwNDcxOFow +FjEUMBIGA1UEAwwLU09DVE9PTFMtQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQC1GZDFZJPR7AYkhEsB9U6qtK+40di3KOeTwRosJ7hvP1FQjwnIC37B +UlVq15KEgRTCcXgLH0CdtzC1Rkz+AUCLyKTOGmNCqmvyMcESdpuoI1NULkv0QeYX +Mj4Q1Lh0RldqZpEr32UfsVowBPPhijAUlVAHeJLvji/tnUvI++9no2hx03UAhjTM +M59AviYsRT3DUkciNSllpwV+7B2pgnpRgzsbVGP2cheaaRYG9DAbRTLrAtVxO0WJ +c/zNGSpvXuOyBK30/pwGMvhNGPeckElSpDfaepuA8ZDcfaKNk0kEBvzIlUrpZBmv +tBc5DmpfEBlSk5UK/0XSblKE5dOqlWc1AgMBAAGjgYUwgYIwHQYDVR0OBBYEFHkG +ykDTn5pUrtMzTfI4PrYL8z3PMEYGA1UdIwQ/MD2AFHkGykDTn5pUrtMzTfI4PrYL +8z3PoRqkGDAWMRQwEgYDVQQDDAtTT0NUT09MUy1DQYIJAIp0kyaAW0K3MAwGA1Ud +EwQFMAMBAf8wCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBCwUAA4IBAQA0XK1+Eg+j +JdwKnUpnwPq+fsyrCs4TF1DgwtqY4yr1KCw0QSPMK9ldLp62lJaRnrPE7ZGOQ7sd +z82yEM8nMulNREp3TZwuVFaWgs0yLVKkfqZ0jNGDuEf8AJAynI4ynRbtYxtYzBDy +XgJPk9lKK/gR14IXBet/dGbZf4yHiMzldMCb0dWzyDS1S+Y1iLTRCmpmRbFow12g +CjNoSxdyoJPZavcOVWa4tDc3PLMdkgdY20ewo3IvCQTOg9ogVX4Hq5/M4xTz8XUX +nHeUqshdkPVGFCIujCBg9131RYSE0SkVrPUaIbP9tgzabkZWwhiq8oSpTBmIi9qh +GPiQTFGknE1U +-----END CERTIFICATE----- diff --git a/roles/keycloak/files/cacerts.jks b/roles/keycloak/files/cacerts.jks new file mode 100644 index 0000000000000000000000000000000000000000..9d4001b7d9a466941cda896b6bf145bf2f02020c GIT binary patch literal 893 zcmezO_TO6u1_mYu1_nkj&0U<IT#}!kQ>>eu$iTo@S}9llhJiIg&(y$@fq~i5po!Vk zpovL#0W%XL6B8#xSIK0xhG?hl2E1&XT5TR}-+37sxmg(u#0*6YgxHuvS(tgagZ-UD z{QZ4`b)6jz<ivT63=9p74GaxT%ndD~#CbtXBMT@Or@kgeC1fiYSs9p{82K3tni#p5 zniv@wwn|Ponlky~8#a{|Z^o~FtG2A)aq-4>jpvgOO6jQY$hQv+=;u7aU3V}jH0%1L zmPV07g%#ZL4s*8~Y<2Vb$LP>~V#ztFWT#cxp9~KQmCatE92}zO{l)Q_xRIT}l^rE+ z;aO=DweP3OZ;Ucv`TVfUKxAqFd&Q*pefn?bdY}0HK7DaU;pI|>Hj^{P^Bwl7>A2b+ z4susA)l6N^TK7hFWm8pPv$b?c^0y-KS(##NUks#Ojb1ZdEwpy+EdFy=QY%01@g|nF zU;fQuGy35x@qNw&&!8pdx2k40e4KEnc2VzSPZqX6C#HJ6Op#o_Mck4vD_%e{X!2C9 z|E`zvf?A$lUNtq{l!=*<fpKwTt3hLvfh-$ys4O3g7>h_H+bM_3^Jj&uyKL<H$--_M z_h;Ml25ul}Wfpq_+Xk!(7D_FVz!eWoNHNX>GDnz&)qt6i@xK8#h{w;u!py|Th8$De z;Fw}$Fo{`PC&a&4^$youuk-`I_SKzP&2>&#JmA5hTQeSOebvx0aa2B|eKS^X-nJ>z zCeGV@<n6>h=iRdB&u$VpuWt0x*Tt*ccaC02*tDjzM!G>u>Xw!CTx{Oq{)b_L(VRY` zxnggVr6bM=e2Qc8pM29x`-kB5CUMr+^(ARH>wDTe&O9wSF#F=w%_mH@dOtJm*m998 zE6sId#^KlnT*evR;zbK4-^}{X7n-(Xi@CYYX4y&X5x3npEH2XLWI5M-OChw5ef9h^ zk3~LzEES(qK4sO3*a=_VM3nS;6cWD2esyhWxu_|+=Bt$A=D*u`Zsoa!9g<k}sb!^) nWJmX{g%Up|_yjJQ;~Qf5+vDoDTqXObIbI&Z%6$8^_~bbON?lF- literal 0 HcmV?d00001 diff --git a/roles/keycloak/files/dsoclab-keycloak.crt b/roles/keycloak/files/dsoclab-keycloak.crt new file mode 100644 index 0000000..92b6893 --- /dev/null +++ b/roles/keycloak/files/dsoclab-keycloak.crt @@ -0,0 +1,88 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + fe:75:83:de:f2:35:5a:2c:2b:ba:09:72:0b:d8:09:48 + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=SOCTOOLS-CA + Validity + Not Before: Oct 30 10:47:28 2020 GMT + Not After : Oct 15 10:47:28 2023 GMT + Subject: CN=dsoclab-keycloak + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:ea:a9:ea:6b:2f:6c:9c:9f:6d:9c:89:4e:01:ba: + c6:c0:32:df:59:26:2b:95:f4:c2:3d:c8:7e:22:ce: + b6:78:03:e8:22:28:81:9c:9a:a6:a7:ba:fd:05:66: + a3:50:81:85:71:c1:d9:ea:bc:21:e1:5d:0a:87:7b: + be:55:b0:7d:01:57:de:4c:fe:3a:c5:c9:54:77:2e: + 15:fc:12:07:f8:ef:9f:7b:f7:09:01:70:75:53:3b: + dc:b1:0c:65:4d:49:c4:fb:1d:42:20:6f:81:45:42: + d3:db:1d:4c:57:1b:1d:3b:81:39:ee:b2:cf:95:4b: + 29:d0:a8:39:98:d6:93:36:99:bf:c5:43:26:8d:4d: + db:6d:24:3b:fc:16:76:a1:fd:6f:c6:19:11:c7:12: + 0d:80:16:4c:88:da:2c:09:78:3d:1b:7c:6c:ec:db: + 9e:01:50:5f:a3:56:7f:d4:3b:a4:26:d2:6d:42:7b: + 88:4e:8d:64:ed:1e:1a:0e:05:58:65:58:47:83:60: + 9e:b4:ed:15:ce:72:4f:a0:b5:22:dd:9f:a4:da:88: + 86:fe:cb:84:6e:72:3d:00:42:da:8b:85:2a:f2:ef: + d7:ee:bb:85:42:ba:b9:fb:d9:9d:d2:2c:58:0f:7c: + 02:23:b7:46:d0:69:06:37:40:9d:58:74:89:ca:b7: + 12:e5 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + FD:C5:77:F8:79:AD:0A:7E:6A:A0:2E:3B:58:6A:9F:43:51:55:0B:DF + X509v3 Authority Key Identifier: + keyid:79:06:CA:40:D3:9F:9A:54:AE:D3:33:4D:F2:38:3E:B6:0B:F3:3D:CF + DirName:/CN=SOCTOOLS-CA + serial:8A:74:93:26:80:5B:42:B7 + + X509v3 Extended Key Usage: + TLS Web Server Authentication, TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature, Key Encipherment + X509v3 Subject Alternative Name: + DNS:dsoclab-keycloak, DNS:dsoclab.gn4-3-wp8-soc.sunet.se + Signature Algorithm: sha256WithRSAEncryption + 9a:c0:35:a3:68:ec:ec:cc:c3:65:5a:bf:03:d0:ee:8d:a0:41: + db:6d:89:3e:97:d4:90:7d:63:8e:73:37:43:ae:9a:e2:d0:2b: + a7:5e:b2:88:9b:4d:8f:b6:81:bf:f6:46:a0:87:ca:77:ec:5c: + af:cd:6b:d8:e8:60:5a:aa:86:be:64:d5:ad:e9:1e:41:7b:6a: + df:01:1d:16:86:94:57:82:51:91:be:6b:d6:ae:f0:b9:8c:3d: + 11:99:c4:93:eb:f7:fa:9e:a3:e3:f8:97:19:cf:63:55:6a:6e: + 4f:e9:a2:64:a7:35:0d:7e:68:23:89:e1:c6:06:4b:34:67:38: + 40:d1:81:b3:73:95:3a:3b:67:d2:5a:e4:8e:49:34:b1:ab:6f: + b6:60:87:ac:55:5d:f5:59:c0:d5:d3:d8:de:3b:76:c9:41:28: + b4:d7:23:ec:a2:3f:1d:3f:74:2e:f0:45:40:35:38:d1:06:50: + b2:93:45:df:de:33:5e:0b:89:86:d8:c9:14:61:1c:d2:94:21: + 1f:bf:df:32:f0:2f:91:52:b0:08:b7:b9:c2:b7:55:2b:ca:05: + e4:eb:91:e1:63:45:5d:1a:6f:e8:76:07:89:e8:42:3e:ec:7b: + 51:0e:a0:d5:8e:c3:3d:26:e3:45:b0:5b:61:d1:98:3b:c3:d4: + 37:9f:c1:7c +-----BEGIN CERTIFICATE----- +MIIDmzCCAoOgAwIBAgIRAP51g97yNVosK7oJcgvYCUgwDQYJKoZIhvcNAQELBQAw +FjEUMBIGA1UEAwwLU09DVE9PTFMtQ0EwHhcNMjAxMDMwMTA0NzI4WhcNMjMxMDE1 +MTA0NzI4WjAbMRkwFwYDVQQDDBBkc29jbGFiLWtleWNsb2FrMIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6qnqay9snJ9tnIlOAbrGwDLfWSYrlfTCPch+ +Is62eAPoIiiBnJqmp7r9BWajUIGFccHZ6rwh4V0Kh3u+VbB9AVfeTP46xclUdy4V +/BIH+O+fe/cJAXB1UzvcsQxlTUnE+x1CIG+BRULT2x1MVxsdO4E57rLPlUsp0Kg5 +mNaTNpm/xUMmjU3bbSQ7/BZ2of1vxhkRxxINgBZMiNosCXg9G3xs7NueAVBfo1Z/ +1DukJtJtQnuITo1k7R4aDgVYZVhHg2CetO0VznJPoLUi3Z+k2oiG/suEbnI9AELa +i4Uq8u/X7ruFQrq5+9md0ixYD3wCI7dG0GkGN0CdWHSJyrcS5QIDAQABo4HeMIHb +MAkGA1UdEwQCMAAwHQYDVR0OBBYEFP3Fd/h5rQp+aqAuO1hqn0NRVQvfMEYGA1Ud +IwQ/MD2AFHkGykDTn5pUrtMzTfI4PrYL8z3PoRqkGDAWMRQwEgYDVQQDDAtTT0NU +T09MUy1DQYIJAIp0kyaAW0K3MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcD +AjALBgNVHQ8EBAMCBaAwOwYDVR0RBDQwMoIQZHNvY2xhYi1rZXljbG9ha4IeZHNv +Y2xhYi5nbjQtMy13cDgtc29jLnN1bmV0LnNlMA0GCSqGSIb3DQEBCwUAA4IBAQCa +wDWjaOzszMNlWr8D0O6NoEHbbYk+l9SQfWOOczdDrpri0CunXrKIm02PtoG/9kag +h8p37FyvzWvY6GBaqoa+ZNWt6R5Be2rfAR0WhpRXglGRvmvWrvC5jD0RmcST6/f6 +nqPj+JcZz2NVam5P6aJkpzUNfmgjieHGBks0ZzhA0YGzc5U6O2fSWuSOSTSxq2+2 +YIesVV31WcDV09jeO3bJQSi01yPsoj8dP3Qu8EVANTjRBlCyk0Xf3jNeC4mG2MkU +YRzSlCEfv98y8C+RUrAIt7nCt1UrygXk65HhY0VdGm/odgeJ6EI+7HtRDqDVjsM9 +JuNFsFth0Zg7w9Q3n8F8 +-----END CERTIFICATE----- diff --git a/roles/keycloak/files/dsoclab-keycloak.key b/roles/keycloak/files/dsoclab-keycloak.key new file mode 100644 index 0000000..8c5ebed --- /dev/null +++ b/roles/keycloak/files/dsoclab-keycloak.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDqqeprL2ycn22c +iU4BusbAMt9ZJiuV9MI9yH4izrZ4A+giKIGcmqanuv0FZqNQgYVxwdnqvCHhXQqH +e75VsH0BV95M/jrFyVR3LhX8Egf475979wkBcHVTO9yxDGVNScT7HUIgb4FFQtPb +HUxXGx07gTnuss+VSynQqDmY1pM2mb/FQyaNTdttJDv8Fnah/W/GGRHHEg2AFkyI +2iwJeD0bfGzs254BUF+jVn/UO6Qm0m1Ce4hOjWTtHhoOBVhlWEeDYJ607RXOck+g +tSLdn6TaiIb+y4Rucj0AQtqLhSry79fuu4VCurn72Z3SLFgPfAIjt0bQaQY3QJ1Y +dInKtxLlAgMBAAECggEBAIj6HCLq8NxP15zLLSSnUQK571PLix+iWovT74UD4tEV +frgJqvat81/vL2iqq+P/ZtSrUjfKD4DMXawOGGFOfvl8v/9zWv0+8zYKSbz1DYBK +525mGfSkH2gxhjY2xR8jU389ae8jB3NVefLqHDiwVBT67sUdzTwZPtRUjiJgBliU +soJCsCutHAy7GW68N79F0BQItHhjMt02fYybnFxNvBntD4lodZDn7K9iqBoZPduX +TBsH1FcwZQyvQuiUlJgjUFM//5zrZUMjErv+3ev5c/WdpY4ycbo6VVBGZouVbyeX +RAWeDUE1nrsEsLBSnTkXVInFjPS6mBxsIi/+hlf6XCECgYEA+bWYDKPgelSe8ii5 +mK94wcLr6MybO+GrBHT4lIP1UggGsvPtXTifNvgGrYx90gmmL6F9QWHE+4lxyh5L +yEXCTHXl4QopgZCxWnnKekz0ma0lFlGYGr4KA0Z3Ntp+sCb/hcqVW/n24wVhNnmo +z3ztlSI/GY3B598R7dO9sR/RoYkCgYEA8JNKbTegmeeaAyBehEPy3eajAiT6759p +7m6Ml1P6IC3Ff3fllJrNWRi+JDKnJF9SUePOVWLWSgYSJyFLoiWK1CzoyLPdbcW9 +Ap9XNzD/aoDi6DBbKCFhRpBCsmTPnT8eFvA9PhuYY60w2UoM7byH+i2aJ1Do3izl +tLsHJbcT230CgYEA5S4Sl/9MBlpl6xEPjh/2L7drdyVaj/IFWLjWcNBPtnMhWtrf +joBqODQZRO09iSlL+kk3wWsvNEEoS33UxcGomy5Vxl3iTET1UXmYKPk6QVUVRc+r +T1f9rpXc0l5kid2xBSUyQdFAE4obd7jfA1fAYfClgxmEzv//34xHfCoc5ykCgYEA +01sD00pA3ZXc+AwzHY64y3z6D0M/9s+d+GzFNZoAsM6lqaRDXbhW2oTjX9fkgg8A +upMiTl/kFeqZfilBUnYbLuc5qEJlMjC8KpakwAdbDk2njAgXvfz9gknxXts0j1jJ +bauokm0aB9A7j1sAWsj8ya3QtePegnr9YDfEQr1CQ90CgYBfAQaYG9ldXcxTlERG +jOGu0bh9DtnmwsenwTZQD4mNHpvL0MkmIQxR5FAL8XXbNBq50zCiOapLLrhdqbh0 +ih3WoOdqxLIDQtAJYs3ANhOmEAxvQPxpPKhRHRKPGXxyzgW9zeQ08GpYoR/M7VRF +TypqufvopzWOpbxpgbfiJQmd8g== +-----END PRIVATE KEY----- diff --git a/roles/misp/files/SOCTOOLS-CA.crt b/roles/misp/files/SOCTOOLS-CA.crt new file mode 100644 index 0000000..04b1f20 --- /dev/null +++ b/roles/misp/files/SOCTOOLS-CA.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDNTCCAh2gAwIBAgIJAIp0kyaAW0K3MA0GCSqGSIb3DQEBCwUAMBYxFDASBgNV +BAMMC1NPQ1RPT0xTLUNBMB4XDTIwMTAzMDEwNDcxOFoXDTMwMTAyODEwNDcxOFow +FjEUMBIGA1UEAwwLU09DVE9PTFMtQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQC1GZDFZJPR7AYkhEsB9U6qtK+40di3KOeTwRosJ7hvP1FQjwnIC37B +UlVq15KEgRTCcXgLH0CdtzC1Rkz+AUCLyKTOGmNCqmvyMcESdpuoI1NULkv0QeYX +Mj4Q1Lh0RldqZpEr32UfsVowBPPhijAUlVAHeJLvji/tnUvI++9no2hx03UAhjTM +M59AviYsRT3DUkciNSllpwV+7B2pgnpRgzsbVGP2cheaaRYG9DAbRTLrAtVxO0WJ +c/zNGSpvXuOyBK30/pwGMvhNGPeckElSpDfaepuA8ZDcfaKNk0kEBvzIlUrpZBmv +tBc5DmpfEBlSk5UK/0XSblKE5dOqlWc1AgMBAAGjgYUwgYIwHQYDVR0OBBYEFHkG +ykDTn5pUrtMzTfI4PrYL8z3PMEYGA1UdIwQ/MD2AFHkGykDTn5pUrtMzTfI4PrYL +8z3PoRqkGDAWMRQwEgYDVQQDDAtTT0NUT09MUy1DQYIJAIp0kyaAW0K3MAwGA1Ud +EwQFMAMBAf8wCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBCwUAA4IBAQA0XK1+Eg+j +JdwKnUpnwPq+fsyrCs4TF1DgwtqY4yr1KCw0QSPMK9ldLp62lJaRnrPE7ZGOQ7sd +z82yEM8nMulNREp3TZwuVFaWgs0yLVKkfqZ0jNGDuEf8AJAynI4ynRbtYxtYzBDy +XgJPk9lKK/gR14IXBet/dGbZf4yHiMzldMCb0dWzyDS1S+Y1iLTRCmpmRbFow12g +CjNoSxdyoJPZavcOVWa4tDc3PLMdkgdY20ewo3IvCQTOg9ogVX4Hq5/M4xTz8XUX +nHeUqshdkPVGFCIujCBg9131RYSE0SkVrPUaIbP9tgzabkZWwhiq8oSpTBmIi9qh +GPiQTFGknE1U +-----END CERTIFICATE----- diff --git a/roles/misp/files/cacerts.jks b/roles/misp/files/cacerts.jks new file mode 100644 index 0000000000000000000000000000000000000000..9d4001b7d9a466941cda896b6bf145bf2f02020c GIT binary patch literal 893 zcmezO_TO6u1_mYu1_nkj&0U<IT#}!kQ>>eu$iTo@S}9llhJiIg&(y$@fq~i5po!Vk zpovL#0W%XL6B8#xSIK0xhG?hl2E1&XT5TR}-+37sxmg(u#0*6YgxHuvS(tgagZ-UD z{QZ4`b)6jz<ivT63=9p74GaxT%ndD~#CbtXBMT@Or@kgeC1fiYSs9p{82K3tni#p5 zniv@wwn|Ponlky~8#a{|Z^o~FtG2A)aq-4>jpvgOO6jQY$hQv+=;u7aU3V}jH0%1L zmPV07g%#ZL4s*8~Y<2Vb$LP>~V#ztFWT#cxp9~KQmCatE92}zO{l)Q_xRIT}l^rE+ z;aO=DweP3OZ;Ucv`TVfUKxAqFd&Q*pefn?bdY}0HK7DaU;pI|>Hj^{P^Bwl7>A2b+ z4susA)l6N^TK7hFWm8pPv$b?c^0y-KS(##NUks#Ojb1ZdEwpy+EdFy=QY%01@g|nF zU;fQuGy35x@qNw&&!8pdx2k40e4KEnc2VzSPZqX6C#HJ6Op#o_Mck4vD_%e{X!2C9 z|E`zvf?A$lUNtq{l!=*<fpKwTt3hLvfh-$ys4O3g7>h_H+bM_3^Jj&uyKL<H$--_M z_h;Ml25ul}Wfpq_+Xk!(7D_FVz!eWoNHNX>GDnz&)qt6i@xK8#h{w;u!py|Th8$De z;Fw}$Fo{`PC&a&4^$youuk-`I_SKzP&2>&#JmA5hTQeSOebvx0aa2B|eKS^X-nJ>z zCeGV@<n6>h=iRdB&u$VpuWt0x*Tt*ccaC02*tDjzM!G>u>Xw!CTx{Oq{)b_L(VRY` zxnggVr6bM=e2Qc8pM29x`-kB5CUMr+^(ARH>wDTe&O9wSF#F=w%_mH@dOtJm*m998 zE6sId#^KlnT*evR;zbK4-^}{X7n-(Xi@CYYX4y&X5x3npEH2XLWI5M-OChw5ef9h^ zk3~LzEES(qK4sO3*a=_VM3nS;6cWD2esyhWxu_|+=Bt$A=D*u`Zsoa!9g<k}sb!^) nWJmX{g%Up|_yjJQ;~Qf5+vDoDTqXObIbI&Z%6$8^_~bbON?lF- literal 0 HcmV?d00001 diff --git a/roles/misp/files/dsoclab-misp.crt b/roles/misp/files/dsoclab-misp.crt new file mode 100644 index 0000000..f830104 --- /dev/null +++ b/roles/misp/files/dsoclab-misp.crt @@ -0,0 +1,88 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 75:87:fc:e4:cf:3e:c6:81:17:19:90:76:b1:2c:d5:d2 + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=SOCTOOLS-CA + Validity + Not Before: Oct 30 10:47:28 2020 GMT + Not After : Oct 15 10:47:28 2023 GMT + Subject: CN=dsoclab-misp + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:cf:b1:1b:e7:a2:ae:70:81:71:a5:57:46:14:2e: + 47:64:89:4e:bd:7d:f0:82:2d:03:19:d6:87:44:b3: + 42:bf:72:78:03:cc:91:98:5b:36:42:14:55:e2:82: + 16:12:58:60:54:44:8f:15:f6:1b:1f:76:36:22:2e: + e8:ac:d3:3c:0a:df:46:c7:f1:04:bc:3a:bf:fe:4b: + 8f:2a:53:83:e3:50:82:06:09:fc:2a:fa:fe:94:a0: + 7b:7f:c2:3e:0b:3e:dc:72:b8:94:10:0a:0b:90:fd: + 45:76:29:85:52:bf:0f:20:43:78:fe:3b:d3:49:20: + 8f:9a:a5:0c:89:bb:0e:97:f2:67:b0:2d:f0:17:53: + 25:a6:9b:4b:64:0e:72:8a:bf:c9:e3:8e:41:bb:ed: + f3:33:6a:55:5f:8d:52:84:fa:a3:67:1a:7b:71:fb: + 90:f1:5f:61:df:44:ea:0b:77:88:f2:e5:c1:83:71: + 58:c7:58:8a:9b:39:45:59:4e:e0:db:16:b6:96:72: + 90:8c:ee:c2:13:75:ea:15:c6:6b:e2:dc:3a:de:c8: + 07:de:18:84:2d:96:b6:c4:4c:e1:4a:4d:13:6f:6c: + 9a:1d:e5:f9:6f:cc:7e:1b:4a:3a:75:1a:b9:37:b0: + 6d:a0:1b:69:35:f1:b6:e6:c2:a5:d3:56:d3:57:c7: + 0e:8b + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + 65:C5:56:88:65:AF:77:F1:53:B2:71:5E:16:10:D1:0B:30:FF:28:BE + X509v3 Authority Key Identifier: + keyid:79:06:CA:40:D3:9F:9A:54:AE:D3:33:4D:F2:38:3E:B6:0B:F3:3D:CF + DirName:/CN=SOCTOOLS-CA + serial:8A:74:93:26:80:5B:42:B7 + + X509v3 Extended Key Usage: + TLS Web Server Authentication, TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature, Key Encipherment + X509v3 Subject Alternative Name: + DNS:dsoclab-misp, DNS:dsoclab.gn4-3-wp8-soc.sunet.se + Signature Algorithm: sha256WithRSAEncryption + 5a:57:76:90:fd:a5:0d:ea:b0:22:c9:02:2e:18:91:81:04:d1: + f4:64:58:58:19:27:03:9b:5a:dc:de:6c:0e:fb:b7:76:eb:b1: + 97:36:e2:c7:76:ef:7d:d8:00:c3:20:c0:3d:a7:cf:61:f8:16: + 4c:96:4c:7c:c8:89:21:d6:d4:eb:3a:c1:3d:98:34:74:6e:39: + 81:20:6f:9b:4b:8d:b9:35:60:c5:76:19:30:30:06:0f:89:b1: + 1a:f6:c4:88:52:28:98:41:52:f1:9a:77:82:79:ae:c9:71:ba: + d9:e5:e9:b7:ba:08:32:59:eb:5e:7d:11:e0:a8:27:20:91:46: + 05:56:1e:e6:0b:4d:49:17:52:7f:4b:c4:a3:e0:cd:30:bd:4e: + 6a:70:2a:f5:77:4d:d1:d6:64:13:8d:4b:1a:d3:0b:0f:8a:49: + 1e:bf:b4:c0:4f:43:dc:92:e3:c0:f2:2f:4a:c8:30:45:fc:5a: + d2:de:92:b2:a1:48:b8:da:ff:f4:0b:04:5d:5d:a7:30:d8:4b: + ca:cf:0c:01:6a:50:45:5f:d4:a8:cf:dd:fa:f7:68:0c:4c:45: + 47:be:3a:c2:39:bb:04:ff:62:a0:bc:91:a0:f2:2b:67:09:89: + 5a:ff:e6:53:c1:89:18:12:a1:0f:5a:d7:e1:12:8b:88:88:89: + ca:b0:30:27 +-----BEGIN CERTIFICATE----- +MIIDkjCCAnqgAwIBAgIQdYf85M8+xoEXGZB2sSzV0jANBgkqhkiG9w0BAQsFADAW +MRQwEgYDVQQDDAtTT0NUT09MUy1DQTAeFw0yMDEwMzAxMDQ3MjhaFw0yMzEwMTUx +MDQ3MjhaMBcxFTATBgNVBAMMDGRzb2NsYWItbWlzcDCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBAM+xG+eirnCBcaVXRhQuR2SJTr198IItAxnWh0SzQr9y +eAPMkZhbNkIUVeKCFhJYYFREjxX2Gx92NiIu6KzTPArfRsfxBLw6v/5LjypTg+NQ +ggYJ/Cr6/pSge3/CPgs+3HK4lBAKC5D9RXYphVK/DyBDeP4700kgj5qlDIm7Dpfy +Z7At8BdTJaabS2QOcoq/yeOOQbvt8zNqVV+NUoT6o2cae3H7kPFfYd9E6gt3iPLl +wYNxWMdYips5RVlO4NsWtpZykIzuwhN16hXGa+LcOt7IB94YhC2WtsRM4UpNE29s +mh3l+W/MfhtKOnUauTewbaAbaTXxtubCpdNW01fHDosCAwEAAaOB2jCB1zAJBgNV +HRMEAjAAMB0GA1UdDgQWBBRlxVaIZa938VOycV4WENELMP8ovjBGBgNVHSMEPzA9 +gBR5BspA05+aVK7TM03yOD62C/M9z6EapBgwFjEUMBIGA1UEAwwLU09DVE9PTFMt +Q0GCCQCKdJMmgFtCtzAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwCwYD +VR0PBAQDAgWgMDcGA1UdEQQwMC6CDGRzb2NsYWItbWlzcIIeZHNvY2xhYi5nbjQt +My13cDgtc29jLnN1bmV0LnNlMA0GCSqGSIb3DQEBCwUAA4IBAQBaV3aQ/aUN6rAi +yQIuGJGBBNH0ZFhYGScDm1rc3mwO+7d267GXNuLHdu992ADDIMA9p89h+BZMlkx8 +yIkh1tTrOsE9mDR0bjmBIG+bS425NWDFdhkwMAYPibEa9sSIUiiYQVLxmneCea7J +cbrZ5em3uggyWetefRHgqCcgkUYFVh7mC01JF1J/S8Sj4M0wvU5qcCr1d03R1mQT +jUsa0wsPikkev7TAT0PckuPA8i9KyDBF/FrS3pKyoUi42v/0CwRdXacw2EvKzwwB +alBFX9Soz93692gMTEVHvjrCObsE/2KgvJGg8itnCYla/+ZTwYkYEqEPWtfhEouI +iInKsDAn +-----END CERTIFICATE----- diff --git a/roles/misp/files/dsoclab-misp.key b/roles/misp/files/dsoclab-misp.key new file mode 100644 index 0000000..9b8a5d6 --- /dev/null +++ b/roles/misp/files/dsoclab-misp.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDPsRvnoq5wgXGl +V0YULkdkiU69ffCCLQMZ1odEs0K/cngDzJGYWzZCFFXighYSWGBURI8V9hsfdjYi +Luis0zwK30bH8QS8Or/+S48qU4PjUIIGCfwq+v6UoHt/wj4LPtxyuJQQCguQ/UV2 +KYVSvw8gQ3j+O9NJII+apQyJuw6X8mewLfAXUyWmm0tkDnKKv8njjkG77fMzalVf +jVKE+qNnGntx+5DxX2HfROoLd4jy5cGDcVjHWIqbOUVZTuDbFraWcpCM7sITdeoV +xmvi3DreyAfeGIQtlrbETOFKTRNvbJod5flvzH4bSjp1Grk3sG2gG2k18bbmwqXT +VtNXxw6LAgMBAAECggEBAIb/4VqMVQTOLvfBJc0iU8eWtLbZMMb8ySI3Xs+aEc3t +cvNNOmolB7ymCTllQ0GDboH32mX1BaZKqV9IzHbiCwoqHZEDKgfLzFZX+OQTSwwr +nYidXur1IRuswPnHYZrfrl1net5+GQyShF8NGBs0E3nuQaxHaMwEvTNRCzhPfWnn +u/g3IExtSdE/XSxRnTGRQqSnMAf9OXs9bw/iTSR5cQO2mW/dRLr4aUCQOJ5Hx4mO +ub172vkNeNwOSUzc9FjtZyQZOtn25WoS7SusK7y9ToDqqR5OcI5M+kxq+fQo8Wvu +XlIeOvTKTHOBaih6QYEzHo9zq893I/c0xiOmfOr0v7kCgYEA7WQ7g5z+2Lyt35Sq +XmzyQyAEbx+PMPc7yTQC62YuvpEAaDFDHMphDw1zM2mraLO+2IuBuDz7CTlsf1zl +xwEJoEZa3odRi2McpqiUVQgJYD+bCUv35J8X93K4/7tLHvXDJQ3BKBNNoLHxjD5P +SlR5xBCFwZiiXAkquWpZaaWAbg0CgYEA3/jjf723dlWRrVcG/m7VJrhTWq10Jltp +8y786INKU1IUrwqFt7ph4c9/Jbop40QVkJKzsPojzWreDf3EZYGnBVhOLA5p4MC0 +X1ZTzN86dn1Y3SDCopGnJVP8X2EdDGfsTkfXxOjRCzSPOyZzxzseACw9WWAmullU +zQs4K6/4YPcCgYB117znb8bepoMVqwILz79PbRRmaV82qnRGRAhy/I2V0ftGvbWY +FCqsQzv9uKX7WscRTed+It9nS9c9PkteR3iU1HgFYV0seW3emW7Q6yVkXw7CRbDw +D73g+1U0ta/r1Yoi2boZ/8MYU10aBlBsEJVFrAIKAZAPagmIc2+hTyP6/QKBgQDX +FHSr3C0NJzkhA7zEovxwFXx+TKmImCqTjKD0S/gZMW6JdYpZmFOc/Jz2RuMoyt4G +msqSfnPZNPIO744liC8zM8zGBAVq/sN39je9OvUyikbG+0nNwh+H+jIWCfVST44e +0mEDSCxPHWcaf1+ZiEzUD6fOZ0Zpl5WW3lpPocncmwKBgQDIR7uJctv3UZkEO+oq +g1Q4jLUYJFUb/3fk1mEmpq+b90e/xQMqZHlu/KHiHcKrukdWj67d/LY4mrw4DebR +PTgdj9e0O8V9M7BYxDN+zEYrvmmY4A+tg07zm8aqmhCNKpOMsW0MkKFFuRiMkiCh +bopZVfjdd+d/56vLZW+GSBaCew== +-----END PRIVATE KEY----- diff --git a/roles/misp/templates/config.php.j2 b/roles/misp/templates/config.php.j2 new file mode 100644 index 0000000..46ca1ca --- /dev/null +++ b/roles/misp/templates/config.php.j2 @@ -0,0 +1,84 @@ +<?php +$config = array ( + 'debug' => 0, + 'MISP' => + array ( + 'baseurl' => 'https://{{dslproxy}}:6443', + 'footermidleft' => '', + 'footermidright' => '', + 'org' => 'ORGNAME', + 'showorg' => true, + 'threatlevel_in_email_subject' => true, + 'email_subject_TLP_string' => 'tlp:amber', + 'email_subject_tag' => 'tlp', + 'email_subject_include_tag_name' => true, + 'background_jobs' => true, + 'cached_attachments' => true, + 'email' => 'email@address.com', + 'contact' => 'email@address.com', + 'cveurl' => 'https://cve.circl.lu/cve/', + 'cweurl' => 'https://cve.circl.lu/cwe/', + 'disablerestalert' => false, + 'default_event_distribution' => '1', + 'default_attribute_distribution' => 'event', + 'tagging' => true, + 'full_tags_on_event_index' => true, + 'attribute_tagging' => true, + 'full_tags_on_attribute_index' => true, + 'footer_logo' => '', + 'take_ownership_xml_import' => false, + 'unpublishedprivate' => false, + 'disable_emailing' => false, + 'manage_workers' => true, + 'Attributes_Values_Filter_In_Event' => 'id, uuid, value, comment, type, category, Tag.name', + 'uuid' => '6ec3e533-99f9-42ac-952d-002664d1500f', + 'live' => true, + ), + 'GnuPG' => + array ( + 'onlyencrypted' => false, + 'email' => '', + 'homedir' => '', + 'password' => '', + 'bodyonlyencrypted' => false, + 'sign' => true, + 'obscure_subject' => false, + ), + 'SMIME' => + array ( + 'enabled' => false, + 'email' => '', + 'cert_public_sign' => '', + 'key_sign' => '', + 'password' => '', + ), + 'Proxy' => + array ( + 'host' => '', + 'port' => '', + 'method' => '', + 'user' => '', + 'password' => '', + ), + 'SecureAuth' => + array ( + 'amount' => 5, + 'expire' => 300, + ), + 'Security' => + array ( + 'level' => 'medium', + 'salt' => '{{misp_salt}}', + 'cipherSeed' => '', + ), + 'Session.defaults' => 'php', + 'Session.timeout' => 60, + 'Session.cookieTimeout' => 60, + 'Session.autoRegenerate' => false, + 'Session.checkAgent' => false, + 'site_admin_debug' => NULL, + 'Plugin' => NULL, + 'CertAuth' => NULL, + 'ApacheShibbAuth' => NULL, + 'ApacheSecureAuth' => NULL, +); diff --git a/roles/nifi/files/SOCTOOLS-CA.crt b/roles/nifi/files/SOCTOOLS-CA.crt new file mode 100644 index 0000000..04b1f20 --- /dev/null +++ b/roles/nifi/files/SOCTOOLS-CA.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDNTCCAh2gAwIBAgIJAIp0kyaAW0K3MA0GCSqGSIb3DQEBCwUAMBYxFDASBgNV +BAMMC1NPQ1RPT0xTLUNBMB4XDTIwMTAzMDEwNDcxOFoXDTMwMTAyODEwNDcxOFow +FjEUMBIGA1UEAwwLU09DVE9PTFMtQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQC1GZDFZJPR7AYkhEsB9U6qtK+40di3KOeTwRosJ7hvP1FQjwnIC37B +UlVq15KEgRTCcXgLH0CdtzC1Rkz+AUCLyKTOGmNCqmvyMcESdpuoI1NULkv0QeYX +Mj4Q1Lh0RldqZpEr32UfsVowBPPhijAUlVAHeJLvji/tnUvI++9no2hx03UAhjTM +M59AviYsRT3DUkciNSllpwV+7B2pgnpRgzsbVGP2cheaaRYG9DAbRTLrAtVxO0WJ +c/zNGSpvXuOyBK30/pwGMvhNGPeckElSpDfaepuA8ZDcfaKNk0kEBvzIlUrpZBmv +tBc5DmpfEBlSk5UK/0XSblKE5dOqlWc1AgMBAAGjgYUwgYIwHQYDVR0OBBYEFHkG +ykDTn5pUrtMzTfI4PrYL8z3PMEYGA1UdIwQ/MD2AFHkGykDTn5pUrtMzTfI4PrYL +8z3PoRqkGDAWMRQwEgYDVQQDDAtTT0NUT09MUy1DQYIJAIp0kyaAW0K3MAwGA1Ud +EwQFMAMBAf8wCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBCwUAA4IBAQA0XK1+Eg+j +JdwKnUpnwPq+fsyrCs4TF1DgwtqY4yr1KCw0QSPMK9ldLp62lJaRnrPE7ZGOQ7sd +z82yEM8nMulNREp3TZwuVFaWgs0yLVKkfqZ0jNGDuEf8AJAynI4ynRbtYxtYzBDy +XgJPk9lKK/gR14IXBet/dGbZf4yHiMzldMCb0dWzyDS1S+Y1iLTRCmpmRbFow12g +CjNoSxdyoJPZavcOVWa4tDc3PLMdkgdY20ewo3IvCQTOg9ogVX4Hq5/M4xTz8XUX +nHeUqshdkPVGFCIujCBg9131RYSE0SkVrPUaIbP9tgzabkZWwhiq8oSpTBmIi9qh +GPiQTFGknE1U +-----END CERTIFICATE----- diff --git a/roles/nifi/files/cacerts.jks b/roles/nifi/files/cacerts.jks new file mode 100644 index 0000000000000000000000000000000000000000..9d4001b7d9a466941cda896b6bf145bf2f02020c GIT binary patch literal 893 zcmezO_TO6u1_mYu1_nkj&0U<IT#}!kQ>>eu$iTo@S}9llhJiIg&(y$@fq~i5po!Vk zpovL#0W%XL6B8#xSIK0xhG?hl2E1&XT5TR}-+37sxmg(u#0*6YgxHuvS(tgagZ-UD z{QZ4`b)6jz<ivT63=9p74GaxT%ndD~#CbtXBMT@Or@kgeC1fiYSs9p{82K3tni#p5 zniv@wwn|Ponlky~8#a{|Z^o~FtG2A)aq-4>jpvgOO6jQY$hQv+=;u7aU3V}jH0%1L zmPV07g%#ZL4s*8~Y<2Vb$LP>~V#ztFWT#cxp9~KQmCatE92}zO{l)Q_xRIT}l^rE+ z;aO=DweP3OZ;Ucv`TVfUKxAqFd&Q*pefn?bdY}0HK7DaU;pI|>Hj^{P^Bwl7>A2b+ z4susA)l6N^TK7hFWm8pPv$b?c^0y-KS(##NUks#Ojb1ZdEwpy+EdFy=QY%01@g|nF zU;fQuGy35x@qNw&&!8pdx2k40e4KEnc2VzSPZqX6C#HJ6Op#o_Mck4vD_%e{X!2C9 z|E`zvf?A$lUNtq{l!=*<fpKwTt3hLvfh-$ys4O3g7>h_H+bM_3^Jj&uyKL<H$--_M z_h;Ml25ul}Wfpq_+Xk!(7D_FVz!eWoNHNX>GDnz&)qt6i@xK8#h{w;u!py|Th8$De z;Fw}$Fo{`PC&a&4^$youuk-`I_SKzP&2>&#JmA5hTQeSOebvx0aa2B|eKS^X-nJ>z zCeGV@<n6>h=iRdB&u$VpuWt0x*Tt*ccaC02*tDjzM!G>u>Xw!CTx{Oq{)b_L(VRY` zxnggVr6bM=e2Qc8pM29x`-kB5CUMr+^(ARH>wDTe&O9wSF#F=w%_mH@dOtJm*m998 zE6sId#^KlnT*evR;zbK4-^}{X7n-(Xi@CYYX4y&X5x3npEH2XLWI5M-OChw5ef9h^ zk3~LzEES(qK4sO3*a=_VM3nS;6cWD2esyhWxu_|+=Bt$A=D*u`Zsoa!9g<k}sb!^) nWJmX{g%Up|_yjJQ;~Qf5+vDoDTqXObIbI&Z%6$8^_~bbON?lF- literal 0 HcmV?d00001 diff --git a/roles/nifi/files/dsoclab-nifi-1.p12 b/roles/nifi/files/dsoclab-nifi-1.p12 new file mode 100644 index 0000000000000000000000000000000000000000..0076ad1207c243f877de929e2424ed953f60469c GIT binary patch literal 3397 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 literal 0 HcmV?d00001 diff --git a/roles/nifi/files/dsoclab-nifi-2.p12 b/roles/nifi/files/dsoclab-nifi-2.p12 new file mode 100644 index 0000000000000000000000000000000000000000..fdbd25a1e50851b8ea865781bc903dcc78a1cc8f GIT binary patch literal 3397 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 literal 0 HcmV?d00001 diff --git a/roles/nifi/files/dsoclab-nifi-3.p12 b/roles/nifi/files/dsoclab-nifi-3.p12 new file mode 100644 index 0000000000000000000000000000000000000000..4d4b23daaa41114bb1ab95eea974f0c2618dbbeb GIT binary patch literal 3397 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 literal 0 HcmV?d00001 diff --git a/roles/nifi/files/nifisecret b/roles/nifi/files/nifisecret new file mode 100644 index 0000000..cbbcd4a --- /dev/null +++ b/roles/nifi/files/nifisecret @@ -0,0 +1,3 @@ +{ + "value" : "ccfda830-defc-4fec-85fc-9b2b7c98e8ba" +} \ No newline at end of file diff --git a/roles/odfees/files/Arne Oslebo.p12 b/roles/odfees/files/Arne Oslebo.p12 new file mode 100644 index 0000000000000000000000000000000000000000..273c8018b7bed8f691d9e9c24f5fa9d6425a0e79 GIT binary patch literal 3325 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 SvT*onuj~K4uqy#nN&)~L2}KS7 literal 0 HcmV?d00001 diff --git a/roles/odfees/files/Bozidar Proevski.p12 b/roles/odfees/files/Bozidar Proevski.p12 new file mode 100644 index 0000000000000000000000000000000000000000..24010a64063a960d554cd4e895e17b9e2e62362a GIT binary patch literal 3325 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 MzLJB#K7&e00Bh$qdH?_b literal 0 HcmV?d00001 diff --git a/roles/odfees/files/SOCTOOLS-CA.crt b/roles/odfees/files/SOCTOOLS-CA.crt new file mode 100644 index 0000000..04b1f20 --- /dev/null +++ b/roles/odfees/files/SOCTOOLS-CA.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDNTCCAh2gAwIBAgIJAIp0kyaAW0K3MA0GCSqGSIb3DQEBCwUAMBYxFDASBgNV +BAMMC1NPQ1RPT0xTLUNBMB4XDTIwMTAzMDEwNDcxOFoXDTMwMTAyODEwNDcxOFow +FjEUMBIGA1UEAwwLU09DVE9PTFMtQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQC1GZDFZJPR7AYkhEsB9U6qtK+40di3KOeTwRosJ7hvP1FQjwnIC37B +UlVq15KEgRTCcXgLH0CdtzC1Rkz+AUCLyKTOGmNCqmvyMcESdpuoI1NULkv0QeYX +Mj4Q1Lh0RldqZpEr32UfsVowBPPhijAUlVAHeJLvji/tnUvI++9no2hx03UAhjTM +M59AviYsRT3DUkciNSllpwV+7B2pgnpRgzsbVGP2cheaaRYG9DAbRTLrAtVxO0WJ +c/zNGSpvXuOyBK30/pwGMvhNGPeckElSpDfaepuA8ZDcfaKNk0kEBvzIlUrpZBmv +tBc5DmpfEBlSk5UK/0XSblKE5dOqlWc1AgMBAAGjgYUwgYIwHQYDVR0OBBYEFHkG +ykDTn5pUrtMzTfI4PrYL8z3PMEYGA1UdIwQ/MD2AFHkGykDTn5pUrtMzTfI4PrYL +8z3PoRqkGDAWMRQwEgYDVQQDDAtTT0NUT09MUy1DQYIJAIp0kyaAW0K3MAwGA1Ud +EwQFMAMBAf8wCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBCwUAA4IBAQA0XK1+Eg+j +JdwKnUpnwPq+fsyrCs4TF1DgwtqY4yr1KCw0QSPMK9ldLp62lJaRnrPE7ZGOQ7sd +z82yEM8nMulNREp3TZwuVFaWgs0yLVKkfqZ0jNGDuEf8AJAynI4ynRbtYxtYzBDy +XgJPk9lKK/gR14IXBet/dGbZf4yHiMzldMCb0dWzyDS1S+Y1iLTRCmpmRbFow12g +CjNoSxdyoJPZavcOVWa4tDc3PLMdkgdY20ewo3IvCQTOg9ogVX4Hq5/M4xTz8XUX +nHeUqshdkPVGFCIujCBg9131RYSE0SkVrPUaIbP9tgzabkZWwhiq8oSpTBmIi9qh +GPiQTFGknE1U +-----END CERTIFICATE----- diff --git a/roles/odfees/files/cacerts.jks b/roles/odfees/files/cacerts.jks new file mode 100644 index 0000000000000000000000000000000000000000..9d4001b7d9a466941cda896b6bf145bf2f02020c GIT binary patch literal 893 zcmezO_TO6u1_mYu1_nkj&0U<IT#}!kQ>>eu$iTo@S}9llhJiIg&(y$@fq~i5po!Vk zpovL#0W%XL6B8#xSIK0xhG?hl2E1&XT5TR}-+37sxmg(u#0*6YgxHuvS(tgagZ-UD z{QZ4`b)6jz<ivT63=9p74GaxT%ndD~#CbtXBMT@Or@kgeC1fiYSs9p{82K3tni#p5 zniv@wwn|Ponlky~8#a{|Z^o~FtG2A)aq-4>jpvgOO6jQY$hQv+=;u7aU3V}jH0%1L zmPV07g%#ZL4s*8~Y<2Vb$LP>~V#ztFWT#cxp9~KQmCatE92}zO{l)Q_xRIT}l^rE+ z;aO=DweP3OZ;Ucv`TVfUKxAqFd&Q*pefn?bdY}0HK7DaU;pI|>Hj^{P^Bwl7>A2b+ z4susA)l6N^TK7hFWm8pPv$b?c^0y-KS(##NUks#Ojb1ZdEwpy+EdFy=QY%01@g|nF zU;fQuGy35x@qNw&&!8pdx2k40e4KEnc2VzSPZqX6C#HJ6Op#o_Mck4vD_%e{X!2C9 z|E`zvf?A$lUNtq{l!=*<fpKwTt3hLvfh-$ys4O3g7>h_H+bM_3^Jj&uyKL<H$--_M z_h;Ml25ul}Wfpq_+Xk!(7D_FVz!eWoNHNX>GDnz&)qt6i@xK8#h{w;u!py|Th8$De z;Fw}$Fo{`PC&a&4^$youuk-`I_SKzP&2>&#JmA5hTQeSOebvx0aa2B|eKS^X-nJ>z zCeGV@<n6>h=iRdB&u$VpuWt0x*Tt*ccaC02*tDjzM!G>u>Xw!CTx{Oq{)b_L(VRY` zxnggVr6bM=e2Qc8pM29x`-kB5CUMr+^(ARH>wDTe&O9wSF#F=w%_mH@dOtJm*m998 zE6sId#^KlnT*evR;zbK4-^}{X7n-(Xi@CYYX4y&X5x3npEH2XLWI5M-OChw5ef9h^ zk3~LzEES(qK4sO3*a=_VM3nS;6cWD2esyhWxu_|+=Bt$A=D*u`Zsoa!9g<k}sb!^) nWJmX{g%Up|_yjJQ;~Qf5+vDoDTqXObIbI&Z%6$8^_~bbON?lF- literal 0 HcmV?d00001 diff --git a/roles/odfees/files/dsoclab-odfe-1.p12 b/roles/odfees/files/dsoclab-odfe-1.p12 new file mode 100644 index 0000000000000000000000000000000000000000..ed4bd60a1d96595774f510ecfd8c864a09e8d338 GIT binary patch literal 3397 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 literal 0 HcmV?d00001 diff --git a/roles/odfees/files/dsoclab-odfe-2.p12 b/roles/odfees/files/dsoclab-odfe-2.p12 new file mode 100644 index 0000000000000000000000000000000000000000..106170ff7a325bccade7cfecf2f60642e866a4a0 GIT binary patch literal 3397 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 literal 0 HcmV?d00001 diff --git a/roles/odfekibana/files/Arne Oslebo.p12 b/roles/odfekibana/files/Arne Oslebo.p12 new file mode 100644 index 0000000000000000000000000000000000000000..273c8018b7bed8f691d9e9c24f5fa9d6425a0e79 GIT binary patch literal 3325 zcmXqL;`zzM$ZXKWv!9JqtIebBJ1-+U<ANrh4J=JOYYdurRv0v~$0MZJ7BsO37&Ni_ zFflS1G_kuPWEc%(*tno3@G!C&@Ud`s@lK!gTfNSPiHU=up^05$Z{d_(t&GJt7$3D7 z$8I!c_ItQJ%%!Ef(cf$BntMCfy>FjpJMUrthy3#6H32Jc-q;#=_Lq04#;r@IWqa~v z_b(_qa_(it#~T4L)*+Pzm#fxq_sSM*O=p+Xu5f&P`qNwI{IV#^!*;n7T4xG<o*eeG z`)<5itWm)%{?^@B{n!70HTkWW`#rhxRnKGET-OBEO!s~3BKVy90o!X<6<K?>iiwAc zGCX#qIUQ_Nn{F}PCg;M*<*5uOHrWd;f49j$>~d1Crpr;2Ggp>~_59V;ycjuQQd6Jw zIrk!Fn@;h~CY!IxY%5!;bVBiU&#j4J6_%&B2#6?ISV~X+XMONJ_a?2={0l=f`!CIx z`n<rO-E-I3TG{ka-McB;^=nSpshYkQu-Ce^Y>r=G`E8&1Axv(UFa9=~KH2#5jZJIx zTPDgLUb8aykInjN4toy03-3#RVbJyd*`|_(e-3{*&H7<K+y3gtbJzC%&&XrFH=`;0 z?L5<;#wI3vMfJmWiR`@2!uyCjvml4zzxivM3eOGCB|;e{s$6rDU%P+RhH5wA1fk|O zfs0MkyxBBky#CtmQf0kwd%R32WMM#$zT3CzbM?MK(^Q^3YB3g+-=Nc|9wbzn5+pBN z^)WI=uVD2QzAb+WBwC}N8(;d=kZ^9>+Wa0zLxb(NOus4^m+^NUWDOBt&pem^pw7*e z*KQiVH(Ijs+ltxW;sSMS)B|T+Q|x9t;qgk`itl7oxPMdWscy{zw!=>>3)-G673aIK zQtg_Q-VCb)I&8;Ja2~XDaTWVsoN794f^^Egm#19s-LZL=bNy^?iKoiBlndM4tMBYw zub{f)a=Y+@bsnNVF<)0y-G5S+)YD?Evv%YAZ2q}gEp6&o=I(ZVCy{A+J>;C8@chRs zgj#kR-gvU?^x@|-3cuV96)rn37qdU>`oD!c)x%k0V!niW?8-~&h*YxuwQ`1z<*YNa zw!E=1I{9q!|EMF8d#s8+Z+j^8_p3w9pV<bVrySSsNQ>4}x7wAk=Tok66o=TV2NPFk z%sg2m#B+DuhP$76*qhs>*q!Gp*e#N|QPsazWnTXNsT`(<#06~I*2yY8vwADYCjad> zr{brrr&mZ9zy3C1>uw+Yt8C&~C3ARR6*zJ%J-owx1M{+(PE*|sbn4;{USjI@+}NHy zDeJGlhshFW`K27cu1yHyniks~9C5D3u-|jZ`vs@U>vtPSy8lkA_MW!)>63K=(=r)c zG|J`_TVI~`zb(#xPtY#*Lyscc{Lim7<7Ts+bdslGs*!v`)Pakes*Y-(_BIh)6{}a+ zUy^!wFU$5P4~q}`E?dpYQMBX9>!_5?Q6lEd=U%^a@%Gf1e}3|u{4ym$r|=sWqy-;K zaLo6(Hq%~n;eXS*+3$^&q%J6)ubr-SD0R(sgALkKC$l_o(VUfc?B5L56<1$fV3S!m zU&`@<{`<1kdj2k6F8o(hnt3~Nx?3H}Rf?opX6~85J>BKy_fL#=5tiAv4yXUk%)7or z<Bo*F(KR2MmacsAZmHAk+`Up&GM@Je0uJ+<Ot|vYWYx#M?lm&&BA+;De3VcA6Y_ES zB<<)0KDTa75ecntJhkW3uk{=y*Zu0dH{4IFJD&bG=0x6wCwFH#roH;I@6qoYk`}yQ zE`6%AYBYOyZq1$s-j1_Z;@C4~KRgp%QI^!FU~;RCGqxjd&yl?+MDlufSzg)DcB48) zVLsdY=V20Yso8p0<y1V^nC_h1a_%kXu|K@)lASM|U9msUsZ}XN=5q4|hrBh<x9eUo zo7gtV|5Rh@LUolFHS_%MPW0L7Wubm-@|3;(MPUc{j%57xpL)JIde+mpeJUrqA1^-i zV(~WZ=gx-%Jomros5<!S!M$e^`DHfK^;WmDZWGHre!6{=gulR{0{J6#vYUUg#544> zpV;PCntEy*kN;BB*gnB&+-!dyxh@X){JdJhZ^s0m_3cw$u<nhz6sq(o+Q(McSheBZ zf-=3Qc9o_vLUzLE&hAY59k=C9jGkK7<HkO7^YXS6J12&2sJR)WCSv=%c2k|^L!IN+ zjVGTP`nNxx%lhNmJlCIkTAwqg|7vZ2HuKKLc{AQ5ip~vM^yU1IS$>_`Ow*3DJ1M?h z*0<xbR!vFRy7QGGQI?<l&gW#rZZWMW`mW=%pC><CuOrF7GrII%75}NeWv8clw$A5u zx^nsUl*5~ERL|y9`*^iEDDu_rBk!BD&iHPa9@J=YShPp5ggrlh(wwS{-<kKf)yw$> z{pI?gXCGyLfPHdI`nos`@0a#JHU`waym+8y+H;S`MVI<I%DSdE?Q%6b9rNn?Ql1zI z!N*^!6ic7ZemsGfeFgIst%%ijJ!?Mco}Ir~d>NC%t{<Nzjec2d%{#lCty*e&?_;U0 zAEnDZ@?T!Mm0Eitia#fP<+aq?dQXLd70zWl<zGB>L+RSg_bM$frUdi8n0Eff@<%OS z8YXVfyfnwiIiYl75uZWg;k^8pXI*5a*}6Z^yqU7ppo!HHsUls_#A?LS#Hwe|#HwY` z#Hz-|4XakU7?~C{vAi>AVtIv9+cJY{+fPy9`>*qd6oYD8mL`@Hg$9p`N~*qoV_CFv z!T!C`OI}#)Xqq3>*nhUSSlLc6>{0thwl9gbB3I`n&f9QR#8fEod;PsPB7e5%?~=T@ z{Ni8ty&PNe^Ho|M=l2D&-n}s`>GsXDN1OY1-T1j^(VwZJ8%mjYFEgCfO+5H*kDt`O zqNHt4qB$paJa7uy5~;15wD--UiCK;xrSHu<)KOHRDmF>NdDZ3gOYH9)Z){RY(flf7 z_UivMlj(B1kE}U!{^!}Za&ud^$5?uw49o55nI9yj9r7%P_r&XrCB>6!crU4Ntk*r& z_~n*Po!*nbYm)8zSFQ||GT89S`t!4({!e>e_O{(wzQ3#CX6~+#d14ELuJ>50#w*2~ zQQhFx`07&h4d?4QvoG&Dbk&e`-}l+GcsKRD`z6Q{lW=<H{_cIVba+da?=5|Q*J*(Q z^WOehLAJl&_#I@~Qma_<!^=7O&CC#QjR*b$4!rWS>v?h`UQHKMU8U&h^5p8-2VvX& zTUPIxaGTqA`J!)M_TK#7c_Gnv)rmcwPLt<|Uf?@A^HccGyblFy5Bk1e$5%N0rkPBH zWJ<k$hId3(QKaH!CQ}0@hQB%sysloKU$LA${NDP%d-WN`mY-|Nz1lG4*VWT;M^dBn z_pP}lB&R=XRnFhLi~s(z3`!}NKRq*3L&qy*`q!^n(fbQKWz%(h{SH~rb1k^O#3j){ z#9YL}<LTnMS?Qq{s&^IGpFUL`)wtiMUS28q!|O8_E#r5;*83b=yHD8U<G<NAZtSlM z{&iVg>)*FWb3S!SPN@!B6E(T7eI<``sfFbW<^HnNdowST2&Pq>c)(p0amJEG=+(KI zoZ;tUIgZSHD0P0)oT@bYz?EOGz5liJ+|L^#pD$0kEc*A6lIq)Uj~1^o*RP*)cZ1DO z|GTxG9s%<df)1`^nw9Y={<is6rd0;4FT$?Zo_(?B+sg|azQ%vWbjxCe%eA@`&iEdm zxJN2LP5bTB<2Pg76<9-$^G%qclAf*kuygzAH~LczFU|eiyT^rrMey3!XMca|Hb#~| zN@VWqG2lB@JW*cTpzz{1Ri=`Qb6LH1trPC&uzYmeL7Q*Ft@)cyo^03ku<l@z_<Hn5 z<w^^gdfm-`EVh0~_xVujb7ki*IXCybe$&4hJkuL<Vs6+()iY)8XgfOP_FK76wKZ+Y zz8`NhU63?0&ia0w<ATESq=m;EZ#-Xe%Pf4}iSy<gDwASEt(W=-Zfh%X5nSWQ^x*%O zqR)z7-BSIZfB3XR;r1yr%?sxaUh&LjHeS-w(4V&N<=b16OQcej<mc53Ykg4s!yA>{ zEN8dKOLB{olBQ-lpYNvpJ0_h10lK%OQq+!x1TcPdGFJY>_G2|etneAl9}iPQ))}b& zw9>w_#l+bBZM1woYZ~|du4%6|9#kIQ(yJ+7?KR2eZUNJ>!_uKORi_tTu+bCVX3{0J zJmf^*)C+lRH>yvS-i^FF;kaXH;L!#NYo2FEmoco2E7`haUAb#%vFy`@m##l;Og^!@ znf2|8S(W;0{&qV=9@bB@keHx(f#WCVOVvZ4y(e!_y886MrFoI=pS#XvinaxX1m3wM z+-JVc!gF^1@3Rw(@Ag#OtX!s|*6}v$#;R4RKB`7pOtZabTUpAc>CP~bxMLq@)Oljb z7wd{0k1qKdzP@tV`^7)kEqA%}#b;-pOyJjHaO&{eW2kDN3@;ryMGeJRL~<S}UzA#8 zYkq%z-NWzqxrKDo7&QzG4HOMH*;uvtn3<$l8CXOXI(Jsjc9K0YG0yS`!>c|%<;nN% SvT*onuj~K4uqy#nN&)~L2}KS7 literal 0 HcmV?d00001 diff --git a/roles/odfekibana/files/Bozidar Proevski.p12 b/roles/odfekibana/files/Bozidar Proevski.p12 new file mode 100644 index 0000000000000000000000000000000000000000..24010a64063a960d554cd4e895e17b9e2e62362a GIT binary patch literal 3325 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 MzLJB#K7&e00Bh$qdH?_b literal 0 HcmV?d00001 diff --git a/roles/odfekibana/files/SOCTOOLS-CA.crt b/roles/odfekibana/files/SOCTOOLS-CA.crt new file mode 100644 index 0000000..04b1f20 --- /dev/null +++ b/roles/odfekibana/files/SOCTOOLS-CA.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDNTCCAh2gAwIBAgIJAIp0kyaAW0K3MA0GCSqGSIb3DQEBCwUAMBYxFDASBgNV +BAMMC1NPQ1RPT0xTLUNBMB4XDTIwMTAzMDEwNDcxOFoXDTMwMTAyODEwNDcxOFow +FjEUMBIGA1UEAwwLU09DVE9PTFMtQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQC1GZDFZJPR7AYkhEsB9U6qtK+40di3KOeTwRosJ7hvP1FQjwnIC37B +UlVq15KEgRTCcXgLH0CdtzC1Rkz+AUCLyKTOGmNCqmvyMcESdpuoI1NULkv0QeYX +Mj4Q1Lh0RldqZpEr32UfsVowBPPhijAUlVAHeJLvji/tnUvI++9no2hx03UAhjTM +M59AviYsRT3DUkciNSllpwV+7B2pgnpRgzsbVGP2cheaaRYG9DAbRTLrAtVxO0WJ +c/zNGSpvXuOyBK30/pwGMvhNGPeckElSpDfaepuA8ZDcfaKNk0kEBvzIlUrpZBmv +tBc5DmpfEBlSk5UK/0XSblKE5dOqlWc1AgMBAAGjgYUwgYIwHQYDVR0OBBYEFHkG +ykDTn5pUrtMzTfI4PrYL8z3PMEYGA1UdIwQ/MD2AFHkGykDTn5pUrtMzTfI4PrYL +8z3PoRqkGDAWMRQwEgYDVQQDDAtTT0NUT09MUy1DQYIJAIp0kyaAW0K3MAwGA1Ud +EwQFMAMBAf8wCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBCwUAA4IBAQA0XK1+Eg+j +JdwKnUpnwPq+fsyrCs4TF1DgwtqY4yr1KCw0QSPMK9ldLp62lJaRnrPE7ZGOQ7sd +z82yEM8nMulNREp3TZwuVFaWgs0yLVKkfqZ0jNGDuEf8AJAynI4ynRbtYxtYzBDy +XgJPk9lKK/gR14IXBet/dGbZf4yHiMzldMCb0dWzyDS1S+Y1iLTRCmpmRbFow12g +CjNoSxdyoJPZavcOVWa4tDc3PLMdkgdY20ewo3IvCQTOg9ogVX4Hq5/M4xTz8XUX +nHeUqshdkPVGFCIujCBg9131RYSE0SkVrPUaIbP9tgzabkZWwhiq8oSpTBmIi9qh +GPiQTFGknE1U +-----END CERTIFICATE----- diff --git a/roles/odfekibana/files/cacerts.jks b/roles/odfekibana/files/cacerts.jks new file mode 100644 index 0000000000000000000000000000000000000000..9d4001b7d9a466941cda896b6bf145bf2f02020c GIT binary patch literal 893 zcmezO_TO6u1_mYu1_nkj&0U<IT#}!kQ>>eu$iTo@S}9llhJiIg&(y$@fq~i5po!Vk zpovL#0W%XL6B8#xSIK0xhG?hl2E1&XT5TR}-+37sxmg(u#0*6YgxHuvS(tgagZ-UD z{QZ4`b)6jz<ivT63=9p74GaxT%ndD~#CbtXBMT@Or@kgeC1fiYSs9p{82K3tni#p5 zniv@wwn|Ponlky~8#a{|Z^o~FtG2A)aq-4>jpvgOO6jQY$hQv+=;u7aU3V}jH0%1L zmPV07g%#ZL4s*8~Y<2Vb$LP>~V#ztFWT#cxp9~KQmCatE92}zO{l)Q_xRIT}l^rE+ z;aO=DweP3OZ;Ucv`TVfUKxAqFd&Q*pefn?bdY}0HK7DaU;pI|>Hj^{P^Bwl7>A2b+ z4susA)l6N^TK7hFWm8pPv$b?c^0y-KS(##NUks#Ojb1ZdEwpy+EdFy=QY%01@g|nF zU;fQuGy35x@qNw&&!8pdx2k40e4KEnc2VzSPZqX6C#HJ6Op#o_Mck4vD_%e{X!2C9 z|E`zvf?A$lUNtq{l!=*<fpKwTt3hLvfh-$ys4O3g7>h_H+bM_3^Jj&uyKL<H$--_M z_h;Ml25ul}Wfpq_+Xk!(7D_FVz!eWoNHNX>GDnz&)qt6i@xK8#h{w;u!py|Th8$De z;Fw}$Fo{`PC&a&4^$youuk-`I_SKzP&2>&#JmA5hTQeSOebvx0aa2B|eKS^X-nJ>z zCeGV@<n6>h=iRdB&u$VpuWt0x*Tt*ccaC02*tDjzM!G>u>Xw!CTx{Oq{)b_L(VRY` zxnggVr6bM=e2Qc8pM29x`-kB5CUMr+^(ARH>wDTe&O9wSF#F=w%_mH@dOtJm*m998 zE6sId#^KlnT*evR;zbK4-^}{X7n-(Xi@CYYX4y&X5x3npEH2XLWI5M-OChw5ef9h^ zk3~LzEES(qK4sO3*a=_VM3nS;6cWD2esyhWxu_|+=Bt$A=D*u`Zsoa!9g<k}sb!^) nWJmX{g%Up|_yjJQ;~Qf5+vDoDTqXObIbI&Z%6$8^_~bbON?lF- literal 0 HcmV?d00001 diff --git a/roles/odfekibana/files/dsoclab-kibana.crt b/roles/odfekibana/files/dsoclab-kibana.crt new file mode 100644 index 0000000..f47839f --- /dev/null +++ b/roles/odfekibana/files/dsoclab-kibana.crt @@ -0,0 +1,88 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 7d:fc:33:45:75:73:e8:f1:60:94:a7:4e:6b:2f:23:f1 + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=SOCTOOLS-CA + Validity + Not Before: Oct 30 10:47:27 2020 GMT + Not After : Oct 15 10:47:27 2023 GMT + Subject: CN=dsoclab-kibana + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:ce:4f:c9:0f:84:4d:4e:7b:dc:11:90:c9:49:a8: + f3:60:44:a8:25:1b:59:83:64:0b:d1:e0:bc:59:50: + 22:a5:f5:88:7a:c8:40:65:e4:22:3d:77:d2:8f:9e: + 30:17:80:5e:20:85:bc:70:67:61:cb:d8:e2:9f:9a: + 7c:7b:a6:e8:4e:79:7b:cd:86:6e:26:52:37:45:b6: + ab:b7:6f:40:8f:7a:55:8b:d1:91:cc:21:6f:55:37: + 50:3b:72:1f:2d:3b:bf:75:47:91:88:6a:1c:ea:39: + dd:8b:25:31:55:0e:bc:52:6f:bf:0b:96:ef:e3:12: + 5c:da:63:22:54:e5:b3:95:8b:02:9e:57:3e:7b:4f: + a0:f5:6f:07:a8:5b:45:7c:cb:34:83:77:34:a5:b1: + ff:05:12:88:8f:cc:c4:05:5d:e9:e7:7d:2b:12:fa: + bb:4d:25:f4:f7:04:e7:95:06:95:ea:a9:c4:75:4e: + f7:03:67:2d:9c:9a:f4:01:f6:2a:8d:6c:6d:d0:59: + a9:ce:1f:12:b1:76:39:c8:07:d4:20:73:1e:f3:9c: + b9:67:83:3b:a8:7c:6e:fb:86:ea:3f:6a:8e:98:4c: + 39:a9:d1:4d:be:9f:0a:43:49:1b:fd:09:67:b6:62: + 71:fd:87:9a:63:25:00:aa:c7:a1:4d:23:12:e3:56: + 0f:6f + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + 50:F3:7D:4F:B2:8C:A5:09:FD:64:CB:C1:97:F1:F8:49:C8:6B:30:4D + X509v3 Authority Key Identifier: + keyid:79:06:CA:40:D3:9F:9A:54:AE:D3:33:4D:F2:38:3E:B6:0B:F3:3D:CF + DirName:/CN=SOCTOOLS-CA + serial:8A:74:93:26:80:5B:42:B7 + + X509v3 Extended Key Usage: + TLS Web Server Authentication, TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature, Key Encipherment + X509v3 Subject Alternative Name: + DNS:dsoclab-kibana, DNS:dsoclab.gn4-3-wp8-soc.sunet.se + Signature Algorithm: sha256WithRSAEncryption + ae:be:82:6f:6d:e6:c4:cb:c3:2a:d9:d6:ee:11:52:a6:de:89: + 9e:31:a3:e2:86:07:e9:d1:fe:95:c9:a2:38:90:df:05:ff:e5: + 99:27:e8:d8:55:00:8a:85:b3:15:a5:e5:5b:ce:4e:4f:01:3b: + 74:a4:b2:09:fc:6e:95:92:94:2f:76:0d:c7:97:1b:78:c1:08: + 1e:3a:0e:fa:a6:ab:db:1e:22:26:86:39:f4:bb:89:a1:a1:d1: + 55:f6:c3:ff:9b:a5:eb:1b:6a:84:8a:1d:3c:5f:7c:03:0d:08: + 42:6f:d7:14:86:61:38:66:65:f7:c2:86:68:db:81:e9:41:0f: + 82:cf:bb:be:fd:d7:94:48:cc:f8:cf:4a:40:ce:33:c4:75:51: + 00:7e:c7:93:f6:3b:92:c1:5e:8a:ce:5f:2c:c2:f4:fe:ec:77: + 9e:ea:30:d9:53:ee:f9:b9:fd:50:f5:6b:92:1c:57:d2:e0:f3: + 05:d8:79:a9:63:16:13:09:cf:5f:39:dc:ec:43:e4:65:45:43: + 65:e4:7c:39:a3:a2:81:47:ab:8f:57:a9:89:9d:56:4b:77:b1: + 04:c8:9c:54:d2:5c:28:f5:d3:66:ae:9a:9c:a5:91:c7:eb:20: + 69:fb:58:99:c7:5e:be:ec:4a:7a:62:09:fe:3b:30:f2:4a:d7: + 1d:f9:0b:c3 +-----BEGIN CERTIFICATE----- +MIIDljCCAn6gAwIBAgIQffwzRXVz6PFglKdOay8j8TANBgkqhkiG9w0BAQsFADAW +MRQwEgYDVQQDDAtTT0NUT09MUy1DQTAeFw0yMDEwMzAxMDQ3MjdaFw0yMzEwMTUx +MDQ3MjdaMBkxFzAVBgNVBAMMDmRzb2NsYWIta2liYW5hMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAzk/JD4RNTnvcEZDJSajzYESoJRtZg2QL0eC8WVAi +pfWIeshAZeQiPXfSj54wF4BeIIW8cGdhy9jin5p8e6boTnl7zYZuJlI3Rbart29A +j3pVi9GRzCFvVTdQO3IfLTu/dUeRiGoc6jndiyUxVQ68Um+/C5bv4xJc2mMiVOWz +lYsCnlc+e0+g9W8HqFtFfMs0g3c0pbH/BRKIj8zEBV3p530rEvq7TSX09wTnlQaV +6qnEdU73A2ctnJr0AfYqjWxt0Fmpzh8SsXY5yAfUIHMe85y5Z4M7qHxu+4bqP2qO +mEw5qdFNvp8KQ0kb/QlntmJx/YeaYyUAqsehTSMS41YPbwIDAQABo4HcMIHZMAkG +A1UdEwQCMAAwHQYDVR0OBBYEFFDzfU+yjKUJ/WTLwZfx+EnIazBNMEYGA1UdIwQ/ +MD2AFHkGykDTn5pUrtMzTfI4PrYL8z3PoRqkGDAWMRQwEgYDVQQDDAtTT0NUT09M +Uy1DQYIJAIp0kyaAW0K3MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAL +BgNVHQ8EBAMCBaAwOQYDVR0RBDIwMIIOZHNvY2xhYi1raWJhbmGCHmRzb2NsYWIu +Z240LTMtd3A4LXNvYy5zdW5ldC5zZTANBgkqhkiG9w0BAQsFAAOCAQEArr6Cb23m +xMvDKtnW7hFSpt6JnjGj4oYH6dH+lcmiOJDfBf/lmSfo2FUAioWzFaXlW85OTwE7 +dKSyCfxulZKUL3YNx5cbeMEIHjoO+qar2x4iJoY59LuJoaHRVfbD/5ul6xtqhIod +PF98Aw0IQm/XFIZhOGZl98KGaNuB6UEPgs+7vv3XlEjM+M9KQM4zxHVRAH7Hk/Y7 +ksFeis5fLML0/ux3nuow2VPu+bn9UPVrkhxX0uDzBdh5qWMWEwnPXznc7EPkZUVD +ZeR8OaOigUerj1epiZ1WS3exBMicVNJcKPXTZq6anKWRx+sgaftYmcdevuxKemIJ +/jsw8krXHfkLww== +-----END CERTIFICATE----- diff --git a/roles/odfekibana/files/dsoclab-kibana.key b/roles/odfekibana/files/dsoclab-kibana.key new file mode 100644 index 0000000..9eec2e4 --- /dev/null +++ b/roles/odfekibana/files/dsoclab-kibana.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDOT8kPhE1Oe9wR +kMlJqPNgRKglG1mDZAvR4LxZUCKl9Yh6yEBl5CI9d9KPnjAXgF4ghbxwZ2HL2OKf +mnx7puhOeXvNhm4mUjdFtqu3b0CPelWL0ZHMIW9VN1A7ch8tO791R5GIahzqOd2L +JTFVDrxSb78Llu/jElzaYyJU5bOViwKeVz57T6D1bweoW0V8yzSDdzSlsf8FEoiP +zMQFXennfSsS+rtNJfT3BOeVBpXqqcR1TvcDZy2cmvQB9iqNbG3QWanOHxKxdjnI +B9Qgcx7znLlngzuofG77huo/ao6YTDmp0U2+nwpDSRv9CWe2YnH9h5pjJQCqx6FN +IxLjVg9vAgMBAAECggEBAKJC7gdeLs8Da1oFXcqpLoEQfo5wrD5CeWlgL8Ku3BFa +wzSOOtfoTWW6z8hUyc4yD9XUWRiutqP0uIh+oFlANIVD1rMWf5t0HjSeLv/eaBBw +Tsfg06KQyVdkYZ3fa9XPoA1FdJitnIA7cpr1bY9QP502djNPSux0jMLWJTJQVqXN +fXykLoIvB8xIPWbJAJMgF75turJMFT3wGN+qjCzbsZqIHmqp4eaKoH4Mz+Y6SJcA +uSzCdGKVPxHUVZbtkXn5GZXFx5YQ0wwRHJRWQ6Fn49HtKc5vBc7PN8fG18+s3DA2 +BR7MLgIaHGBKsnJgcOOZQiRCQP/uBBEIxIF0qU3h5UECgYEA6aiUvvBNcShCRaaH +Wf5GpYTT1ANNv5+3sCTy4KKt3yCxyyn5ENEFL1i8w6/LffGIAsoLnoEcxWV/fhLy +ZH5FzIYxlR/w2rddUyOXENx/9CWw/IhL91U9525JCJ0B0TBkZ9842ORX7kcI8+0g +4oaC5bDYTZotAto4ftNIzmfznesCgYEA4gnREIl4nv9v28x5aUS+HhSpsH9kkVrr +FQ0amCJSHu4U9J39MXS3Fju3rlmZG59J9ymEQ4tr0Hq3S+tsTy4hP5d67/KtoxKr +3smyKduX6gfOmEy3TjCSc+OMebM7lX0crX2+0JCm355yDC8fxdAGxpmqYvwmVw9Q +NbIb2mHR/40CgYEAjshlnQhbSnq/hLBupZ+srBivGS+rox2Gsizh/kNq3J6uBuhv +Osd/0572Ot6CC0Q9SPcOgp2DZ1zOu8v4M1C2dnTKd8Y8+Gp0rQlilvsndZpSvP7M +7Sc53OKX3puTMLHRqWfO5TskQIdIAUc2gTaRZqragxFj0App25ZhN0BurmECgYEA +uM8L5vhu7ZitjUk17zKsOo3sW4kc4ZczY4fOOZq+B9niukm+LMRfuUbkHCHXg/UN +lY6VPGBuqwraeLEoYei2eHbSpgKFozHt4f6Is55+K3Nsn6sBqGUgKK5gOVSon8Wm +P9byvzW1qlmyp3GUCbjXAWO8IqhEdKPpka1pBnk6KDUCgYAhGqRGJ7NG4+Wz/0/5 +Z/IQeEsLO4lB7EuIADn9udmrYgYqv7sHDzhIUOviJPRgf2ag68LEXXZsC029famu +/wbhD6pw1yq0QKGDcgH/LzHL9+74TqRlT7drPyOFPqOGPKtc88wL/aXRC90n7dsT +jFEbunnLOfUUjgxXiJpNU0FtjQ== +-----END PRIVATE KEY----- diff --git a/roles/odfekibana/files/dsoclab-kibana.p12 b/roles/odfekibana/files/dsoclab-kibana.p12 new file mode 100644 index 0000000000000000000000000000000000000000..f9e8737d615ab77c25857cf3b3c8eb2d77f03104 GIT binary patch literal 3397 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 literal 0 HcmV?d00001 diff --git a/roles/odfekibana/files/kibanasecret b/roles/odfekibana/files/kibanasecret new file mode 100644 index 0000000..ec28be7 --- /dev/null +++ b/roles/odfekibana/files/kibanasecret @@ -0,0 +1,3 @@ +{ + "value" : "19125de3-27fa-40e8-83bf-fdb8c8338b99" +} \ No newline at end of file diff --git a/roles/thehive/vars/main.yml b/roles/thehive/vars/main.yml index e69de29..9bd2813 100644 --- a/roles/thehive/vars/main.yml +++ b/roles/thehive/vars/main.yml @@ -0,0 +1,16 @@ +--- + +THEHIVE_USERS: + - kiril: + username: "kiril" + name: "Kiril" + surname: "Kiroski" + roles: '["read", "write", "admin"]' + organization: "uninett.no" + - temur: + username: "temur" + name: "Temur" + surname: "Maisuradze" + roles: '["read", "write", "admin"]' + organization: "uninett.no" + diff --git a/soctools-inventory b/soctools-inventory new file mode 100644 index 0000000..cff0d64 --- /dev/null +++ b/soctools-inventory @@ -0,0 +1,35 @@ +[dsldev] +localhost ansible_connection=local + +[nificontainers] +dsoclab-nifi-1 ansible_connection=docker +dsoclab-nifi-2 ansible_connection=docker +dsoclab-nifi-3 ansible_connection=docker + +[odfeescontainers] +dsoclab-odfe-1 ansible_connection=docker +dsoclab-odfe-2 ansible_connection=docker + +[odfekibanacontainers] +dsoclab-kibana ansible_connection=docker + +[keycloakcontainers] +dsoclab-keycloak ansible_connection=docker + +[mysql] +dsoclab-mysql ansible_connection=docker + +[mispcontainers] +dsoclab-misp ansible_connection=docker + +[cassandra] +dsoclab-cassandra ansible_connection=docker + +[thehive] +dsoclab-thehive ansible_connection=docker + +[cortex] +dsoclab-cortex ansible_connection=docker + +[haproxy] +dsoclab-haproxy ansible_connection=docker -- GitLab