Reupload (purge)
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
# IP de la VM VirtualBox Wazuh
|
||||
WAZUH_MANAGER_IP=192.168.1.27
|
||||
|
||||
# Windows
|
||||
WIN_VERSION=11
|
||||
WIN_RAM=4G
|
||||
WIN_CPU=2
|
||||
@@ -0,0 +1,11 @@
|
||||
# Wazuh
|
||||
WAZUH_VERSION=4.9.0
|
||||
INDEXER_PASSWORD=SecretPassword123!
|
||||
API_PASSWORD=MyS3cr37P450r.*-
|
||||
DASHBOARD_USERNAME=kibanaserver
|
||||
DASHBOARD_PASSWORD=kibanaserver
|
||||
|
||||
# Windows
|
||||
WIN_VERSION=11
|
||||
WIN_RAM=4G
|
||||
WIN_CPU=2
|
||||
@@ -0,0 +1,81 @@
|
||||
Jul 21 12:00:01 ubuntu sshd[12345]: Failed password for invalid user user1 from 192.168.0.2 port 5001 ssh2
|
||||
Jul 21 12:00:02 ubuntu sshd[12345]: Failed password for invalid user user2 from 192.168.0.3 port 5002 ssh2
|
||||
Jul 21 12:00:03 ubuntu sshd[12345]: Failed password for invalid user user3 from 192.168.0.4 port 5003 ssh2
|
||||
Jul 21 12:00:04 ubuntu sshd[12345]: Failed password for invalid user user4 from 192.168.0.5 port 5004 ssh2
|
||||
Jul 21 12:00:05 ubuntu sshd[12345]: Failed password for invalid user user5 from 192.168.0.1 port 5005 ssh2
|
||||
Jul 21 12:00:06 ubuntu sshd[12345]: Failed password for invalid user user6 from 192.168.0.2 port 5006 ssh2
|
||||
Jul 21 12:00:07 ubuntu sshd[12345]: Failed password for invalid user user7 from 192.168.0.3 port 5007 ssh2
|
||||
Jul 21 12:00:08 ubuntu sshd[12345]: Failed password for invalid user user8 from 192.168.0.4 port 5008 ssh2
|
||||
Jul 21 12:00:09 ubuntu sshd[12345]: Failed password for invalid user user9 from 192.168.0.5 port 5009 ssh2
|
||||
Jul 21 12:00:10 ubuntu sshd[12345]: Failed password for invalid user user10 from 192.168.0.1 port 5010 ssh2
|
||||
Jul 21 12:00:11 ubuntu sshd[12345]: Failed password for invalid user user11 from 192.168.0.2 port 5011 ssh2
|
||||
Jul 21 12:00:12 ubuntu sshd[12345]: Failed password for invalid user user12 from 192.168.0.3 port 5012 ssh2
|
||||
Jul 21 12:00:13 ubuntu sshd[12345]: Failed password for invalid user user13 from 192.168.0.4 port 5013 ssh2
|
||||
Jul 21 12:00:14 ubuntu sshd[12345]: Failed password for invalid user user14 from 192.168.0.5 port 5014 ssh2
|
||||
Jul 21 12:00:15 ubuntu sshd[12345]: Failed password for invalid user user15 from 192.168.0.1 port 5015 ssh2
|
||||
Jul 21 12:00:16 ubuntu sshd[12345]: Failed password for invalid user user16 from 192.168.0.2 port 5016 ssh2
|
||||
Jul 21 12:00:17 ubuntu sshd[12345]: Failed password for invalid user user17 from 192.168.0.3 port 5017 ssh2
|
||||
Jul 21 12:00:18 ubuntu sshd[12345]: Failed password for invalid user user18 from 192.168.0.4 port 5018 ssh2
|
||||
Jul 21 12:00:19 ubuntu sshd[12345]: Failed password for invalid user user19 from 192.168.0.5 port 5019 ssh2
|
||||
Jul 21 12:00:20 ubuntu sshd[12345]: Failed password for invalid user user20 from 192.168.0.1 port 5020 ssh2
|
||||
Jul 21 12:00:21 ubuntu sshd[12345]: Failed password for invalid user user21 from 192.168.0.2 port 5021 ssh2
|
||||
Jul 21 12:00:22 ubuntu sshd[12345]: Failed password for invalid user user22 from 192.168.0.3 port 5022 ssh2
|
||||
Jul 21 12:00:23 ubuntu sshd[12345]: Failed password for invalid user user23 from 192.168.0.4 port 5023 ssh2
|
||||
Jul 21 12:00:24 ubuntu sshd[12345]: Failed password for invalid user user24 from 192.168.0.5 port 5024 ssh2
|
||||
Jul 21 12:00:25 ubuntu sshd[12345]: Failed password for invalid user user25 from 192.168.0.1 port 5025 ssh2
|
||||
Jul 21 12:00:26 ubuntu sshd[12345]: Failed password for invalid user user26 from 192.168.0.2 port 5026 ssh2
|
||||
Jul 21 12:00:27 ubuntu sshd[12345]: Failed password for invalid user user27 from 192.168.0.3 port 5027 ssh2
|
||||
Jul 21 12:00:28 ubuntu sshd[12345]: Failed password for invalid user user28 from 192.168.0.4 port 5028 ssh2
|
||||
Jul 21 12:00:29 ubuntu sshd[12345]: Failed password for invalid user user29 from 192.168.0.5 port 5029 ssh2
|
||||
Jul 21 12:00:30 ubuntu sshd[12345]: Failed password for invalid user user30 from 192.168.0.1 port 5030 ssh2
|
||||
Jul 21 12:00:31 ubuntu sshd[12345]: Failed password for invalid user user31 from 192.168.0.2 port 5031 ssh2
|
||||
Jul 21 12:00:32 ubuntu sshd[12345]: Failed password for invalid user user32 from 192.168.0.3 port 5032 ssh2
|
||||
Jul 21 12:00:33 ubuntu sshd[12345]: Failed password for invalid user user33 from 192.168.0.4 port 5033 ssh2
|
||||
Jul 21 12:00:34 ubuntu sshd[12345]: Failed password for invalid user user34 from 192.168.0.5 port 5034 ssh2
|
||||
Jul 21 12:00:35 ubuntu sshd[12345]: Failed password for invalid user user35 from 192.168.0.1 port 5035 ssh2
|
||||
Jul 21 12:00:36 ubuntu sshd[12345]: Failed password for invalid user user36 from 192.168.0.2 port 5036 ssh2
|
||||
Jul 21 12:00:37 ubuntu sshd[12345]: Failed password for invalid user user37 from 192.168.0.3 port 5037 ssh2
|
||||
Jul 21 12:00:38 ubuntu sshd[12345]: Failed password for invalid user user38 from 192.168.0.4 port 5038 ssh2
|
||||
Jul 21 12:00:39 ubuntu sshd[12345]: Failed password for invalid user user39 from 192.168.0.5 port 5039 ssh2
|
||||
Jul 21 12:00:40 ubuntu sshd[12345]: Failed password for invalid user user40 from 192.168.0.1 port 5040 ssh2
|
||||
Jul 21 12:01:00 ubuntu sshd[12345]: Accepted password for validuser from 192.168.0.1 port 5000 ssh2
|
||||
Jul 21 12:00:01 ubuntu sshd[12345]: Failed password for invalid user user1 from 192.168.0.2 port 5001 ssh2
|
||||
Jul 21 12:00:02 ubuntu sshd[12345]: Failed password for invalid user user2 from 192.168.0.3 port 5002 ssh2
|
||||
Jul 21 12:00:03 ubuntu sshd[12345]: Failed password for invalid user user3 from 192.168.0.4 port 5003 ssh2
|
||||
Jul 21 12:00:04 ubuntu sshd[12345]: Failed password for invalid user user4 from 192.168.0.5 port 5004 ssh2
|
||||
Jul 21 12:00:05 ubuntu sshd[12345]: Failed password for invalid user user5 from 192.168.0.1 port 5005 ssh2
|
||||
Jul 21 12:00:06 ubuntu sshd[12345]: Failed password for invalid user user6 from 192.168.0.2 port 5006 ssh2
|
||||
Jul 21 12:00:07 ubuntu sshd[12345]: Failed password for invalid user user7 from 192.168.0.3 port 5007 ssh2
|
||||
Jul 21 12:00:08 ubuntu sshd[12345]: Failed password for invalid user user8 from 192.168.0.4 port 5008 ssh2
|
||||
Jul 21 12:00:09 ubuntu sshd[12345]: Failed password for invalid user user9 from 192.168.0.5 port 5009 ssh2
|
||||
Jul 21 12:00:10 ubuntu sshd[12345]: Failed password for invalid user user10 from 192.168.0.1 port 5010 ssh2
|
||||
Jul 21 12:00:11 ubuntu sshd[12345]: Failed password for invalid user user11 from 192.168.0.2 port 5011 ssh2
|
||||
Jul 21 12:00:12 ubuntu sshd[12345]: Failed password for invalid user user12 from 192.168.0.3 port 5012 ssh2
|
||||
Jul 21 12:00:13 ubuntu sshd[12345]: Failed password for invalid user user13 from 192.168.0.4 port 5013 ssh2
|
||||
Jul 21 12:00:14 ubuntu sshd[12345]: Failed password for invalid user user14 from 192.168.0.5 port 5014 ssh2
|
||||
Jul 21 12:00:15 ubuntu sshd[12345]: Failed password for invalid user user15 from 192.168.0.1 port 5015 ssh2
|
||||
Jul 21 12:00:16 ubuntu sshd[12345]: Failed password for invalid user user16 from 192.168.0.2 port 5016 ssh2
|
||||
Jul 21 12:00:17 ubuntu sshd[12345]: Failed password for invalid user user17 from 192.168.0.3 port 5017 ssh2
|
||||
Jul 21 12:00:18 ubuntu sshd[12345]: Failed password for invalid user user18 from 192.168.0.4 port 5018 ssh2
|
||||
Jul 21 12:00:19 ubuntu sshd[12345]: Failed password for invalid user user19 from 192.168.0.5 port 5019 ssh2
|
||||
Jul 21 12:00:20 ubuntu sshd[12345]: Failed password for invalid user user20 from 192.168.0.1 port 5020 ssh2
|
||||
Jul 21 12:00:21 ubuntu sshd[12345]: Failed password for invalid user user21 from 192.168.0.2 port 5021 ssh2
|
||||
Jul 21 12:00:22 ubuntu sshd[12345]: Failed password for invalid user user22 from 192.168.0.3 port 5022 ssh2
|
||||
Jul 21 12:00:23 ubuntu sshd[12345]: Failed password for invalid user user23 from 192.168.0.4 port 5023 ssh2
|
||||
Jul 21 12:00:24 ubuntu sshd[12345]: Failed password for invalid user user24 from 192.168.0.5 port 5024 ssh2
|
||||
Jul 21 12:00:25 ubuntu sshd[12345]: Failed password for invalid user user25 from 192.168.0.1 port 5025 ssh2
|
||||
Jul 21 12:00:26 ubuntu sshd[12345]: Failed password for invalid user user26 from 192.168.0.2 port 5026 ssh2
|
||||
Jul 21 12:00:27 ubuntu sshd[12345]: Failed password for invalid user user27 from 192.168.0.3 port 5027 ssh2
|
||||
Jul 21 12:00:28 ubuntu sshd[12345]: Failed password for invalid user user28 from 192.168.0.4 port 5028 ssh2
|
||||
Jul 21 12:00:29 ubuntu sshd[12345]: Failed password for invalid user user29 from 192.168.0.5 port 5029 ssh2
|
||||
Jul 21 12:00:30 ubuntu sshd[12345]: Failed password for invalid user user30 from 192.168.0.1 port 5030 ssh2
|
||||
Jul 21 12:00:31 ubuntu sshd[12345]: Failed password for invalid user user31 from 192.168.0.2 port 5031 ssh2
|
||||
Jul 21 12:00:32 ubuntu sshd[12345]: Failed password for invalid user user32 from 192.168.0.3 port 5032 ssh2
|
||||
Jul 21 12:00:33 ubuntu sshd[12345]: Failed password for invalid user user33 from 192.168.0.4 port 5033 ssh2
|
||||
Jul 21 12:00:34 ubuntu sshd[12345]: Failed password for invalid user user34 from 192.168.0.5 port 5034 ssh2
|
||||
Jul 21 12:00:35 ubuntu sshd[12345]: Failed password for invalid user user35 from 192.168.0.1 port 5035 ssh2
|
||||
Jul 21 12:00:36 ubuntu sshd[12345]: Failed password for invalid user user36 from 192.168.0.2 port 5036 ssh2
|
||||
Jul 21 12:00:37 ubuntu sshd[12345]: Failed password for invalid user user37 from 192.168.0.3 port 5037 ssh2
|
||||
Jul 21 12:00:38 ubuntu sshd[12345]: Failed password for invalid user user38 from 192.168.0.4 port 5038 ssh2
|
||||
Jul 21 12:00:39 ubuntu sshd[12345]: Failed password for invalid user user39 from 192.168.0.5 port 5039 ssh2
|
||||
Jul 21 12:00:40 ubuntu sshd[12345]: Failed password for invalid user user40 from 192.168.0.1 port 5040 ssh2
|
||||
@@ -0,0 +1,7 @@
|
||||
> auth.log
|
||||
|
||||
for i in {1..40}; do
|
||||
echo "Jul 21 12:00:$(printf "%02d" $i) ubuntu sshd[12345]: Failed password for invalid user user$i from 192.168.0.$((i%5+1)) port $((5000+i)) ssh2" >> auth.log
|
||||
done
|
||||
|
||||
echo "Jul 21 12:01:00 ubuntu sshd[12345]: Accepted password for validuser from 192.168.0.1 port 5000 ssh2" >> auth.log
|
||||
@@ -0,0 +1,27 @@
|
||||
# Create working directory
|
||||
mkdir -p config/wazuh_indexer_ssl_certs
|
||||
cd config
|
||||
|
||||
# Download the certificate tool
|
||||
curl -sO https://packages.wazuh.com/4.9/wazuh-certs-tool.sh
|
||||
|
||||
# Create the configuration file
|
||||
cat > config.yml <<EOF
|
||||
nodes:
|
||||
indexer:
|
||||
- name: wazuh.indexer
|
||||
ip: wazuh.indexer
|
||||
server:
|
||||
- name: wazuh.manager
|
||||
ip: wazuh.manager
|
||||
dashboard:
|
||||
- name: wazuh.dashboard
|
||||
ip: wazuh.dashboard
|
||||
EOF
|
||||
|
||||
# Generate certificates
|
||||
chmod +x wazuh-certs-tool.sh
|
||||
./wazuh-certs-tool.sh -A
|
||||
|
||||
# Move the generated certificates to the expected path
|
||||
mv wazuh-certificates/* wazuh_indexer_ssl_certs/
|
||||
@@ -0,0 +1,13 @@
|
||||
nodes:
|
||||
# Wazuh indexer nodes
|
||||
indexer:
|
||||
- name: wazuh.indexer
|
||||
ip: wazuh.indexer
|
||||
# Wazuh server nodes
|
||||
server:
|
||||
- name: wazuh.manager
|
||||
ip: wazuh.manager
|
||||
# Wazuh dashboard nodes
|
||||
dashboard:
|
||||
- name: wazuh.dashboard
|
||||
ip: wazuh.dashboard
|
||||
@@ -0,0 +1,10 @@
|
||||
nodes:
|
||||
indexer:
|
||||
- name: wazuh.indexer
|
||||
ip: wazuh.indexer
|
||||
server:
|
||||
- name: wazuh.manager
|
||||
ip: wazuh.manager
|
||||
dashboard:
|
||||
- name: wazuh.dashboard
|
||||
ip: wazuh.dashboard
|
||||
@@ -0,0 +1,20 @@
|
||||
04/08/2026 11:14:32 INFO: Verbose logging redirected to /mnt/d/Users/GaWin/LiveCampus/Semaine_12/Jour_02/wazuhlab/config/wazuh-certificates-tool.log
|
||||
04/08/2026 11:14:32 INFO: Generating the root certificate.
|
||||
04/08/2026 11:14:32 INFO: Generating Admin certificates.
|
||||
04/08/2026 11:14:32 INFO: Admin certificates created.
|
||||
04/08/2026 11:14:32 INFO: Generating Wazuh indexer certificates.
|
||||
04/08/2026 11:14:32 INFO: Wazuh indexer certificates created.
|
||||
04/08/2026 11:14:32 INFO: Generating Filebeat certificates.
|
||||
04/08/2026 11:14:32 INFO: Wazuh Filebeat certificates created.
|
||||
04/08/2026 11:14:32 INFO: Generating Wazuh dashboard certificates.
|
||||
04/08/2026 11:14:33 INFO: Wazuh dashboard certificates created.
|
||||
04/08/2026 11:18:57 INFO: Verbose logging redirected to /mnt/d/Users/GaWin/LiveCampus/Semaine_12/Jour_02/wazuhlab/config/wazuh-certificates-tool.log
|
||||
04/08/2026 11:18:57 INFO: Generating the root certificate.
|
||||
04/08/2026 11:18:57 INFO: Generating Admin certificates.
|
||||
04/08/2026 11:18:57 INFO: Admin certificates created.
|
||||
04/08/2026 11:18:57 INFO: Generating Wazuh indexer certificates.
|
||||
04/08/2026 11:18:57 INFO: Wazuh indexer certificates created.
|
||||
04/08/2026 11:18:57 INFO: Generating Filebeat certificates.
|
||||
04/08/2026 11:18:57 INFO: Wazuh Filebeat certificates created.
|
||||
04/08/2026 11:18:57 INFO: Generating Wazuh dashboard certificates.
|
||||
04/08/2026 11:18:58 INFO: Wazuh dashboard certificates created.
|
||||
@@ -0,0 +1,924 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Wazuh installer
|
||||
# Copyright (C) 2015, Wazuh Inc.
|
||||
#
|
||||
# This program is a free software; you can redistribute it
|
||||
# and/or modify it under the terms of the GNU General Public
|
||||
# License (version 2) as published by the FSF - Free Software
|
||||
# Foundation.
|
||||
adminpem="/etc/wazuh-indexer/certs/admin.pem"
|
||||
adminkey="/etc/wazuh-indexer/certs/admin-key.pem"
|
||||
readonly base_path="$(dirname "$(readlink -f "$0")")"
|
||||
readonly config_file="${base_path}/config.yml"
|
||||
readonly logfile="${base_path}/wazuh-certificates-tool.log"
|
||||
cert_tmp_path="/tmp/wazuh-certificates"
|
||||
debug=">> ${logfile} 2>&1"
|
||||
readonly cert_tool_script_name=".*certs.*\.sh"
|
||||
|
||||
# ------------ certFunctions.sh ------------
|
||||
function cert_cleanFiles() {
|
||||
|
||||
common_logger -d "Cleaning certificate files."
|
||||
eval "rm -f ${cert_tmp_path}/*.csr ${debug}"
|
||||
eval "rm -f ${cert_tmp_path}/*.srl ${debug}"
|
||||
eval "rm -f ${cert_tmp_path}/*.conf ${debug}"
|
||||
eval "rm -f ${cert_tmp_path}/admin-key-temp.pem ${debug}"
|
||||
|
||||
}
|
||||
function cert_checkOpenSSL() {
|
||||
|
||||
common_logger -d "Checking if OpenSSL is installed."
|
||||
|
||||
if [ -z "$(command -v openssl)" ]; then
|
||||
common_logger -e "OpenSSL not installed."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
}
|
||||
function cert_checkRootCA() {
|
||||
|
||||
common_logger -d "Checking if the root CA exists."
|
||||
|
||||
if [[ -n ${rootca} || -n ${rootcakey} ]]; then
|
||||
# Verify variables match keys
|
||||
if [[ ${rootca} == *".key" ]]; then
|
||||
ca_temp=${rootca}
|
||||
rootca=${rootcakey}
|
||||
rootcakey=${ca_temp}
|
||||
fi
|
||||
# Validate that files exist
|
||||
if [[ -e ${rootca} ]]; then
|
||||
eval "cp ${rootca} ${cert_tmp_path}/root-ca.pem ${debug}"
|
||||
else
|
||||
common_logger -e "The file ${rootca} does not exists"
|
||||
cert_cleanFiles
|
||||
exit 1
|
||||
fi
|
||||
if [[ -e ${rootcakey} ]]; then
|
||||
eval "cp ${rootcakey} ${cert_tmp_path}/root-ca.key ${debug}"
|
||||
else
|
||||
common_logger -e "The file ${rootcakey} does not exists"
|
||||
cert_cleanFiles
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
cert_generateRootCAcertificate
|
||||
fi
|
||||
|
||||
}
|
||||
function cert_executeAndValidate() {
|
||||
|
||||
command_output=$(eval "$@" 2>&1)
|
||||
e_code="${PIPESTATUS[0]}"
|
||||
|
||||
if [ "${e_code}" -ne 0 ]; then
|
||||
common_logger -e "Error generating the certificates."
|
||||
common_logger -d "Error executing command: $@"
|
||||
common_logger -d "Error output: ${command_output}"
|
||||
cert_cleanFiles
|
||||
exit 1
|
||||
fi
|
||||
|
||||
}
|
||||
function cert_generateAdmincertificate() {
|
||||
|
||||
common_logger "Generating Admin certificates."
|
||||
common_logger -d "Generating Admin private key."
|
||||
cert_executeAndValidate "openssl genrsa -out ${cert_tmp_path}/admin-key-temp.pem 2048"
|
||||
common_logger -d "Converting Admin private key to PKCS8 format."
|
||||
cert_executeAndValidate "openssl pkcs8 -inform PEM -outform PEM -in ${cert_tmp_path}/admin-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out ${cert_tmp_path}/admin-key.pem"
|
||||
common_logger -d "Generating Admin CSR."
|
||||
cert_executeAndValidate "openssl req -new -key ${cert_tmp_path}/admin-key.pem -out ${cert_tmp_path}/admin.csr -batch -subj '/C=US/L=California/O=Wazuh/OU=Wazuh/CN=admin'"
|
||||
common_logger -d "Creating Admin certificate."
|
||||
cert_executeAndValidate "openssl x509 -days 3650 -req -in ${cert_tmp_path}/admin.csr -CA ${cert_tmp_path}/root-ca.pem -CAkey ${cert_tmp_path}/root-ca.key -CAcreateserial -sha256 -out ${cert_tmp_path}/admin.pem"
|
||||
|
||||
}
|
||||
function cert_generateCertificateconfiguration() {
|
||||
|
||||
common_logger -d "Generating certificate configuration."
|
||||
cat > "${cert_tmp_path}/${1}.conf" <<- EOF
|
||||
[ req ]
|
||||
prompt = no
|
||||
default_bits = 2048
|
||||
default_md = sha256
|
||||
distinguished_name = req_distinguished_name
|
||||
x509_extensions = v3_req
|
||||
|
||||
[req_distinguished_name]
|
||||
C = US
|
||||
L = California
|
||||
O = Wazuh
|
||||
OU = Wazuh
|
||||
CN = cname
|
||||
|
||||
[ v3_req ]
|
||||
authorityKeyIdentifier=keyid,issuer
|
||||
basicConstraints = CA:FALSE
|
||||
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
|
||||
subjectAltName = @alt_names
|
||||
|
||||
[alt_names]
|
||||
IP.1 = cip
|
||||
EOF
|
||||
|
||||
|
||||
conf="$(awk '{sub("CN = cname", "CN = '"${1}"'")}1' "${cert_tmp_path}/${1}.conf")"
|
||||
echo "${conf}" > "${cert_tmp_path}/${1}.conf"
|
||||
|
||||
if [ "${#@}" -gt 1 ]; then
|
||||
sed -i '/IP.1/d' "${cert_tmp_path}/${1}.conf"
|
||||
for (( i=2; i<=${#@}; i++ )); do
|
||||
isIP=$(echo "${!i}" | grep -P "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$")
|
||||
isDNS=$(echo "${!i}" | grep -P "^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])\.([A-Za-z]{2,})$" ) j=$((i-1))
|
||||
if [ "${isIP}" ]; then
|
||||
printf '%s\n' " IP.${j} = ${!i}" >> "${cert_tmp_path}/${1}.conf"
|
||||
elif [ "${isDNS}" ]; then
|
||||
printf '%s\n' " DNS.${j} = ${!i}" >> "${cert_tmp_path}/${1}.conf"
|
||||
else
|
||||
common_logger -e "Invalid IP or DNS ${!i}"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
else
|
||||
common_logger -e "No IP or DNS specified"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
}
|
||||
function cert_generateIndexercertificates() {
|
||||
|
||||
if [ ${#indexer_node_names[@]} -gt 0 ]; then
|
||||
common_logger "Generating Wazuh indexer certificates."
|
||||
|
||||
for i in "${!indexer_node_names[@]}"; do
|
||||
indexer_node_name=${indexer_node_names[$i]}
|
||||
common_logger -d "Creating the certificates for ${indexer_node_name} indexer node."
|
||||
cert_generateCertificateconfiguration "${indexer_node_name}" "${indexer_node_ips[i]}"
|
||||
common_logger -d "Creating the Wazuh indexer tmp key pair."
|
||||
cert_executeAndValidate "openssl req -new -nodes -newkey rsa:2048 -keyout ${cert_tmp_path}/${indexer_node_name}-key.pem -out ${cert_tmp_path}/${indexer_node_name}.csr -config ${cert_tmp_path}/${indexer_node_name}.conf"
|
||||
common_logger -d "Creating the Wazuh indexer certificates."
|
||||
cert_executeAndValidate "openssl x509 -req -in ${cert_tmp_path}/${indexer_node_name}.csr -CA ${cert_tmp_path}/root-ca.pem -CAkey ${cert_tmp_path}/root-ca.key -CAcreateserial -out ${cert_tmp_path}/${indexer_node_name}.pem -extfile ${cert_tmp_path}/${indexer_node_name}.conf -extensions v3_req -days 3650"
|
||||
done
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
|
||||
}
|
||||
function cert_generateFilebeatcertificates() {
|
||||
|
||||
if [ ${#server_node_names[@]} -gt 0 ]; then
|
||||
common_logger "Generating Filebeat certificates."
|
||||
|
||||
for i in "${!server_node_names[@]}"; do
|
||||
server_name="${server_node_names[i]}"
|
||||
common_logger -d "Generating the certificates for ${server_name} server node."
|
||||
j=$((i+1))
|
||||
declare -a server_ips=(server_node_ip_"$j"[@])
|
||||
cert_generateCertificateconfiguration "${server_name}" "${!server_ips}"
|
||||
common_logger -d "Creating the Wazuh server tmp key pair."
|
||||
cert_executeAndValidate "openssl req -new -nodes -newkey rsa:2048 -keyout ${cert_tmp_path}/${server_name}-key.pem -out ${cert_tmp_path}/${server_name}.csr -config ${cert_tmp_path}/${server_name}.conf"
|
||||
common_logger -d "Creating the Wazuh server certificates."
|
||||
cert_executeAndValidate "openssl x509 -req -in ${cert_tmp_path}/${server_name}.csr -CA ${cert_tmp_path}/root-ca.pem -CAkey ${cert_tmp_path}/root-ca.key -CAcreateserial -out ${cert_tmp_path}/${server_name}.pem -extfile ${cert_tmp_path}/${server_name}.conf -extensions v3_req -days 3650"
|
||||
done
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
|
||||
}
|
||||
function cert_generateDashboardcertificates() {
|
||||
if [ ${#dashboard_node_names[@]} -gt 0 ]; then
|
||||
common_logger "Generating Wazuh dashboard certificates."
|
||||
|
||||
for i in "${!dashboard_node_names[@]}"; do
|
||||
dashboard_node_name="${dashboard_node_names[i]}"
|
||||
cert_generateCertificateconfiguration "${dashboard_node_name}" "${dashboard_node_ips[i]}"
|
||||
common_logger -d "Creating the Wazuh dashboard tmp key pair."
|
||||
cert_executeAndValidate "openssl req -new -nodes -newkey rsa:2048 -keyout ${cert_tmp_path}/${dashboard_node_name}-key.pem -out ${cert_tmp_path}/${dashboard_node_name}.csr -config ${cert_tmp_path}/${dashboard_node_name}.conf"
|
||||
common_logger -d "Creating the Wazuh dashboard certificates."
|
||||
cert_executeAndValidate "openssl x509 -req -in ${cert_tmp_path}/${dashboard_node_name}.csr -CA ${cert_tmp_path}/root-ca.pem -CAkey ${cert_tmp_path}/root-ca.key -CAcreateserial -out ${cert_tmp_path}/${dashboard_node_name}.pem -extfile ${cert_tmp_path}/${dashboard_node_name}.conf -extensions v3_req -days 3650"
|
||||
done
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
|
||||
}
|
||||
function cert_generateRootCAcertificate() {
|
||||
|
||||
common_logger "Generating the root certificate."
|
||||
cert_executeAndValidate "openssl req -x509 -new -nodes -newkey rsa:2048 -keyout ${cert_tmp_path}/root-ca.key -out ${cert_tmp_path}/root-ca.pem -batch -subj '/OU=Wazuh/O=Wazuh/L=California/' -days 3650"
|
||||
|
||||
}
|
||||
function cert_parseYaml() {
|
||||
|
||||
local prefix=$2
|
||||
local separator=${3:-_}
|
||||
local indexfix
|
||||
# Detect awk flavor
|
||||
if awk --version 2>&1 | grep -q "GNU Awk" ; then
|
||||
# GNU Awk detected
|
||||
indexfix=-1
|
||||
elif awk -Wv 2>&1 | grep -q "mawk" ; then
|
||||
# mawk detected
|
||||
indexfix=0
|
||||
fi
|
||||
|
||||
local s='[[:space:]]*' sm='[ \t]*' w='[a-zA-Z0-9_]*' fs=${fs:-$(echo @|tr @ '\034')} i=${i:- }
|
||||
cat $1 2>/dev/null | \
|
||||
awk -F$fs "{multi=0;
|
||||
if(match(\$0,/$sm\|$sm$/)){multi=1; sub(/$sm\|$sm$/,\"\");}
|
||||
if(match(\$0,/$sm>$sm$/)){multi=2; sub(/$sm>$sm$/,\"\");}
|
||||
while(multi>0){
|
||||
str=\$0; gsub(/^$sm/,\"\", str);
|
||||
indent=index(\$0,str);
|
||||
indentstr=substr(\$0, 0, indent+$indexfix) \"$i\";
|
||||
obuf=\$0;
|
||||
getline;
|
||||
while(index(\$0,indentstr)){
|
||||
obuf=obuf substr(\$0, length(indentstr)+1);
|
||||
if (multi==1){obuf=obuf \"\\\\n\";}
|
||||
if (multi==2){
|
||||
if(match(\$0,/^$sm$/))
|
||||
obuf=obuf \"\\\\n\";
|
||||
else obuf=obuf \" \";
|
||||
}
|
||||
getline;
|
||||
}
|
||||
sub(/$sm$/,\"\",obuf);
|
||||
print obuf;
|
||||
multi=0;
|
||||
if(match(\$0,/$sm\|$sm$/)){multi=1; sub(/$sm\|$sm$/,\"\");}
|
||||
if(match(\$0,/$sm>$sm$/)){multi=2; sub(/$sm>$sm$/,\"\");}
|
||||
}
|
||||
print}" | \
|
||||
sed -e "s|^\($s\)?|\1-|" \
|
||||
-ne "s|^$s#.*||;s|$s#[^\"']*$||;s|^\([^\"'#]*\)#.*|\1|;t1;t;:1;s|^$s\$||;t2;p;:2;d" | \
|
||||
sed -ne "s|,$s\]$s\$|]|" \
|
||||
-e ":1;s|^\($s\)\($w\)$s:$s\(&$w\)\?$s\[$s\(.*\)$s,$s\(.*\)$s\]|\1\2: \3[\4]\n\1$i- \5|;t1" \
|
||||
-e "s|^\($s\)\($w\)$s:$s\(&$w\)\?$s\[$s\(.*\)$s\]|\1\2: \3\n\1$i- \4|;" \
|
||||
-e ":2;s|^\($s\)-$s\[$s\(.*\)$s,$s\(.*\)$s\]|\1- [\2]\n\1$i- \3|;t2" \
|
||||
-e "s|^\($s\)-$s\[$s\(.*\)$s\]|\1-\n\1$i- \2|;p" | \
|
||||
sed -ne "s|,$s}$s\$|}|" \
|
||||
-e ":1;s|^\($s\)-$s{$s\(.*\)$s,$s\($w\)$s:$s\(.*\)$s}|\1- {\2}\n\1$i\3: \4|;t1" \
|
||||
-e "s|^\($s\)-$s{$s\(.*\)$s}|\1-\n\1$i\2|;" \
|
||||
-e ":2;s|^\($s\)\($w\)$s:$s\(&$w\)\?$s{$s\(.*\)$s,$s\($w\)$s:$s\(.*\)$s}|\1\2: \3 {\4}\n\1$i\5: \6|;t2" \
|
||||
-e "s|^\($s\)\($w\)$s:$s\(&$w\)\?$s{$s\(.*\)$s}|\1\2: \3\n\1$i\4|;p" | \
|
||||
sed -e "s|^\($s\)\($w\)$s:$s\(&$w\)\(.*\)|\1\2:\4\n\3|" \
|
||||
-e "s|^\($s\)-$s\(&$w\)\(.*\)|\1- \3\n\2|" | \
|
||||
sed -ne "s|^\($s\):|\1|" \
|
||||
-e "s|^\($s\)\(---\)\($s\)||" \
|
||||
-e "s|^\($s\)\(\.\.\.\)\($s\)||" \
|
||||
-e "s|^\($s\)-$s[\"']\(.*\)[\"']$s\$|\1$fs$fs\2|p;t" \
|
||||
-e "s|^\($s\)\($w\)$s:$s[\"']\(.*\)[\"']$s\$|\1$fs\2$fs\3|p;t" \
|
||||
-e "s|^\($s\)-$s\(.*\)$s\$|\1$fs$fs\2|" \
|
||||
-e "s|^\($s\)\($w\)$s:$s[\"']\?\(.*\)$s\$|\1$fs\2$fs\3|" \
|
||||
-e "s|^\($s\)[\"']\?\([^&][^$fs]\+\)[\"']$s\$|\1$fs$fs$fs\2|" \
|
||||
-e "s|^\($s\)[\"']\?\([^&][^$fs]\+\)$s\$|\1$fs$fs$fs\2|" \
|
||||
-e "s|$s\$||p" | \
|
||||
awk -F$fs "{
|
||||
gsub(/\t/,\" \",\$1);
|
||||
gsub(\"name: \", \"\");
|
||||
if(NF>3){if(value!=\"\"){value = value \" \";}value = value \$4;}
|
||||
else {
|
||||
if(match(\$1,/^&/)){anchor[substr(\$1,2)]=full_vn;getline};
|
||||
indent = length(\$1)/length(\"$i\");
|
||||
vname[indent] = \$2;
|
||||
value= \$3;
|
||||
for (i in vname) {if (i > indent) {delete vname[i]; idx[i]=0}}
|
||||
if(length(\$2)== 0){ vname[indent]= ++idx[indent] };
|
||||
vn=\"\"; for (i=0; i<indent; i++) { vn=(vn)(vname[i])(\"$separator\")}
|
||||
vn=\"$prefix\" vn;
|
||||
full_vn=vn vname[indent];
|
||||
if(vn==\"$prefix\")vn=\"$prefix$separator\";
|
||||
if(vn==\"_\")vn=\"__\";
|
||||
}
|
||||
assignment[full_vn]=value;
|
||||
if(!match(assignment[vn], full_vn))assignment[vn]=assignment[vn] \" \" full_vn;
|
||||
if(match(value,/^\*/)){
|
||||
ref=anchor[substr(value,2)];
|
||||
if(length(ref)==0){
|
||||
printf(\"%s=\\\"%s\\\"\n\", full_vn, value);
|
||||
} else {
|
||||
for(val in assignment){
|
||||
if((length(ref)>0)&&index(val, ref)==1){
|
||||
tmpval=assignment[val];
|
||||
sub(ref,full_vn,val);
|
||||
if(match(val,\"$separator\$\")){
|
||||
gsub(ref,full_vn,tmpval);
|
||||
} else if (length(tmpval) > 0) {
|
||||
printf(\"%s=\\\"%s\\\"\n\", val, tmpval);
|
||||
}
|
||||
assignment[val]=tmpval;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (length(value) > 0) {
|
||||
printf(\"%s=\\\"%s\\\"\n\", full_vn, value);
|
||||
}
|
||||
}END{
|
||||
for(val in assignment){
|
||||
if(match(val,\"$separator\$\"))
|
||||
printf(\"%s=\\\"%s\\\"\n\", val, assignment[val]);
|
||||
}
|
||||
}"
|
||||
|
||||
}
|
||||
function cert_checkPrivateIp() {
|
||||
|
||||
local ip=$1
|
||||
common_logger -d "Checking if ${ip} is private."
|
||||
|
||||
# Check private IPv4 ranges
|
||||
if [[ $ip =~ ^10\.|^192\.168\.|^172\.(1[6-9]|2[0-9]|3[0-1])\.|^(127\.) ]]; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Check private IPv6 ranges (fc00::/7 prefix)
|
||||
if [[ $ip =~ ^fc ]]; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
return 1
|
||||
|
||||
}
|
||||
function cert_readConfig() {
|
||||
|
||||
common_logger -d "Reading configuration file."
|
||||
|
||||
if [ -f "${config_file}" ]; then
|
||||
if [ ! -s "${config_file}" ]; then
|
||||
common_logger -e "File ${config_file} is empty"
|
||||
exit 1
|
||||
fi
|
||||
eval "$(cert_convertCRLFtoLF "${config_file}")"
|
||||
|
||||
eval "indexer_node_names=( $(cert_parseYaml "${config_file}" | grep -E "nodes[_]+indexer[_]+[0-9]+=" | cut -d = -f 2 ) )"
|
||||
eval "server_node_names=( $(cert_parseYaml "${config_file}" | grep -E "nodes[_]+server[_]+[0-9]+=" | cut -d = -f 2 ) )"
|
||||
eval "dashboard_node_names=( $(cert_parseYaml "${config_file}" | grep -E "nodes[_]+dashboard[_]+[0-9]+=" | cut -d = -f 2) )"
|
||||
eval "indexer_node_ips=( $(cert_parseYaml "${config_file}" | grep -E "nodes[_]+indexer[_]+[0-9]+[_]+ip=" | cut -d = -f 2) )"
|
||||
eval "server_node_ips=( $(cert_parseYaml "${config_file}" | grep -E "nodes[_]+server[_]+[0-9]+[_]+ip=" | cut -d = -f 2) )"
|
||||
eval "dashboard_node_ips=( $(cert_parseYaml "${config_file}" | grep -E "nodes[_]+dashboard[_]+[0-9]+[_]+ip=" | cut -d = -f 2 ) )"
|
||||
eval "server_node_types=( $(cert_parseYaml "${config_file}" | grep -E "nodes[_]+server[_]+[0-9]+[_]+node_type=" | cut -d = -f 2 ) )"
|
||||
eval "number_server_ips=( $(cert_parseYaml "${config_file}" | grep -o -E 'nodes[_]+server[_]+[0-9]+[_]+ip' | sort -u | wc -l) )"
|
||||
all_ips=("${indexer_node_ips[@]}" "${server_node_ips[@]}" "${dashboard_node_ips[@]}")
|
||||
|
||||
for ip in "${all_ips[@]}"; do
|
||||
isIP=$(echo "${ip}" | grep -P "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$")
|
||||
if [[ -n "${isIP}" ]]; then
|
||||
if ! cert_checkPrivateIp "$ip"; then
|
||||
common_logger -e "The IP ${ip} is public."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
for i in $(seq 1 "${number_server_ips}"); do
|
||||
nodes_server="nodes[_]+server[_]+${i}[_]+ip"
|
||||
eval "server_node_ip_$i=( $( cert_parseYaml "${config_file}" | grep -E "${nodes_server}" | sed '/\./!d' | cut -d = -f 2 | sed -r 's/\s+//g') )"
|
||||
done
|
||||
|
||||
unique_names=($(echo "${indexer_node_names[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' '))
|
||||
if [ "${#unique_names[@]}" -ne "${#indexer_node_names[@]}" ]; then
|
||||
common_logger -e "Duplicated indexer node names."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
unique_ips=($(echo "${indexer_node_ips[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' '))
|
||||
if [ "${#unique_ips[@]}" -ne "${#indexer_node_ips[@]}" ]; then
|
||||
common_logger -e "Duplicated indexer node ips."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
unique_names=($(echo "${server_node_names[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' '))
|
||||
if [ "${#unique_names[@]}" -ne "${#server_node_names[@]}" ]; then
|
||||
common_logger -e "Duplicated Wazuh server node names."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
unique_ips=($(echo "${server_node_ips[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' '))
|
||||
if [ "${#unique_ips[@]}" -ne "${#server_node_ips[@]}" ]; then
|
||||
common_logger -e "Duplicated Wazuh server node ips."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
unique_names=($(echo "${dashboard_node_names[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' '))
|
||||
if [ "${#unique_names[@]}" -ne "${#dashboard_node_names[@]}" ]; then
|
||||
common_logger -e "Duplicated dashboard node names."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
unique_ips=($(echo "${dashboard_node_ips[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' '))
|
||||
if [ "${#unique_ips[@]}" -ne "${#dashboard_node_ips[@]}" ]; then
|
||||
common_logger -e "Duplicated dashboard node ips."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for i in "${server_node_types[@]}"; do
|
||||
if ! echo "$i" | grep -ioq master && ! echo "$i" | grep -ioq worker; then
|
||||
common_logger -e "Incorrect node_type $i must be master or worker"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "${#server_node_names[@]}" -le 1 ]; then
|
||||
if [ "${#server_node_types[@]}" -ne 0 ]; then
|
||||
common_logger -e "The tag node_type can only be used with more than one Wazuh server."
|
||||
exit 1
|
||||
fi
|
||||
elif [ "${#server_node_names[@]}" -gt "${#server_node_types[@]}" ]; then
|
||||
common_logger -e "The tag node_type needs to be specified for all Wazuh server nodes."
|
||||
exit 1
|
||||
elif [ "${#server_node_names[@]}" -lt "${#server_node_types[@]}" ]; then
|
||||
common_logger -e "Found extra node_type tags."
|
||||
exit 1
|
||||
elif [ "$(grep -io master <<< "${server_node_types[*]}" | wc -l)" -ne 1 ]; then
|
||||
common_logger -e "Wazuh cluster needs a single master node."
|
||||
exit 1
|
||||
elif [ "$(grep -io worker <<< "${server_node_types[*]}" | wc -l)" -ne $(( ${#server_node_types[@]} - 1 )) ]; then
|
||||
common_logger -e "Incorrect number of workers."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "${#dashboard_node_names[@]}" -ne "${#dashboard_node_ips[@]}" ]; then
|
||||
common_logger -e "Different number of dashboard node names and IPs."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
else
|
||||
common_logger -e "No configuration file found."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
}
|
||||
function cert_setpermisions() {
|
||||
eval "chmod -R 744 ${cert_tmp_path} ${debug}"
|
||||
}
|
||||
function cert_convertCRLFtoLF() {
|
||||
if [[ ! -d "/tmp/wazuh-install-files" ]]; then
|
||||
eval "mkdir /tmp/wazuh-install-files ${debug}"
|
||||
fi
|
||||
eval "chmod -R 755 /tmp/wazuh-install-files ${debug}"
|
||||
eval "tr -d '\015' < $1 > /tmp/wazuh-install-files/new_config.yml"
|
||||
eval "mv /tmp/wazuh-install-files/new_config.yml $1 ${debug}"
|
||||
}
|
||||
|
||||
# ------------ certMain.sh ------------
|
||||
function getHelp() {
|
||||
|
||||
echo -e ""
|
||||
echo -e "NAME"
|
||||
echo -e " wazuh-cert-tool.sh - Manages the creation of certificates of the Wazuh components."
|
||||
echo -e ""
|
||||
echo -e "SYNOPSIS"
|
||||
echo -e " wazuh-cert-tool.sh [OPTIONS]"
|
||||
echo -e ""
|
||||
echo -e "DESCRIPTION"
|
||||
echo -e " -a, --admin-certificates </path/to/root-ca.pem> </path/to/root-ca.key>"
|
||||
echo -e " Creates the admin certificates, add root-ca.pem and root-ca.key."
|
||||
echo -e ""
|
||||
echo -e " -A, --all </path/to/root-ca.pem> </path/to/root-ca.key>"
|
||||
echo -e " Creates certificates specified in config.yml and admin certificates. Add a root-ca.pem and root-ca.key or leave it empty so a new one will be created."
|
||||
echo -e ""
|
||||
echo -e " -ca, --root-ca-certificates"
|
||||
echo -e " Creates the root-ca certificates."
|
||||
echo -e ""
|
||||
echo -e " -v, --verbose"
|
||||
echo -e " Enables verbose mode."
|
||||
echo -e ""
|
||||
echo -e " -wd, --wazuh-dashboard-certificates </path/to/root-ca.pem> </path/to/root-ca.key>"
|
||||
echo -e " Creates the Wazuh dashboard certificates, add root-ca.pem and root-ca.key."
|
||||
echo -e ""
|
||||
echo -e " -wi, --wazuh-indexer-certificates </path/to/root-ca.pem> </path/to/root-ca.key>"
|
||||
echo -e " Creates the Wazuh indexer certificates, add root-ca.pem and root-ca.key."
|
||||
echo -e ""
|
||||
echo -e " -ws, --wazuh-server-certificates </path/to/root-ca.pem> </path/to/root-ca.key>"
|
||||
echo -e " Creates the Wazuh server certificates, add root-ca.pem and root-ca.key."
|
||||
echo -e ""
|
||||
echo -e " -tmp, --cert_tmp_path </path/to/tmp_dir>"
|
||||
echo -e " Modifies the default tmp directory (/tmp/wazuh-ceritificates) to the specified one."
|
||||
echo -e " Must be used along with one of these options: -a, -A, -ca, -wi, -wd, -ws"
|
||||
echo -e ""
|
||||
|
||||
exit 1
|
||||
|
||||
}
|
||||
function main() {
|
||||
|
||||
umask 177
|
||||
|
||||
cert_checkOpenSSL
|
||||
|
||||
if [ -n "${1}" ]; then
|
||||
while [ -n "${1}" ]
|
||||
do
|
||||
case "${1}" in
|
||||
"-a"|"--admin-certificates")
|
||||
if [[ -z "${2}" || -z "${3}" ]]; then
|
||||
common_logger -e "Error on arguments. Probably missing </path/to/root-ca.pem> </path/to/root-ca.key> after -a|--admin-certificates"
|
||||
getHelp
|
||||
exit 1
|
||||
else
|
||||
cadmin=1
|
||||
rootca="${2}"
|
||||
rootcakey="${3}"
|
||||
shift 3
|
||||
fi
|
||||
;;
|
||||
"-A"|"--all")
|
||||
if [[ -n "${2}" && "${2}" != "-v" && "${2}" != "-tmp" ]]; then
|
||||
# Validate that the user has entered the 2 files
|
||||
if [[ -z ${3} ]]; then
|
||||
if [[ ${2} == *".key" ]]; then
|
||||
common_logger -e "You have not entered a root-ca.pem"
|
||||
exit 1
|
||||
else
|
||||
common_logger -e "You have not entered a root-ca.key"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
all=1
|
||||
rootca="${2}"
|
||||
rootcakey="${3}"
|
||||
shift 3
|
||||
else
|
||||
all=1
|
||||
shift 1
|
||||
fi
|
||||
;;
|
||||
"-ca"|"--root-ca-certificate")
|
||||
ca=1
|
||||
shift 1
|
||||
;;
|
||||
"-h"|"--help")
|
||||
getHelp
|
||||
;;
|
||||
"-v"|"--verbose")
|
||||
debugEnabled=1
|
||||
shift 1
|
||||
;;
|
||||
"-wd"|"--wazuh-dashboard-certificates")
|
||||
if [[ -z "${2}" || -z "${3}" ]]; then
|
||||
common_logger -e "Error on arguments. Probably missing </path/to/root-ca.pem> </path/to/root-ca.key> after -wd|--wazuh-dashboard-certificates"
|
||||
getHelp
|
||||
exit 1
|
||||
else
|
||||
cdashboard=1
|
||||
rootca="${2}"
|
||||
rootcakey="${3}"
|
||||
shift 3
|
||||
fi
|
||||
;;
|
||||
"-wi"|"--wazuh-indexer-certificates")
|
||||
if [[ -z "${2}" || -z "${3}" ]]; then
|
||||
common_logger -e "Error on arguments. Probably missing </path/to/root-ca.pem> </path/to/root-ca.key> after -wi|--wazuh-indexer-certificates"
|
||||
getHelp
|
||||
exit 1
|
||||
else
|
||||
cindexer=1
|
||||
rootca="${2}"
|
||||
rootcakey="${3}"
|
||||
shift 3
|
||||
fi
|
||||
;;
|
||||
"-ws"|"--wazuh-server-certificates")
|
||||
if [[ -z "${2}" || -z "${3}" ]]; then
|
||||
common_logger -e "Error on arguments. Probably missing </path/to/root-ca.pem> </path/to/root-ca.key> after -ws|--wazuh-server-certificates"
|
||||
getHelp
|
||||
exit 1
|
||||
else
|
||||
cserver=1
|
||||
rootca="${2}"
|
||||
rootcakey="${3}"
|
||||
shift 3
|
||||
fi
|
||||
;;
|
||||
"-tmp"|"--cert_tmp_path")
|
||||
if [[ -n "${3}" || ( "${cadmin}" == 1 || "${all}" == 1 || "${ca}" == 1 || "${cdashboard}" == 1 || "${cindexer}" == 1 || "${cserver}" == 1 ) ]]; then
|
||||
if [[ -z "${2}" || ! "${2}" == /* ]]; then
|
||||
common_logger -e "Error on arguments. Probably missing </path/to/tmp_dir> or path does not start with '/'."
|
||||
getHelp
|
||||
exit 1
|
||||
else
|
||||
cert_tmp_path="${2}"
|
||||
shift 2
|
||||
fi
|
||||
else
|
||||
common_logger -e "Error: -tmp must be used along with one of these options: -a, -A, -ca, -wi, -wd, -ws"
|
||||
getHelp
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo "Unknow option: ${1}"
|
||||
getHelp
|
||||
esac
|
||||
done
|
||||
|
||||
common_logger "Verbose logging redirected to ${logfile}"
|
||||
|
||||
if [[ -d "${base_path}"/wazuh-certificates ]]; then
|
||||
if [ -n "$(ls -A "${base_path}"/wazuh-certificates)" ]; then
|
||||
common_logger -e "Directory wazuh-certificates already exists in the same path as the script. Please, remove the certs directory to create new certificates."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ ! -d "${cert_tmp_path}" ]]; then
|
||||
mkdir -p "${cert_tmp_path}"
|
||||
chmod 744 "${cert_tmp_path}"
|
||||
fi
|
||||
|
||||
cert_readConfig
|
||||
|
||||
if [ -n "${debugEnabled}" ]; then
|
||||
debug="2>&1 | tee -a ${logfile}"
|
||||
fi
|
||||
|
||||
if [[ -n "${cadmin}" ]]; then
|
||||
cert_checkRootCA
|
||||
cert_generateAdmincertificate
|
||||
common_logger "Admin certificates created."
|
||||
cert_cleanFiles
|
||||
cert_setpermisions
|
||||
eval "mv ${cert_tmp_path} ${base_path}/wazuh-certificates ${debug}"
|
||||
fi
|
||||
|
||||
if [[ -n "${all}" ]]; then
|
||||
cert_checkRootCA
|
||||
cert_generateAdmincertificate
|
||||
common_logger "Admin certificates created."
|
||||
if cert_generateIndexercertificates; then
|
||||
common_logger "Wazuh indexer certificates created."
|
||||
fi
|
||||
if cert_generateFilebeatcertificates; then
|
||||
common_logger "Wazuh Filebeat certificates created."
|
||||
fi
|
||||
if cert_generateDashboardcertificates; then
|
||||
common_logger "Wazuh dashboard certificates created."
|
||||
fi
|
||||
cert_cleanFiles
|
||||
cert_setpermisions
|
||||
eval "mv ${cert_tmp_path} ${base_path}/wazuh-certificates ${debug}"
|
||||
fi
|
||||
|
||||
if [[ -n "${ca}" ]]; then
|
||||
cert_generateRootCAcertificate
|
||||
common_logger "Authority certificates created."
|
||||
cert_cleanFiles
|
||||
eval "mv ${cert_tmp_path} ${base_path}/wazuh-certificates ${debug}"
|
||||
fi
|
||||
|
||||
if [[ -n "${cindexer}" ]]; then
|
||||
if [ ${#indexer_node_names[@]} -gt 0 ]; then
|
||||
cert_checkRootCA
|
||||
cert_generateIndexercertificates
|
||||
common_logger "Wazuh indexer certificates created."
|
||||
cert_cleanFiles
|
||||
cert_setpermisions
|
||||
eval "mv ${cert_tmp_path} ${base_path}/wazuh-certificates ${debug}"
|
||||
else
|
||||
common_logger -e "Indexer node not present in config.yml."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -n "${cserver}" ]]; then
|
||||
if [ ${#server_node_names[@]} -gt 0 ]; then
|
||||
cert_checkRootCA
|
||||
cert_generateFilebeatcertificates
|
||||
common_logger "Wazuh Filebeat certificates created."
|
||||
cert_cleanFiles
|
||||
cert_setpermisions
|
||||
eval "mv ${cert_tmp_path} ${base_path}/wazuh-certificates ${debug}"
|
||||
else
|
||||
common_logger -e "Server node not present in config.yml."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -n "${cdashboard}" ]]; then
|
||||
if [ ${#dashboard_node_names[@]} -gt 0 ]; then
|
||||
cert_checkRootCA
|
||||
cert_generateDashboardcertificates
|
||||
common_logger "Wazuh dashboard certificates created."
|
||||
cert_cleanFiles
|
||||
cert_setpermisions
|
||||
eval "mv ${cert_tmp_path} ${base_path}/wazuh-certificates ${debug}"
|
||||
else
|
||||
common_logger -e "Dashboard node not present in config.yml."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
else
|
||||
getHelp
|
||||
fi
|
||||
|
||||
}
|
||||
# ------------ certVariables.sh ------------
|
||||
|
||||
function common_checkAptLock() {
|
||||
|
||||
attempt=0
|
||||
seconds=30
|
||||
max_attempts=10
|
||||
|
||||
while fuser "${apt_lockfile}" >/dev/null 2>&1 && [ "${attempt}" -lt "${max_attempts}" ]; do
|
||||
attempt=$((attempt+1))
|
||||
common_logger "Another process is using APT. Waiting for it to release the lock. Next retry in ${seconds} seconds (${attempt}/${max_attempts})"
|
||||
sleep "${seconds}"
|
||||
done
|
||||
|
||||
}
|
||||
function common_logger() {
|
||||
|
||||
now=$(date +'%d/%m/%Y %H:%M:%S')
|
||||
mtype="INFO:"
|
||||
debugLogger=
|
||||
nolog=
|
||||
if [ -n "${1}" ]; then
|
||||
while [ -n "${1}" ]; do
|
||||
case ${1} in
|
||||
"-e")
|
||||
mtype="ERROR:"
|
||||
shift 1
|
||||
;;
|
||||
"-w")
|
||||
mtype="WARNING:"
|
||||
shift 1
|
||||
;;
|
||||
"-d")
|
||||
debugLogger=1
|
||||
mtype="DEBUG:"
|
||||
shift 1
|
||||
;;
|
||||
"-nl")
|
||||
nolog=1
|
||||
shift 1
|
||||
;;
|
||||
*)
|
||||
message="${1}"
|
||||
shift 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
|
||||
if [ -z "${debugLogger}" ] || { [ -n "${debugLogger}" ] && [ -n "${debugEnabled}" ]; }; then
|
||||
if [ -z "${nolog}" ] && { [ "$EUID" -eq 0 ] || [[ "$(basename "$0")" =~ $cert_tool_script_name ]]; }; then
|
||||
printf "%s\n" "${now} ${mtype} ${message}" | tee -a ${logfile}
|
||||
else
|
||||
printf "%b\n" "${now} ${mtype} ${message}"
|
||||
fi
|
||||
fi
|
||||
|
||||
}
|
||||
function common_checkRoot() {
|
||||
|
||||
common_logger -d "Checking root permissions."
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "This script must be run as root."
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
common_logger -d "Checking sudo package."
|
||||
if ! command -v sudo > /dev/null; then
|
||||
common_logger -e "The sudo package is not installed and it is necessary for the installation."
|
||||
exit 1;
|
||||
fi
|
||||
}
|
||||
function common_checkInstalled() {
|
||||
|
||||
common_logger -d "Checking Wazuh installation."
|
||||
wazuh_installed=""
|
||||
indexer_installed=""
|
||||
filebeat_installed=""
|
||||
dashboard_installed=""
|
||||
|
||||
if [ "${sys_type}" == "yum" ]; then
|
||||
eval "rpm -q wazuh-manager --quiet && wazuh_installed=1"
|
||||
elif [ "${sys_type}" == "apt-get" ]; then
|
||||
wazuh_installed=$(apt list --installed 2>/dev/null | grep wazuh-manager)
|
||||
fi
|
||||
|
||||
if [ -d "/var/ossec" ]; then
|
||||
common_logger -d "There are Wazuh remaining files."
|
||||
wazuh_remaining_files=1
|
||||
fi
|
||||
|
||||
if [ "${sys_type}" == "yum" ]; then
|
||||
eval "rpm -q wazuh-indexer --quiet && indexer_installed=1"
|
||||
|
||||
elif [ "${sys_type}" == "apt-get" ]; then
|
||||
indexer_installed=$(apt list --installed 2>/dev/null | grep wazuh-indexer)
|
||||
fi
|
||||
|
||||
if [ -d "/var/lib/wazuh-indexer/" ] || [ -d "/usr/share/wazuh-indexer" ] || [ -d "/etc/wazuh-indexer" ] || [ -f "${base_path}/search-guard-tlstool*" ]; then
|
||||
common_logger -d "There are Wazuh indexer remaining files."
|
||||
indexer_remaining_files=1
|
||||
fi
|
||||
|
||||
if [ "${sys_type}" == "yum" ]; then
|
||||
eval "rpm -q filebeat --quiet && filebeat_installed=1"
|
||||
elif [ "${sys_type}" == "apt-get" ]; then
|
||||
filebeat_installed=$(apt list --installed 2>/dev/null | grep filebeat)
|
||||
fi
|
||||
|
||||
if [ -d "/var/lib/filebeat/" ] || [ -d "/usr/share/filebeat" ] || [ -d "/etc/filebeat" ]; then
|
||||
common_logger -d "There are Filebeat remaining files."
|
||||
filebeat_remaining_files=1
|
||||
fi
|
||||
|
||||
if [ "${sys_type}" == "yum" ]; then
|
||||
eval "rpm -q wazuh-dashboard --quiet && dashboard_installed=1"
|
||||
elif [ "${sys_type}" == "apt-get" ]; then
|
||||
dashboard_installed=$(apt list --installed 2>/dev/null | grep wazuh-dashboard)
|
||||
fi
|
||||
|
||||
if [ -d "/var/lib/wazuh-dashboard/" ] || [ -d "/usr/share/wazuh-dashboard" ] || [ -d "/etc/wazuh-dashboard" ] || [ -d "/run/wazuh-dashboard/" ]; then
|
||||
common_logger -d "There are Wazuh dashboard remaining files."
|
||||
dashboard_remaining_files=1
|
||||
fi
|
||||
|
||||
}
|
||||
function common_checkSystem() {
|
||||
|
||||
if [ -n "$(command -v yum)" ]; then
|
||||
sys_type="yum"
|
||||
sep="-"
|
||||
common_logger -d "YUM package manager will be used."
|
||||
elif [ -n "$(command -v apt-get)" ]; then
|
||||
sys_type="apt-get"
|
||||
sep="="
|
||||
common_logger -d "APT package manager will be used."
|
||||
else
|
||||
common_logger -e "Couldn't find YUM or APT package manager. Try installing the one corresponding to your operating system and then, launch the installation assistant again."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
}
|
||||
function common_checkWazuhConfigYaml() {
|
||||
|
||||
common_logger -d "Checking Wazuh YAML configuration file."
|
||||
filecorrect=$(cert_parseYaml "${config_file}" | grep -Ev '^#|^\s*$' | grep -Pzc "\A(\s*(nodes_indexer__name|nodes_indexer__ip|nodes_server__name|nodes_server__ip|nodes_server__node_type|nodes_dashboard__name|nodes_dashboard__ip)=.*?)+\Z")
|
||||
if [[ "${filecorrect}" -ne 1 ]]; then
|
||||
common_logger -e "The configuration file ${config_file} does not have a correct format."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
}
|
||||
function common_curl() {
|
||||
|
||||
if [ -n "${curl_has_connrefused}" ]; then
|
||||
eval "curl $@ --retry-connrefused"
|
||||
e_code="${PIPESTATUS[0]}"
|
||||
else
|
||||
retries=0
|
||||
eval "curl $@"
|
||||
e_code="${PIPESTATUS[0]}"
|
||||
while [ "${e_code}" -eq 7 ] && [ "${retries}" -ne 12 ]; do
|
||||
retries=$((retries+1))
|
||||
sleep 5
|
||||
eval "curl $@"
|
||||
e_code="${PIPESTATUS[0]}"
|
||||
done
|
||||
fi
|
||||
return "${e_code}"
|
||||
|
||||
}
|
||||
function common_remove_gpg_key() {
|
||||
|
||||
common_logger -d "Removing GPG key from system."
|
||||
if [ "${sys_type}" == "yum" ]; then
|
||||
if { rpm -q gpg-pubkey --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{SUMMARY}\n' | grep "Wazuh"; } >/dev/null ; then
|
||||
key=$(rpm -q gpg-pubkey --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{SUMMARY}\n' | grep "Wazuh Signing Key" | awk '{print $1}' )
|
||||
rpm -e "${key}"
|
||||
else
|
||||
common_logger "Wazuh GPG key not found in the system"
|
||||
return 1
|
||||
fi
|
||||
elif [ "${sys_type}" == "apt-get" ]; then
|
||||
if [ -f "/usr/share/keyrings/wazuh.gpg" ]; then
|
||||
rm -rf "/usr/share/keyrings/wazuh.gpg" "${debug}"
|
||||
else
|
||||
common_logger "Wazuh GPG key not found in the system"
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
|
||||
}
|
||||
function common_checkYumLock() {
|
||||
|
||||
attempt=0
|
||||
seconds=30
|
||||
max_attempts=10
|
||||
|
||||
while [ -f "${yum_lockfile}" ] && [ "${attempt}" -lt "${max_attempts}" ]; do
|
||||
attempt=$((attempt+1))
|
||||
common_logger "Another process is using YUM. Waiting for it to release the lock. Next retry in ${seconds} seconds (${attempt}/${max_attempts})"
|
||||
sleep "${seconds}"
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -0,0 +1,17 @@
|
||||
server.host: 0.0.0.0
|
||||
server.port: 5601
|
||||
opensearch.hosts: ["https://wazuh.indexer:9200"]
|
||||
opensearch.username: "admin"
|
||||
opensearch.password: "SecretPassword123!"
|
||||
opensearch.ssl.verificationMode: none
|
||||
opensearch.requestHeadersAllowlist:
|
||||
- securitytenant
|
||||
- Authorization
|
||||
opensearch_security.multitenancy.enabled: false
|
||||
opensearch_security.readonly_mode.roles:
|
||||
- kibana_read_only
|
||||
server.ssl.enabled: true
|
||||
server.ssl.certificate: /usr/share/wazuh-dashboard/certs/wazuh.dashboard.pem
|
||||
server.ssl.key: /usr/share/wazuh-dashboard/certs/wazuh.dashboard-key.pem
|
||||
opensearch.ssl.certificateAuthorities: [/usr/share/wazuh-dashboard/certs/root-ca.pem]
|
||||
uiSettings.overrides.defaultRoute: /app/wazuh
|
||||
@@ -0,0 +1,13 @@
|
||||
hosts:
|
||||
- default:
|
||||
url: https://wazuh.manager
|
||||
port: 55000
|
||||
username: wazuh-wui
|
||||
password: MyS3cr37P450r.*-
|
||||
run_as: false
|
||||
- 1513629884013:
|
||||
url: https://wazuh.manager
|
||||
port: 55000
|
||||
username: wazuh-wui
|
||||
password: MyS3cr37P450r.*-
|
||||
run_as: false
|
||||
@@ -0,0 +1,52 @@
|
||||
network.host: "0.0.0.0"
|
||||
node.name: "wazuh.indexer"
|
||||
cluster.initial_master_nodes:
|
||||
- "wazuh.indexer"
|
||||
cluster.name: "wazuh-cluster"
|
||||
|
||||
path.data: /var/lib/wazuh-indexer
|
||||
path.logs: /var/log/wazuh-indexer
|
||||
path.repo: /var/lib/wazuh-indexer/snapshots
|
||||
|
||||
plugins.security.ssl.transport.pemcert_filepath: /usr/share/wazuh-indexer/certs/wazuh.indexer.pem
|
||||
plugins.security.ssl.transport.pemkey_filepath: /usr/share/wazuh-indexer/certs/wazuh.indexer.key
|
||||
plugins.security.ssl.transport.pemtrustedcas_filepath: /usr/share/wazuh-indexer/certs/root-ca.pem
|
||||
plugins.security.ssl.transport.enforce_hostname_verification: false
|
||||
plugins.security.ssl.http.enabled: true
|
||||
plugins.security.ssl.http.pemcert_filepath: /usr/share/wazuh-indexer/certs/wazuh.indexer.pem
|
||||
plugins.security.ssl.http.pemkey_filepath: /usr/share/wazuh-indexer/certs/wazuh.indexer.key
|
||||
plugins.security.ssl.http.pemtrustedcas_filepath: /usr/share/wazuh-indexer/certs/root-ca.pem
|
||||
plugins.security.allow_default_init_securityindex: true
|
||||
plugins.security.authcz.admin_dn:
|
||||
- "CN=admin,OU=Wazuh,O=Wazuh,L=California,C=US"
|
||||
plugins.security.check_snapshot_restore_write_privileges: true
|
||||
plugins.security.restapi.roles_enabled:
|
||||
- "all_access"
|
||||
- "security_rest_api_access"
|
||||
plugins.security.system_indices.enabled: true
|
||||
plugins.security.system_indices.indices:
|
||||
- ".opendistro-alerting-config"
|
||||
- ".opendistro-alerting-alert*"
|
||||
- ".opendistro-anomaly-results*"
|
||||
- ".opendistro-anomaly-detector*"
|
||||
- ".opendistro-anomaly-checkpoints"
|
||||
- ".opendistro-anomaly-detection-state"
|
||||
- ".opendistro-reports-*"
|
||||
- ".opendistro-notifications-*"
|
||||
- ".opendistro-notebooks"
|
||||
- ".opendistro-observability"
|
||||
- ".opendistro-asynchronous-search-response*"
|
||||
- ".replication-metadata-store"
|
||||
- ".opensearch-observability"
|
||||
- ".opensearch-notifications-*"
|
||||
- ".opensearch-reports-*"
|
||||
- ".opensearch-anomaly-results*"
|
||||
- ".opensearch-anomaly-detector*"
|
||||
- ".opensearch-anomaly-checkpoints"
|
||||
- ".opensearch-anomaly-detection-state"
|
||||
- ".opensearch-security"
|
||||
- ".wazuh"
|
||||
- ".wazuh-*"
|
||||
- ".plugins-*"
|
||||
|
||||
compatibility.override_main_response_version: true
|
||||
@@ -0,0 +1,28 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC67BSZ85ZK4mP4
|
||||
YxKz7BwFsonyg5nn/JRN9YbQq/bt8eMkWbm4Js2Fpi/oIxC2aEyWNrQOa8D3SJuI
|
||||
5vPUaF/uOa4CtxZt9Ds/3dYftQn9dGplhOp9uoSVIXrU3uuUI5xQuMGORu+8xfa9
|
||||
24WWCsf6fdz7fZJ0dB0zcZpLmLZARk8LqoOn4a8uwaYdtpJ/avCeOZAjkfzgNPzh
|
||||
e9r4L7Lhwd1RdejFssF6DvlfcxBFSmIfuttEbrxDV+LhdRhUTrQnOswSBJBU7otK
|
||||
XXImKV4FZ27h+ATLY3m5c36SdcBWXXfeVpL8HZF7sXfkvUFHqYPu8A2aS5AeVp0e
|
||||
ZCWVylvFAgMBAAECggEAE2a/o1RvgWmgJhQ6c7xfvY5Q19V7BbjnYnQdQHl+PCet
|
||||
g4S19ybn5tBfYUE1JzRfhqk6On5Kssqxgh3eqb8E/gK0ogmDkCQX0O2N9Q/jGpCZ
|
||||
Hoe+QxCMrwyg5YlsevLQnbxKMsyqw4rqAmjPo8mOBNzy2+j7vjnzHKIqTrW/bPTx
|
||||
dsC/u24Rffibj6FP0X9jmkYczMfVBLnnbNSryQ42QvUAzXRUYRbedGkXPQj8DXxR
|
||||
lA71gJB3Jo0k8SovVGbd96/ripUIzgT/I565JlZk3YDf/W5aDwL18K5vHAWQj+/v
|
||||
8kzYlYg4t/L8P8HXjKaOBMYdS0mPoZq0yGVwYarlXQKBgQD5M1mjaq/wEKcK6qgy
|
||||
GzD+svw0YKJdOoVuS6UEMI6HdaHHu5HaALPVkSM9U8GYzwyr+WGOSOAWRjlIrLqC
|
||||
sffUJchXgClJCoHD01WcVksczsAjWYhsrZhHXVs2aWtGkO3BBgdrpFFvJG52pe5y
|
||||
sCgRm7hz8UhqDaOcnfWH1+1sPwKBgQDABbhDhhL2+kws7CVKmJFQrovpIcNJHisK
|
||||
nMKhoCbFfX1jbu89xXaQqV+2C2iqlsfWxualYMtWgTq4umnAum4rUNjJWmZY4Fqy
|
||||
Pb57fN1LML3+tcwbCCp5w+NmtvJK5dh9+IgmD8xM4thq4awlnv2tQqP/HolhVTF2
|
||||
lMvekZhG+wKBgEP2Bh80DFFLKVMn1cD8e2sqwu9B32XPfO4sgQ9YcrZslTdUZx1u
|
||||
DZ1T3Klv+x9CcDFCbKGSLFLGyf6Q5LiZ8n2P5EhAsoGx9NvD+dgODKQJmorJcxQ4
|
||||
b4we4K5BJ7lx8vUuQL3RbUgDRoDjFdl/Qx4yOqacCeSqXZFr3rcyYxSfAoGAc2o8
|
||||
saFBft88r/eUBn0jQqpW/95CQY13c157gagABc4CcqR3+dnZBOQ42fOLipUsMkTE
|
||||
1vwR28G66NNqwuOLWk+yrXu/boYTHXUNK64GWK5IVHMy5cCHvz5lTRSDF0+FS1n5
|
||||
g18VfdUPHVbdIJOqh9w5NBtHmZAaNdsDmphKPccCgYEAsnMoj8gM64JDpti6OwIV
|
||||
TrMTv076CGPGisx5Ooemewvy/g9bPKiQjQdZg5GKQmCq+7OSNUFLZXBwkV6oBJV7
|
||||
StWi3s01um+08ljs5sXhsw4c8e8RCJ8CrkxGqoaKoGEXHXFgS0CLqy430CBza4Ra
|
||||
ounGuRkS5kwqfeXfVC4Rq/U=
|
||||
-----END PRIVATE KEY-----
|
||||
@@ -0,0 +1,20 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDVzCCAj+gAwIBAgIUEO25S+4jYn8uga3bnRiVBbdOp7gwDQYJKoZIhvcNAQEL
|
||||
BQAwNTEOMAwGA1UECwwFV2F6dWgxDjAMBgNVBAoMBVdhenVoMRMwEQYDVQQHDApD
|
||||
YWxpZm9ybmlhMB4XDTI2MDgwNDA5MTQzMloXDTM2MDgwMTA5MTQzMlowUjELMAkG
|
||||
A1UEBhMCVVMxEzARBgNVBAcMCkNhbGlmb3JuaWExDjAMBgNVBAoMBVdhenVoMQ4w
|
||||
DAYDVQQLDAVXYXp1aDEOMAwGA1UEAwwFYWRtaW4wggEiMA0GCSqGSIb3DQEBAQUA
|
||||
A4IBDwAwggEKAoIBAQC67BSZ85ZK4mP4YxKz7BwFsonyg5nn/JRN9YbQq/bt8eMk
|
||||
Wbm4Js2Fpi/oIxC2aEyWNrQOa8D3SJuI5vPUaF/uOa4CtxZt9Ds/3dYftQn9dGpl
|
||||
hOp9uoSVIXrU3uuUI5xQuMGORu+8xfa924WWCsf6fdz7fZJ0dB0zcZpLmLZARk8L
|
||||
qoOn4a8uwaYdtpJ/avCeOZAjkfzgNPzhe9r4L7Lhwd1RdejFssF6DvlfcxBFSmIf
|
||||
uttEbrxDV+LhdRhUTrQnOswSBJBU7otKXXImKV4FZ27h+ATLY3m5c36SdcBWXXfe
|
||||
VpL8HZF7sXfkvUFHqYPu8A2aS5AeVp0eZCWVylvFAgMBAAGjQjBAMB0GA1UdDgQW
|
||||
BBTcbvDe4y2Kjkid0TCkFISXIZT4lDAfBgNVHSMEGDAWgBQe9+49H4XrSFxTrm+1
|
||||
QJmwqBxBTzANBgkqhkiG9w0BAQsFAAOCAQEAovG1Sk+lSe8X9ZF7irPzpIFeFqOB
|
||||
C/kS/+v0t+AGnGey7gNUbkFtvRed6XLtCbDaxUxHviuIcgWuIBnKEoioAuaNWIde
|
||||
yGjj+BFQQlaaKQkP1U57j5EDj8+31pucCgogiXU773azVcSx+pJcgW6FWEfC4T33
|
||||
tl/cK8tSQUEOJf5XttLkCxCOUxlySwcd4p4YaHViOQWoyvMV2HU36GX/c5c4XDZC
|
||||
Cqhb44UqAQ5KoKxZCNtePCHpC1xw/XyLbTbEV+Vfqkm6hXznohU9wBLGC6Q7hij0
|
||||
i/BIjYDELtcCl4x67rROhYWq9XA2eqe2EelC7CtS3bsWNt9w5PR4QYlIwA==
|
||||
-----END CERTIFICATE-----
|
||||
@@ -0,0 +1,20 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDSzCCAjOgAwIBAgIUCDO5y/zFBSClCe04yo1K1flC6u4wDQYJKoZIhvcNAQEL
|
||||
BQAwNTEOMAwGA1UECwwFV2F6dWgxDjAMBgNVBAoMBVdhenVoMRMwEQYDVQQHDApD
|
||||
YWxpZm9ybmlhMB4XDTI2MDgwNDA5MTQzMloXDTM2MDgwMTA5MTQzMlowNTEOMAwG
|
||||
A1UECwwFV2F6dWgxDjAMBgNVBAoMBVdhenVoMRMwEQYDVQQHDApDYWxpZm9ybmlh
|
||||
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzh/t2fj3XR6PVptMw54F
|
||||
8evxZGnOW+oG+/CQwF5UCKggF/7geBUA4uDNCrRBVn4DFX+GLz1n858NyDIZTfRI
|
||||
80UaxAHtQ7vDuONeog6K6e4ia/MtqWIf6pKam1gT5amKwuUZ/Nq0L4xgUHVhb8ax
|
||||
BhMbNox1OeYsdXfjVXCIhwSwsu7YAE6i+jmTB/9KklDf57lPzFuU9ivdJ6feJJ7i
|
||||
v1bGzbaMqnOqU9qWdEk3v7KPV/o8s/+3BwcHTGHYc8Uxrxbb2GIokj0587DoUo2o
|
||||
5WCtxx8eSu+fMdPu2r6UCy7eT3u8z9fFrnntrWJr9rzVaOnmCmccbqoP05VK25v6
|
||||
OwIDAQABo1MwUTAdBgNVHQ4EFgQUHvfuPR+F60hcU65vtUCZsKgcQU8wHwYDVR0j
|
||||
BBgwFoAUHvfuPR+F60hcU65vtUCZsKgcQU8wDwYDVR0TAQH/BAUwAwEB/zANBgkq
|
||||
hkiG9w0BAQsFAAOCAQEAfVTbHPiMuwRdz/9OLvHI9OMWD2pNDsxR1o53n1HS6VeS
|
||||
R07LxLhUYhe5N9ruqQ11tdbVAHvxmKwuA8Rw432/e8vH/655Gieljq3QnxbekXGZ
|
||||
Zn5yC646aAMKL7jPhz+ZkTw3KDMeHsTGAHJ84hg8g9Tm3kt3MS0ILOv7xseEyklW
|
||||
0hyiN7TIqFHOPqSxQWx8sJRABergDFmTig1QxJLpl4rph5izcSg+qc9YivuwuPb3
|
||||
DX1Y2Z2AsodaWSW02FwczVtwrxJA8wZSMp3bd6SR3ddgDy7j8fJgFJGjsitH1rMJ
|
||||
2lznWBTlNYjnsztmluESROZmdeILj0MpZL/BhuQkcQ==
|
||||
-----END CERTIFICATE-----
|
||||
@@ -0,0 +1,28 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDOH+3Z+PddHo9W
|
||||
m0zDngXx6/Fkac5b6gb78JDAXlQIqCAX/uB4FQDi4M0KtEFWfgMVf4YvPWfznw3I
|
||||
MhlN9EjzRRrEAe1Du8O4416iDorp7iJr8y2pYh/qkpqbWBPlqYrC5Rn82rQvjGBQ
|
||||
dWFvxrEGExs2jHU55ix1d+NVcIiHBLCy7tgATqL6OZMH/0qSUN/nuU/MW5T2K90n
|
||||
p94knuK/VsbNtoyqc6pT2pZ0STe/so9X+jyz/7cHBwdMYdhzxTGvFtvYYiiSPTnz
|
||||
sOhSjajlYK3HHx5K758x0+7avpQLLt5Pe7zP18Wuee2tYmv2vNVo6eYKZxxuqg/T
|
||||
lUrbm/o7AgMBAAECggEAYpUCvO1F4VNsWo+L90LstPeTS+MOvwb+sCAuGtMCfeFq
|
||||
+A7+bHAfLGM3rZboaOV7tBx5oL5NqUa44LaVQ6NCAJdcZcJGJ871nMehywAJkDhE
|
||||
Xjy/6fL0MMxNBV7qpTyhEPVhqH0xEEyjA9gf8cWlhLI+oagrqLVdLhFYuNRJd8j6
|
||||
LAwq9E1hRf+J61DtQMU1hqiRaUq7/IBpPK7xyb/WwP5n0VSkpYJBLukv5OrfynO2
|
||||
64IrtE6NpHm9PRMRyS4UAvF4yVl6XqHpxFxBoYGvcO3EO+tF75dXtroSEVt1nxcd
|
||||
6D8jzjQX8PYFOKy1fjboj/m1oIGP0LFsH5m0+E4TgQKBgQD26PLx2SFFEzAaDGYc
|
||||
Wm51RMdcP+21Tb9sgHJe5tH7G0EwwR0Dg34g7HaMuZaBm9f2hVmt+mOlbT1QDumu
|
||||
B8FAat6zQ4lz80GJkvgiRmLBO6TTFxyuWkkpEEGNZx8hU+Q9LuP+6MDn7iaEGxKY
|
||||
iGygu2dsv40+i1+8AjwYwXD2hwKBgQDVtpd6/hNyZDiEhkpxHK7grF6cPWZhwUgx
|
||||
83VpWNZwt2H2GbJQ4Jj2HoSWOX/WxCsVfy4GHNeDAVslvSPjGhSxObhjsMsVpjNr
|
||||
lueB+2niah2wyoqW7J8VcctI694d8ytKfg1ilG+MCSFxStCPQgrj/h64U62x1KTp
|
||||
9aEpl3bXrQKBgCO2R8VROW2rO87YskAxmD5f51HhcTlC+IfyABjX29Es/P3XQKIM
|
||||
d8a9TNxHz4wJhXADk5gFWjpIFZEpxwTD3GC71GArSYs6yOTkG/2hHpGCVfGuKxjQ
|
||||
uDo3PrP8EVWZs65hxNpOwfAJ0wpSfBsRyFxrHqdtATnloMAptpWCDRurAoGBAMhD
|
||||
2314u/Z07fVZ9kY6r7GANQRKETfHrISKdNrsUb68ScMZX1ykqxHvlSVE6oPxvcHe
|
||||
NN2rh1SPH7+klw2Ich2FTkG0+QnnfcXzWiwW0alG8V2q3uYBBC5PPUSvKqx8I3Qh
|
||||
3R8ko8bhA4Krrfag153Akz79wwWik4teDtDvy4DdAoGAAY+QYfOohgU9rrTtKEWp
|
||||
AHpAYqPHwhAAT0MZ12NJE4H9evEqjMCtkxndTFk00c01rFeNGrMKOVexp8D4FX6d
|
||||
MiHHLeW3YrF9JatKbR0A2ZykS3dKWMNt2JO+H9OH4YS6pPh7HKGuWPCdGRYyqy4k
|
||||
8PYyytiTLfzJhOUVwiVg2L0=
|
||||
-----END PRIVATE KEY-----
|
||||
@@ -0,0 +1,20 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDSzCCAjOgAwIBAgIUCDO5y/zFBSClCe04yo1K1flC6u4wDQYJKoZIhvcNAQEL
|
||||
BQAwNTEOMAwGA1UECwwFV2F6dWgxDjAMBgNVBAoMBVdhenVoMRMwEQYDVQQHDApD
|
||||
YWxpZm9ybmlhMB4XDTI2MDgwNDA5MTQzMloXDTM2MDgwMTA5MTQzMlowNTEOMAwG
|
||||
A1UECwwFV2F6dWgxDjAMBgNVBAoMBVdhenVoMRMwEQYDVQQHDApDYWxpZm9ybmlh
|
||||
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzh/t2fj3XR6PVptMw54F
|
||||
8evxZGnOW+oG+/CQwF5UCKggF/7geBUA4uDNCrRBVn4DFX+GLz1n858NyDIZTfRI
|
||||
80UaxAHtQ7vDuONeog6K6e4ia/MtqWIf6pKam1gT5amKwuUZ/Nq0L4xgUHVhb8ax
|
||||
BhMbNox1OeYsdXfjVXCIhwSwsu7YAE6i+jmTB/9KklDf57lPzFuU9ivdJ6feJJ7i
|
||||
v1bGzbaMqnOqU9qWdEk3v7KPV/o8s/+3BwcHTGHYc8Uxrxbb2GIokj0587DoUo2o
|
||||
5WCtxx8eSu+fMdPu2r6UCy7eT3u8z9fFrnntrWJr9rzVaOnmCmccbqoP05VK25v6
|
||||
OwIDAQABo1MwUTAdBgNVHQ4EFgQUHvfuPR+F60hcU65vtUCZsKgcQU8wHwYDVR0j
|
||||
BBgwFoAUHvfuPR+F60hcU65vtUCZsKgcQU8wDwYDVR0TAQH/BAUwAwEB/zANBgkq
|
||||
hkiG9w0BAQsFAAOCAQEAfVTbHPiMuwRdz/9OLvHI9OMWD2pNDsxR1o53n1HS6VeS
|
||||
R07LxLhUYhe5N9ruqQ11tdbVAHvxmKwuA8Rw432/e8vH/655Gieljq3QnxbekXGZ
|
||||
Zn5yC646aAMKL7jPhz+ZkTw3KDMeHsTGAHJ84hg8g9Tm3kt3MS0ILOv7xseEyklW
|
||||
0hyiN7TIqFHOPqSxQWx8sJRABergDFmTig1QxJLpl4rph5izcSg+qc9YivuwuPb3
|
||||
DX1Y2Z2AsodaWSW02FwczVtwrxJA8wZSMp3bd6SR3ddgDy7j8fJgFJGjsitH1rMJ
|
||||
2lznWBTlNYjnsztmluESROZmdeILj0MpZL/BhuQkcQ==
|
||||
-----END CERTIFICATE-----
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDCP/mmbQguMNNG
|
||||
xui0v15irdTfz82U0d5t4R6plsmMd2o2l/q2QQBvddDnIODQdOIXl7ZklHkZ3bvG
|
||||
zF3SNsOSa/31dxkpfQTOqHbQ/QxyR+8T9z9WHIH7I0YXjQWZe7WpJdAbIm7Ne3KY
|
||||
lRKCZ2+B+Hy4PsA8q6LBLkVtfhrQ2g0MHb2EN9xa+SaKHO3kXF4EvPTHWefBdyOW
|
||||
FIhvZK8jgjJyo18qHLec0MZ6dAizVipqUNR2UMPQRBPQU7E9a47dhdCPq3rnmeAv
|
||||
WoVr9W4qsZLAcQIzOBaIfGINEltBShlo7LipKc2NI0raOmb/iVwnhivfLHez+6eQ
|
||||
zL9bUgdvAgMBAAECggEABs0DmhKOK0PVWdCD/DQJA25vmghl+7RfU7yCfNCFLPBP
|
||||
XSr0AaaD8+MNldH+XP4Cnm3W2m2iUcgEF4E3NbFqJnm2cf4h+ORiIzQduNJrOaMQ
|
||||
GURaSNMFr/u7q/5peEavBQWIZDLP60zLpdDuTXd+nW/MOg0kYNtnftj2YE9+c9pm
|
||||
32GgCn7OfL5DB9BCraWkHxd9l+PhN1DTuwDTvZ97tJT9tbSTdS+mZ8VL1KtorDbn
|
||||
E+nn/pNO7jkEMPQqggh6iPiAD8H8CO5HF/VzApSbnZsHyiSlKYpbjmnm+D1+wI5j
|
||||
+rZtDR2vGjPvnRady/oZzTeoSYP+HQ7byFdSynHBfQKBgQDsVuiVxnrKxwqFQhtv
|
||||
5BxeuUVu03IMPstVKi9l38EW+t7/ujisWTCE1+Dmh5k/lI4AtF170+IU6Eiqg9oL
|
||||
NwnfBcjAKpp9cIcCJO7kcHlXq1WTV+HWoEz4dB8AIBDwNL3gMv9/XZ+xKfd2Cijm
|
||||
EXYo12ZJLhYeWRxqgnh6sFL6uwKBgQDSaLnSbnv4BcNBCvGmZmncvM+IQNZF7XCc
|
||||
2NZ98YSKe+dHnjiySOfH8uG/7noD54u27K2Rl/d4Anxz9QTzCubW5fW9FAE51aay
|
||||
R0cXvxyPo9OrYEEl3PGT7JgjQ0EDunijhsVAfJrEM/jrZzi71EH5NGdYqLAw9ec7
|
||||
znFfo2d83QKBgAWwygThNI+xXzV6NALrsSsuttdGTBazZF32mBGR46pT/A6YQ0kT
|
||||
FLH+KLIkTbJUN18Y+K9EmMr8FNPWPOfMOXafQwgtfm7KyNVqYj4p3yIXRAY6NXvf
|
||||
fDr3QM/V9dJy0qeVUsWUUYYIhqbW88kmXnv5Q8M7UtkEOETwQ0pg+H6FAoGAOaob
|
||||
6zD+Zq3loijGq2z77FQOqG/kiYuWRlYjCqcrROzKKNWTAkF6zFCjT/+ijvlhUAOz
|
||||
WeiFGO3Nf9YRwi4lr5WccHJQF7KXGdrw//APespSU3BwyliwGHNKCrf+1G/Bakeg
|
||||
PZkorUb1HEbQxKFaZ1rWS/UHPJPYCIr+hVB6Jz0CgYEAm5pTdO4jse4v9vYgBV2J
|
||||
ZJL9iRHryq04O12XkEvU0RU2ijL4+IJFIllDjFOQL67Aongn4/fVR9xje/ojUfoQ
|
||||
sprPjCIBxK9z/9BA2NDxg+lJ3i3y/wXtglMCwTzowNVN6QCYGU/BOATEBjVfkNd3
|
||||
jeshWSUXZHXVDgDn9OV/p8k=
|
||||
-----END PRIVATE KEY-----
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDVzCCAj+gAwIBAgIUaUXeUZypaWNhAf4NeHIx+WU3/h0wDQYJKoZIhvcNAQEL
|
||||
BQAwNTEOMAwGA1UECwwFV2F6dWgxDjAMBgNVBAoMBVdhenVoMRMwEQYDVQQHDApD
|
||||
YWxpZm9ybmlhMB4XDTI2MDgwNDA5MTg1N1oXDTM2MDgwMTA5MTg1N1owUjELMAkG
|
||||
A1UEBhMCVVMxEzARBgNVBAcMCkNhbGlmb3JuaWExDjAMBgNVBAoMBVdhenVoMQ4w
|
||||
DAYDVQQLDAVXYXp1aDEOMAwGA1UEAwwFYWRtaW4wggEiMA0GCSqGSIb3DQEBAQUA
|
||||
A4IBDwAwggEKAoIBAQDCP/mmbQguMNNGxui0v15irdTfz82U0d5t4R6plsmMd2o2
|
||||
l/q2QQBvddDnIODQdOIXl7ZklHkZ3bvGzF3SNsOSa/31dxkpfQTOqHbQ/QxyR+8T
|
||||
9z9WHIH7I0YXjQWZe7WpJdAbIm7Ne3KYlRKCZ2+B+Hy4PsA8q6LBLkVtfhrQ2g0M
|
||||
Hb2EN9xa+SaKHO3kXF4EvPTHWefBdyOWFIhvZK8jgjJyo18qHLec0MZ6dAizVipq
|
||||
UNR2UMPQRBPQU7E9a47dhdCPq3rnmeAvWoVr9W4qsZLAcQIzOBaIfGINEltBShlo
|
||||
7LipKc2NI0raOmb/iVwnhivfLHez+6eQzL9bUgdvAgMBAAGjQjBAMB0GA1UdDgQW
|
||||
BBSU6Apj61sQcH6066OzaXPGn8VUlzAfBgNVHSMEGDAWgBT88rlO1zQfeuFsLYIz
|
||||
XLPaTQBaQjANBgkqhkiG9w0BAQsFAAOCAQEADTPpf6GUrUxXe99x/yp1nCwR6d9h
|
||||
lsoDN9bmppgL+UHqVQaPS91sxJC3/6e4KyhGjMkessCOaVvmJUxj71wiGtgHqbNE
|
||||
TJSv/ejCCmhsZTIvonzgpTzXK8BCkBagrtdFdt62wNqrBEqeYU32Vhpub1WTjwbA
|
||||
SCmyVKBHwDonkN/9fkhqhX3190hx9FEWU4cltNpGRCyHuTEagb/NmPt77War9USk
|
||||
P5YZFYXauKtdDSh7H5bPM9DpKVeJVcvP0yesiolw6QVq7qGwT9j+L6XAFbtRvErw
|
||||
ZE0g/5MMvSIdhuMAGruzzCUgf8Tq4zGBtiepxpPTPiTE6o8LhHh9j1HwcQ==
|
||||
-----END CERTIFICATE-----
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDVP/W7/eUcOw4z
|
||||
V4phy+K43Ic2hZxmPOhK7EpOzHlMJz5/8PpSSPCMzZ7VsVW/4puuRElaZ99PrJNa
|
||||
0jkpv8MqIaJayIj8B9KA7H3V3TSI/hQeWgf4GP3akFOJfJL8kzaYpcy48ynVIbXV
|
||||
YWKuG8++G/wC1Dh15KTHZC7ah8xFaRZz96n333PW0j7Pe8kdxryzpXuTKQ5QMHiR
|
||||
U0bcB/zs3d0E4sx1RfJlHHBpqdfx1HtLXMPQACFdL3f11kBypRmQeZPcF00z6Ngx
|
||||
NB3iF6xsK4oDtXVt4SGscfgxKIaxzvuHpJG851h/rw6WdVL/rRRIf8ecbUrEOtmP
|
||||
Yu8vd7a3AgMBAAECggEAYaEqq6qNneMbmT3WyPdDEUdFUBzTgasY3lRXoMPUNJ0y
|
||||
6/gzYkCqgIwSz9qkW3kvtRTmUFGF10A3JjlgmlCE1WEYp19v95LNOOEMq0DesGlC
|
||||
ZLLrOxaWAd5ZoHQ8Bw6OzEv78iDBYiZQzSQMvZFWBr9hHRpzzuWi2vZuzPWm+49O
|
||||
odlmsKbdAtHsgWpOrVGswkZuzWMUw7K0f9wicZsRjwBPnqifo4hVwpOHcGJ9O+DF
|
||||
vpef9kSUAj3hpYmRreEEGZ/Jl/58klfcdIQLIuQSx+UgNBL5S/oyKEo+DuWgBuyW
|
||||
NdhUsv/atj7EuU1eWnc1XdCysnyjUpH/SrGMD+GuwQKBgQD5vneVck2BjOxTCoZv
|
||||
g9+9FVsoZws6t3r0olL+IhymnRy2oovuBxfJLfpkDo3GKCevkbY9Aoeulozk4yU5
|
||||
GwdPzkbUnTKHGXnLkzGrkRojX+IB2jDlY55jlTuCsfJMZ3yvGvhXf13XIQl1SE9I
|
||||
JGmi0DGi8fDPH0etBkbB0AgnfwKBgQDal3d5oLkuK5nRzZGotwLdLsxqJH1eaKBJ
|
||||
G5od8rJZZkwzzjfk+1ZRzcQ2ByLqYgr6Nsn/q62reVE2YlrTeKFJV/TPWzhIOq6K
|
||||
AM7hhFxmKyyxNXhMeVqux575s70dI8Au/BgnttN7YRdtWMdn/s/z73/dT0QEvxTP
|
||||
HoTK5ilMyQKBgQCU2d4Cd9cUMP8l228XBh2TYCgt44TA4Vzqc9lNWN2EvL3BaQ5H
|
||||
t3iI0tubSUVc5tAIh6t7n4dpGpgtT+j+qUppWYPD81GLTjbWjAudu2U90kctXXOp
|
||||
NP/RUL/gfNjyive4kjWUSPiQYUN24LtIP1Oq07XR7aved0FMMiJ4H9rMVwKBgQCc
|
||||
YGdUV6qiYQa1lL5zWBlwah5KgLg/ZdHk+x4R9qGoWwqAtTI/WZ6y/uUzUX+k9Wat
|
||||
Aa0YfpTLawqyQUKArneTpJy6CqQE6BYdG97kbnA7lv9t9raM3vQEvUH5mJ/dzMmb
|
||||
0zTklGJOjXLZAv4EY8IY3Gk4xY//ZUNZuJd/H5DEIQKBgQCryQrh/KBWSylx+LKX
|
||||
OdLDz/JRSOPuBt+X8IlOGL01cVnh2ZdNZ4vWX8+vFdgeoRmYUtyeHf7+jWddkT9R
|
||||
jCAl8qh3CHiJ2tXezvdzQMjxGvDsC+ntRirOLyXLvHwvnpU1gBUNrnWzMbNrInw1
|
||||
GGTIzCnewsYdGchVXS97ERxp0g==
|
||||
-----END PRIVATE KEY-----
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDSzCCAjOgAwIBAgIUXRaBjAmvzh9Z4NPrGcV/YwGPjgEwDQYJKoZIhvcNAQEL
|
||||
BQAwNTEOMAwGA1UECwwFV2F6dWgxDjAMBgNVBAoMBVdhenVoMRMwEQYDVQQHDApD
|
||||
YWxpZm9ybmlhMB4XDTI2MDgwNDA5MTg1N1oXDTM2MDgwMTA5MTg1N1owNTEOMAwG
|
||||
A1UECwwFV2F6dWgxDjAMBgNVBAoMBVdhenVoMRMwEQYDVQQHDApDYWxpZm9ybmlh
|
||||
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1T/1u/3lHDsOM1eKYcvi
|
||||
uNyHNoWcZjzoSuxKTsx5TCc+f/D6UkjwjM2e1bFVv+KbrkRJWmffT6yTWtI5Kb/D
|
||||
KiGiWsiI/AfSgOx91d00iP4UHloH+Bj92pBTiXyS/JM2mKXMuPMp1SG11WFirhvP
|
||||
vhv8AtQ4deSkx2Qu2ofMRWkWc/ep999z1tI+z3vJHca8s6V7kykOUDB4kVNG3Af8
|
||||
7N3dBOLMdUXyZRxwaanX8dR7S1zD0AAhXS939dZAcqUZkHmT3BdNM+jYMTQd4hes
|
||||
bCuKA7V1beEhrHH4MSiGsc77h6SRvOdYf68OlnVS/60USH/HnG1KxDrZj2LvL3e2
|
||||
twIDAQABo1MwUTAdBgNVHQ4EFgQU/PK5Ttc0H3rhbC2CM1yz2k0AWkIwHwYDVR0j
|
||||
BBgwFoAU/PK5Ttc0H3rhbC2CM1yz2k0AWkIwDwYDVR0TAQH/BAUwAwEB/zANBgkq
|
||||
hkiG9w0BAQsFAAOCAQEABqYTJq5koRr//p3FkVKvB+zG+DBpklr5PH4T3LLT5kS3
|
||||
dBOP3bzMBc688io7sJGMF4+pCCklJDdIjJniz3GWhYgl5fddR5NQhr3w9OwXpYul
|
||||
+zl4BBzIlGLzEnQaDjq/LqA4hpPC0zw4EeHPpMdrKrVlb0ytwgxYis+/ih5zZ5U2
|
||||
qsStB9VOXOJLJuxB+1F0tESnSbC2m5DoyQ1H1Xvf5FuMVRqJE5B+AFjn7FBchI5C
|
||||
sa3YV/VAsq/be0H6nR81SjSEXKBcpx/4SiEzaII5qZWzSptTHIWonI4D+YSC2U5e
|
||||
Fcn+swamrdfbR/b4y+PePivO3FUfbFPh7NWNWWWuQA==
|
||||
-----END CERTIFICATE-----
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCZcezA682KN3ll
|
||||
Mo0uV7Nyy2xpDKsf7HQfYvZgGcaFMCtpCfF15qsIj/MQwST14s3tyW2KpR2dyXtN
|
||||
/akihNS39g0OFx4R9eeSDQUWFkb9DBAXxewWBW/9shxCpCieQ3kv/eH35Uh4NXcr
|
||||
mpdd4hiF1SZrMqhTMoREquIKrUVG1XG9CHjArGuH0gpEI86RzNGoeLqvzbBKjWR8
|
||||
OjgKSEHnsrrU8bK7+b1NrjyGriBH2nhLhaepH6q27IDny7WsLHrmFFE7Ah+03taQ
|
||||
uzDGEM4ZpWL2s7mFlyWgPrFdOWY8hJmke8kliZqoZq3RUgPnQ1aLs1DZWOtAF2eD
|
||||
7eIV5AprAgMBAAECggEAOz1Z53NB45IeKl0VV2Zhb7isbnQHHuiFPlbRAnIBDAt4
|
||||
PvGpSFjZABG/B+FhWRKKaTqCMWwknnWaRpZfNWXtz+XMzXtMTyfOErs3EvtfxbLi
|
||||
BaOSTUAlJ98a/PluewdWopoUIsXgsBQIIYvp00OGLykGz4z7oj8XBIGqie+yFrGY
|
||||
wNmbkj11Fr82Lxk5ECebUt9VS+RTeSQri2Q3S6nJ//xsyVz419MeoQosjvk8bGy4
|
||||
ZF5BP42sH5/Xr55SZvGSlMpR3Ai/ZWJJ/ziQ13ynVnx+/1ursIlOlXnaf1K0ZarP
|
||||
HpzMED/iMm9KHVbGsuAxckYUWS6QdwVpEyAYMrKjXQKBgQDMJXujbpQgX/GZBays
|
||||
IeXDFVkpWDKKq1eyLjrFemRvugJsgq0w78powlh/esl0ywJT1zWXwIIrobNV+eUV
|
||||
dP98mbMv2OfMb8+6gJw+vz7x/4bK6TbtwHQNqkPAJ27VWMJIC2OSEKSJkCVp9pkI
|
||||
SNcFxNzpRkQEYBNAT5boWnuwHQKBgQDAa5vx/dO4gPUZUhmpuxuW9c6yts4KsC0Y
|
||||
JtA3A5FiFWvmjbP60NMI1weNATshCBoEcK8YFLM2flgpNaroygISmK4Z9UXVUeG2
|
||||
ImX7rHDkDvNw4eXE/nXkkZxMhzQat9Mged3Fnj8ywQh2VOiMD8FzMsp/4qkRakzE
|
||||
1k0ywlMuJwKBgQC3vXzciihUQ0aGPe8+Nnw/67UGW1WSLcmOm8FWAGTpknegBrWu
|
||||
+AQr6dARXQh5UEbWAzs/TItcjfuFhJfFijpxgT0f8ZAgFvrWl+8JIsSatyww8Vr4
|
||||
/mD186trBZLh/zNN+MIzszsEfXLPPp5aMIUnshpK821AquBo37mpg9cTmQKBgHMF
|
||||
IB/EMbXdaCVtnSeHUBOp9ZeAjKN48ku4j8gC2vm9glU7qTUpdKyZFMtly/mPxTWY
|
||||
QiHr5cCSP5LKoNIsRpblK1Ua91ZvbrOX1kxdpNG+WijE77sUvFYX8E0SmMPL1Gla
|
||||
T4XcdTyahLtvP97RYDrDRqaxT4y4dRFIZLcNz/kLAoGBAMZOVp1eOppL/btFwFUz
|
||||
85PqkrfCshaqGR+DarQaXY9q0pijX57MD3kG4d61Fe/ZDglvtuMPOfa/6UVqQ0xg
|
||||
Zo+4VeqV7MuESERXoQJXY/EuJU2SQoroRuf/9WvuP6fTRZBiOcKHGQ24Xnhq00bZ
|
||||
jfiJvUDtVX2P2Zq+b9MjUda7
|
||||
-----END PRIVATE KEY-----
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDlTCCAn2gAwIBAgIUaUXeUZypaWNhAf4NeHIx+WU3/iAwDQYJKoZIhvcNAQEL
|
||||
BQAwNTEOMAwGA1UECwwFV2F6dWgxDjAMBgNVBAoMBVdhenVoMRMwEQYDVQQHDApD
|
||||
YWxpZm9ybmlhMB4XDTI2MDgwNDA5MTg1N1oXDTM2MDgwMTA5MTg1N1owXDELMAkG
|
||||
A1UEBhMCVVMxEzARBgNVBAcMCkNhbGlmb3JuaWExDjAMBgNVBAoMBVdhenVoMQ4w
|
||||
DAYDVQQLDAVXYXp1aDEYMBYGA1UEAwwPd2F6dWguZGFzaGJvYXJkMIIBIjANBgkq
|
||||
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmXHswOvNijd5ZTKNLlezcstsaQyrH+x0
|
||||
H2L2YBnGhTAraQnxdearCI/zEMEk9eLN7cltiqUdncl7Tf2pIoTUt/YNDhceEfXn
|
||||
kg0FFhZG/QwQF8XsFgVv/bIcQqQonkN5L/3h9+VIeDV3K5qXXeIYhdUmazKoUzKE
|
||||
RKriCq1FRtVxvQh4wKxrh9IKRCPOkczRqHi6r82wSo1kfDo4CkhB57K61PGyu/m9
|
||||
Ta48hq4gR9p4S4WnqR+qtuyA58u1rCx65hRROwIftN7WkLswxhDOGaVi9rO5hZcl
|
||||
oD6xXTlmPISZpHvJJYmaqGat0VID50NWi7NQ2VjrQBdng+3iFeQKawIDAQABo3Yw
|
||||
dDAfBgNVHSMEGDAWgBT88rlO1zQfeuFsLYIzXLPaTQBaQjAJBgNVHRMEAjAAMAsG
|
||||
A1UdDwQEAwIE8DAaBgNVHREEEzARgg93YXp1aC5kYXNoYm9hcmQwHQYDVR0OBBYE
|
||||
FAMTHGTK6fnv6diwU536UPAmECzwMA0GCSqGSIb3DQEBCwUAA4IBAQBG4V1+29CI
|
||||
Ir28WZuoMCzW3+HVViKC1ZVLyNFzfF/6k+64Oax9VDE9bn+cvuECfcud5KoZiGsB
|
||||
vDBHaYC88D90sdMbfdP1XAB2+ZXNiZGja/zqb+13N//pUWkNRbVqnvWoVaRuPD55
|
||||
XQXDwxzztRPv1noy1jPou8hyybAC74IKYbjO5OyYgOhj0sWf94rf74JnMoJJfflp
|
||||
jKF79J3xBdJIptMh5gckijaHO36Wa9cmWoWBGb4/lEqq+TGA6y3ynd/DT2iypHgf
|
||||
9jZFc9fNP1abwVbFQnDYY3gODjTGN22AT1TUoCZ0t3RMVsNyfwpoXIwuVGZBmlWq
|
||||
UPMN48jNLSFl
|
||||
-----END CERTIFICATE-----
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCa+qmbhEI/pAOe
|
||||
tMGjhjIdiCeKGWTfDbBL4bef9RP+5PIEXS7msYnvjiwu7ayOR8EoZ4UXBdxOUdq3
|
||||
Xlp2QXKqgHHs9T8KaJNny0PILMkliqTvDbccgB5DSTGcbK7iI8tI5CtdNoBMSTlK
|
||||
PaZkgcHfSYQ2u+dBrIdW5iWtS8/BhCq32Tf9scDR34xvzlV+X199yMGc1fPQ5eo4
|
||||
T0MVnx942qsBQMw1mw+2kngd83dDkGUp2jgxkWEQ7+yIG4cWrMqhEfH8XvHShBe+
|
||||
8ryvwA4x84Sy/utCd9+JsOxx4mdVmsKVyDRk4Wr6xL5XG29ECyU7Xph7PHhagP6l
|
||||
1jHqbrEbAgMBAAECggEAA3nOC6tb3a0yLuvd5erQvUHRpTLBmju73E/RJvi/pzlU
|
||||
8OJyzAC9AmQ9ZcYLLIZmdMoG6EfHiPLOsCB2cJgyLVRuea0xv0GDgNHvEL0UZnpQ
|
||||
Dakl61viPInBNOwTwLBN0weEWMsBS0oJy2T2POMoySG5zI0f+CSZmnTUm9OLSCCY
|
||||
8fX2IdeSqHiWx4Gfnc7J0OnZxq/XfdFKIL8aKKdBTlqqhsas3J6jaJsp7xjDJFP4
|
||||
3Ut0L8QLPIQFXepAOPNICgqE4bxnq6OPtG+P1yNOTCROqP9hqHJwSsTAVT1EVsAI
|
||||
EX8mLL3sjvzMWNA+yAPH4MUirRsTMMWStkErKg63CQKBgQDJPWedGS9+0urvPrBg
|
||||
KmtwEkPmAhVaFXcfVd2ZJTMYI8f2Jvuxp/qmubmR4A05Ba7E/BGH2e16zJm8EbVi
|
||||
bT/+MYH7j6nphUbP2FZ3MFjoE6BolWDhsqkYbaGajHMCaHb8Dml7blXCyKnMLquL
|
||||
E+9JYoWFJxdtYtKilXR3otXtgwKBgQDFJq8+rNNzIhDQnQC8CcX2Q7ij5Iz1DmeS
|
||||
8Nwn5/1hTQIQpmPvzSPunsEPaqByXFdUqLEt4VbM0+xuTcSbLZcB6F4icfC7FDdx
|
||||
wpGoN4hW5R7sKn+lj3FLU38IKoixeIbhZ24bTPlykSO9xYWWhWl4TOaGYjVr1Rdx
|
||||
1g5JHgUyiQKBgQC/bqlNGXND+tJAKmtP36p6XvW2LI8xNbAu39jAYVG8ifUjJKxT
|
||||
sM7QoWZ07STG9K/vdTYb/GRbZ5xq+pGIgxLX9TKIIn7oxL664zpFgXlhs6HpOwiB
|
||||
SxpuQYP0Z9zUEpn1ZqRTJX9xnr9fm5nV4G3FanJHWwt/I/3pabD0SbOljwKBgF2B
|
||||
Un6MY6Fol8cJn+6PSBfb2LfKz1vu4AreN9ypeBBtALy63g0/I3qqSvCv5rc2uqjJ
|
||||
dXdIN+3f2XQbaFMdFVDvT65Qkhd4qC9JU+IPrJdiBf+GzJHObbKHQGm0Gq7pdjdz
|
||||
4dIK+QhwdB4uj4RrdDF9b5xu+d1R7NOt7YqaNWbZAoGAcZoLBl0jcyRQzPwBKPxq
|
||||
Y5l470WBgKD4P1dSQryVccwnn5bquCqRgpn8R5DsMW3416IiekUWT2Z/Wxoek6rm
|
||||
FJV/N0Uddom/V8lkyOzhnuFmk3ymez33WyxCbrRUfdECcf0Y9usnp1zJyuxqsOwX
|
||||
2H8NK/j+9Gsi7diskZN4pKU=
|
||||
-----END PRIVATE KEY-----
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDkTCCAnmgAwIBAgIUaUXeUZypaWNhAf4NeHIx+WU3/h4wDQYJKoZIhvcNAQEL
|
||||
BQAwNTEOMAwGA1UECwwFV2F6dWgxDjAMBgNVBAoMBVdhenVoMRMwEQYDVQQHDApD
|
||||
YWxpZm9ybmlhMB4XDTI2MDgwNDA5MTg1N1oXDTM2MDgwMTA5MTg1N1owWjELMAkG
|
||||
A1UEBhMCVVMxEzARBgNVBAcMCkNhbGlmb3JuaWExDjAMBgNVBAoMBVdhenVoMQ4w
|
||||
DAYDVQQLDAVXYXp1aDEWMBQGA1UEAwwNd2F6dWguaW5kZXhlcjCCASIwDQYJKoZI
|
||||
hvcNAQEBBQADggEPADCCAQoCggEBAJr6qZuEQj+kA560waOGMh2IJ4oZZN8NsEvh
|
||||
t5/1E/7k8gRdLuaxie+OLC7trI5HwShnhRcF3E5R2rdeWnZBcqqAcez1Pwpok2fL
|
||||
Q8gsySWKpO8NtxyAHkNJMZxsruIjy0jkK102gExJOUo9pmSBwd9JhDa750Gsh1bm
|
||||
Ja1Lz8GEKrfZN/2xwNHfjG/OVX5fX33IwZzV89Dl6jhPQxWfH3jaqwFAzDWbD7aS
|
||||
eB3zd0OQZSnaODGRYRDv7IgbhxasyqER8fxe8dKEF77yvK/ADjHzhLL+60J334mw
|
||||
7HHiZ1WawpXINGThavrEvlcbb0QLJTtemHs8eFqA/qXWMepusRsCAwEAAaN0MHIw
|
||||
HwYDVR0jBBgwFoAU/PK5Ttc0H3rhbC2CM1yz2k0AWkIwCQYDVR0TBAIwADALBgNV
|
||||
HQ8EBAMCBPAwGAYDVR0RBBEwD4INd2F6dWguaW5kZXhlcjAdBgNVHQ4EFgQUi5Pi
|
||||
BFtookZvHby/raO/4vHTARAwDQYJKoZIhvcNAQELBQADggEBAHWCqlnLe86tlxtB
|
||||
5EZDCpVoeGZtOSzSQ6mAVirtcJKCEy0azDVA7RygRa+A5PCjrPAsjbllCCb1T5kw
|
||||
zc/DWiBwnkR6m613LPgcL8wHSE+F9MLEV5CuAXKiVCU+K8a+jDC06Ac6nQTScdSs
|
||||
cFSEt7PIcY9WFwaD+BXnSdmP7ntQisrTmtHpGtJfW466q4Z4GgYU8WU8WZn0gDBF
|
||||
M5MEXgnqvGyRgEMrj4k9SLxJ6qOWMZt34Nq8s/N9pS1AF2Gcw5qZ7/OXigPDcowZ
|
||||
JZL2RQ3ggzi3kdFHN2dP/7Yu7HpgTkwszm81H/0jly/HwgpvIy1Dj1xvypLC+gvu
|
||||
Swxa47Y=
|
||||
-----END CERTIFICATE-----
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDQIOxmML0eR6D6
|
||||
elqQ0AHAtOBdHbSGTOVfmShaHTlYunflWLxQxgQlVXinnR9xd7GPIykitf8aZBcR
|
||||
L7bG0xC4U9pz3dIqTfsqnkur8+1mw/o9HmiqdNnYpZm79xLY/HlCGpZ3gUuvh+uI
|
||||
Hfl/GIT95+tY1W9Q1DCMqAi4FTgkba9fuqTRY6PrpL7bvi/NsE1MEUEbf5uukclB
|
||||
/Ow6nOYZJEqxgKxbMDIGLBIxs6PE/KNfefxFjnkol5KNn/IoYcQfMf0/uu/ZCMBN
|
||||
MDOtY+s2maVWzp3nMHDjNtc6AY9m2KtSAQjbUCf3wbKesP9qajrkj8leIpxHxx3a
|
||||
q8OEBXnzAgMBAAECggEAEC6XIsTkV1/bWM49j2fU0w5dKXA/UnfVF685T3RZOphY
|
||||
7RiOn7sdpGd2V5XkVXaodAgYUS4UVRF2J6xtihzr/mDqqbqT9h0VC7W+DXMMQMK5
|
||||
CJp+Kc6nB2ysvMwTh5JtvSGDFGyVnWK0geNOvD6ETJeFGWWS35Z35d/EucdQk6hd
|
||||
goKKYOl/FOqMTzI5oQmcB5bpBF4h6edbxs+xCdVhtdl6TBcMiBVfCyCqn0H9GKWN
|
||||
6xoCIBK4sV1Hnc8ARNYoj+t6VWac5nWXBhTiYAgXzwpNsJAGf4DmFoGx3xra76J4
|
||||
fn3eajxWUqxCJWAGVGL4jbc7yVUiX2ukmJdCA3LJzQKBgQD8UYPA7NHsxnd9CXFy
|
||||
bAIYPt9C7n7uFON6oEatnlLJFRcO59ExQ1JKGB5faeJCiASpP79QiRl6MhB7wnzi
|
||||
AuqN8jSMA5SofiZGp+3HrrG0cl2RoKn4BKCjP/XrRhq7rOOPRxh21b3q4LzZfTHe
|
||||
D9aUFkjBJcWZM12uGg21jDq6fwKBgQDTKli1JYLeo3mCvrRLRbwe1dVYHgYDvFVF
|
||||
p74KFTjg8RoDKdp0lJfwmK873YQkfZ7Y6D4JwcpKceT21g7wGeOPZhYSkCEJ4dsk
|
||||
E9fdN0S5FV4HKHrByscwUIsu4g4QEM19Dwj66yHSoUbFzoQYA3hMdtHSNVpWxwp0
|
||||
yjIOvH4+jQKBgQCpVc+Vl5ofTOb+PGstvnz9ZpyRn9wBznUIZC5q8LlgiE3sS/ni
|
||||
FOtSHLOtlzMpMX3nVIgB9bDqiFT1qgYD7K8bynQnj3OiTN9FRghXnc9XafWP+YJ4
|
||||
mCpyxUc2udrRH2utSaqKflIyIte7IsFn5bs9sWLsdXwSoB177bJLqCv14wKBgCGc
|
||||
CNh0KvtCq7FqpwmgBMwnnrhStwRbMntOsomqTQ5Icap1O+b4S6KouqNdo42nTOQb
|
||||
OtyUspzcueOruF7wz+5gAj1cIVYQU6/PVLlJ9a87vmaHQ9qaas++0hhZNIHMGti/
|
||||
zt8ZE54Ru1D6iL3Ft5z8AHNjuIg9T+W81PDRgYp1AoGAPH3Ra44JM62ADGUeYgCL
|
||||
Fr9FqxR8mfv5ffjAEhJjxWSfz0z7k+sYDyhNa7VQufnA+eGDuwmMliNR5wRbpFjA
|
||||
u7TF6osGWnteiiBRN3twTPFgPb1sqenX0xpFj9GIctxyZQSkZB8TZtG+OzxkF4e/
|
||||
INPUwhYcaduu8Hqq4TVOJPg=
|
||||
-----END PRIVATE KEY-----
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDkTCCAnmgAwIBAgIUaUXeUZypaWNhAf4NeHIx+WU3/h8wDQYJKoZIhvcNAQEL
|
||||
BQAwNTEOMAwGA1UECwwFV2F6dWgxDjAMBgNVBAoMBVdhenVoMRMwEQYDVQQHDApD
|
||||
YWxpZm9ybmlhMB4XDTI2MDgwNDA5MTg1N1oXDTM2MDgwMTA5MTg1N1owWjELMAkG
|
||||
A1UEBhMCVVMxEzARBgNVBAcMCkNhbGlmb3JuaWExDjAMBgNVBAoMBVdhenVoMQ4w
|
||||
DAYDVQQLDAVXYXp1aDEWMBQGA1UEAwwNd2F6dWgubWFuYWdlcjCCASIwDQYJKoZI
|
||||
hvcNAQEBBQADggEPADCCAQoCggEBANAg7GYwvR5HoPp6WpDQAcC04F0dtIZM5V+Z
|
||||
KFodOVi6d+VYvFDGBCVVeKedH3F3sY8jKSK1/xpkFxEvtsbTELhT2nPd0ipN+yqe
|
||||
S6vz7WbD+j0eaKp02dilmbv3Etj8eUIalneBS6+H64gd+X8YhP3n61jVb1DUMIyo
|
||||
CLgVOCRtr1+6pNFjo+ukvtu+L82wTUwRQRt/m66RyUH87Dqc5hkkSrGArFswMgYs
|
||||
EjGzo8T8o195/EWOeSiXko2f8ihhxB8x/T+679kIwE0wM61j6zaZpVbOnecwcOM2
|
||||
1zoBj2bYq1IBCNtQJ/fBsp6w/2pqOuSPyV4inEfHHdqrw4QFefMCAwEAAaN0MHIw
|
||||
HwYDVR0jBBgwFoAU/PK5Ttc0H3rhbC2CM1yz2k0AWkIwCQYDVR0TBAIwADALBgNV
|
||||
HQ8EBAMCBPAwGAYDVR0RBBEwD4INd2F6dWgubWFuYWdlcjAdBgNVHQ4EFgQUgCtN
|
||||
4MfdT4L7AIb/7O+dYuWFRGUwDQYJKoZIhvcNAQELBQADggEBAKkf4FPQH93Auc/F
|
||||
ui2Y4df5L9PTihoKXcFfiFUb1d0fCZra96b8dTVlcQJt8PdYQOpndVQbj5J/1qLP
|
||||
/ogpe43304g46bMEhvX79z3w1ZgFmHn3TXd1pG2LO4VT6ULQ1/4J8UP4Mc8Sq+Ip
|
||||
gpSscpwNbF/9+1sGRYH2KB1KivTFqRppKX6YmK722QHqJEL2cLimUjJfvuqTfEGR
|
||||
KVNnbJPgsLOcAHtnKew82/uWl14DeoiA6gfYO1rTJSjvqWV3eE/opyTxLbxWYZFb
|
||||
YFKw8Joxp1zovoxvJ6tii9MjGo/cg3BVoxYydFklwd2CtPtnjPdGZPmdHoXPvt9L
|
||||
ziqxi0E=
|
||||
-----END CERTIFICATE-----
|
||||
@@ -0,0 +1,28 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCzLfw3OkK9yfCp
|
||||
FWxFPRwWCrFVasYmM1q5N0SQXx3aMqhfKSCeGP9cso6jvxbmPhobYJm5FIOuu/4q
|
||||
hkyMXngROxa0z/PdgEoJQCfNgnU37by73EDiiXeePyfchqoBpN7o6Fc8cojwrMyw
|
||||
aodvzG+qbaEdEer0IWw50Ae+/qJz0CEoz9vYRxiD+WoSm7svm2u1cGwrAECa3VhV
|
||||
4hUPcUa5+PS2/Y5W0IVqLPCz94uwxvsyKly4iGVC5JZ9GteG3473aZwwNnsuoPhG
|
||||
XlmwlXM4/ipYbAyUjDCyIoMbSj9l2Lemc+Bl98MOz6hwd7TxYw8yZvkHTAUdvDe/
|
||||
T0SAgjyDAgMBAAECggEABjLF7mFhkh5KsBXP2z40KTDRDvdjDvV28RXBseItyxRS
|
||||
36YVBBv4YJpSA/5URrAQK5Tykb3Q0iFGt18195UglNgDVC7Q+w2ALNKi4y/AlIub
|
||||
f80QE1RWETZ2FowzzVulY09w8Y7RMlsWKZ7UA0C7NtYU62QTu1Duc0ikyi1OnrBI
|
||||
xUjGg/EqQsJnpQGxBnDtvtN0uwOTrlAT2jx9UXqevXgbblB+I4lokrZ581+s7kJH
|
||||
1K7hrrP2Ve0KReqzduxkBepjvffNR3iDz++WkkXcIMHleY5/uH9dizitx3AAbwIw
|
||||
mTmxyCMzXox10qjqMHvT/totohKUGBiUtQocKPx2IQKBgQDdsGKuaCg/o+GZhNBd
|
||||
SN82gLyGfSufM1aGvFD0rlLJYIGhUVdCvKzpKv+mRQc2ceAOzlYH6IWcbR8+bNN9
|
||||
SWSvczRJLbuXMozz/JvteiOo8G0TGOSqHFLo6Rc1EqEuJAzxLj0q+18QjWdrtTLq
|
||||
l7zwGKscakG9tNAFpZ0SmpTB7wKBgQDO6VJM37h4LM2EvR6ls+1E12vhPBLojkw1
|
||||
KLWphE5+PiT4CR1i4pvk8/RnrwsyzN4bB5T65o89J36PFcoh5fi1ZpOwHW5t0/pA
|
||||
dfDc6+tfCoI8C9cJWhCMszaNgZviCww1ZaMFtVAvBVDb0iVHJ+/94Cz6GDk1l8VC
|
||||
x6y9Xg2yrQKBgQDcYiAH39W7RnDczBLT2cDFDv/b9w1pi4DGGumkBLSaKw1TUGie
|
||||
GLEQb0WMhmzgLB6guXD/FaHV2wlHZqpsj4y/epiM8yDc80z6tLJSR6yxoqncZU/U
|
||||
6Klnj2kZwrZnB0GyddQrKY/dBaW9hnniiwwx52QbsGpAbEKsinJ27yNZEwKBgEU6
|
||||
LU4JICgdHVoHCIT6US1SQgbm2ZCzY235w+YGnViBpE7Uhd964BvXP3OdTkrd3oX+
|
||||
oGrdzxjv6NkouitjTTYsLsei4TqfzL/adg8EZAi1dGNwtq6rUpQwtdTcg3I6rggD
|
||||
jGqxgjVpOueBRPWsuBAh/AplJmb284nnUrU9Dao1AoGBAM4ldSzN3SCst0Owc0xx
|
||||
SzlX8v9xWzsL292eRSnzDtPuvdKvyWlke8XdkC2Pi1AoVNCOFCn0bcjXtN0XLn/e
|
||||
MwF9j8h9wG7W21nCJLflUG2RXRV5fWHBvP6FhKLbQut7wJBf5EMOBPK6RkUn0Vs7
|
||||
SrT3ZxQ+uwY5q9jjMN84bJ8M
|
||||
-----END PRIVATE KEY-----
|
||||
@@ -0,0 +1,22 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDlTCCAn2gAwIBAgIUEO25S+4jYn8uga3bnRiVBbdOp7swDQYJKoZIhvcNAQEL
|
||||
BQAwNTEOMAwGA1UECwwFV2F6dWgxDjAMBgNVBAoMBVdhenVoMRMwEQYDVQQHDApD
|
||||
YWxpZm9ybmlhMB4XDTI2MDgwNDA5MTQzM1oXDTM2MDgwMTA5MTQzM1owXDELMAkG
|
||||
A1UEBhMCVVMxEzARBgNVBAcMCkNhbGlmb3JuaWExDjAMBgNVBAoMBVdhenVoMQ4w
|
||||
DAYDVQQLDAVXYXp1aDEYMBYGA1UEAwwPd2F6dWguZGFzaGJvYXJkMIIBIjANBgkq
|
||||
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsy38NzpCvcnwqRVsRT0cFgqxVWrGJjNa
|
||||
uTdEkF8d2jKoXykgnhj/XLKOo78W5j4aG2CZuRSDrrv+KoZMjF54ETsWtM/z3YBK
|
||||
CUAnzYJ1N+28u9xA4ol3nj8n3IaqAaTe6OhXPHKI8KzMsGqHb8xvqm2hHRHq9CFs
|
||||
OdAHvv6ic9AhKM/b2EcYg/lqEpu7L5trtXBsKwBAmt1YVeIVD3FGufj0tv2OVtCF
|
||||
aizws/eLsMb7MipcuIhlQuSWfRrXht+O92mcMDZ7LqD4Rl5ZsJVzOP4qWGwMlIww
|
||||
siKDG0o/Zdi3pnPgZffDDs+ocHe08WMPMmb5B0wFHbw3v09EgII8gwIDAQABo3Yw
|
||||
dDAfBgNVHSMEGDAWgBQe9+49H4XrSFxTrm+1QJmwqBxBTzAJBgNVHRMEAjAAMAsG
|
||||
A1UdDwQEAwIE8DAaBgNVHREEEzARgg93YXp1aC5kYXNoYm9hcmQwHQYDVR0OBBYE
|
||||
FOhA2S6VZLZ+9HLvwp2q/15tWWriMA0GCSqGSIb3DQEBCwUAA4IBAQA4AcoCljOx
|
||||
HE09IZxkFk2ESNF0q0fjv6FXb5G22rZfrjNGxsle8SRy6hlBtJ2N4Tuod98wtdJP
|
||||
dNtvnZ78pc6fkQcbHuoqjJpfpwZD9AjAawvUwRQvYz/ndXw7PypNG14xUhnidhIW
|
||||
1pex6Ceao/vD4yrA8XPWA/1KmThPxiXkXgNg24XxvGz+ybUahauRmrrKdnd60nik
|
||||
0mN8txFOD/myjj6+oXw/YwRwwAvTXmarTJKs8JyZ3MWJQN2by6eTm+vqxZmRVAF9
|
||||
pWNG6pmblu6S0t9Wq8SzGAA5ilfFdETjLEx8jB4G/Fxb5TvxdNnNWuVV1pw02RJ1
|
||||
ph2lJjGORmRu
|
||||
-----END CERTIFICATE-----
|
||||
@@ -0,0 +1,28 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCxHoTdbep5b6tY
|
||||
O/ROcmLToE1HUn2JsnYLuXmJUZFlYG6Ww2+wUmcD36hmuZ8mWPDpKqW2m3O9rYE9
|
||||
H7k/FDVU+4h1ToPstlgHESNX+gbwn7iN6i2t6D3FgdAENZ7+t8UVz1hi3ClA8IzV
|
||||
pQ9PTY+ST16VhCCzKU9VvDYbcDl3IWj1kA2R7jKmYVl5vqgC8ywHpEzLUcKP+/gK
|
||||
nnJT+H8MSOjQUhBzrMkDHB1Lq4A82U9nhZWOZBeEz/KAhG/IG+lUTMH3P0IbhEwZ
|
||||
NeztJPylfjyTemOCBnXPhUbqltrfqU+lMIStPLurH2V9hr8c2aa97+/XjLnDM/bR
|
||||
aAtkWV3FAgMBAAECggEACqrG37sd8wBZtm+t8AeNkidGYDREoUVhPKWH/1AtTIi5
|
||||
QFU25cygragLsVwejKWwpKpP3qaQGu1XKkI92uGxsJORjVcUNO5qcMqEcWj6gAVu
|
||||
jQV8iMvC5KFD0O0VzUtuEDkznoiZ53JVWQye1mzaZ7pl/OU/PusO/x/dtltU6qq7
|
||||
eIQFUDCvqdZJ+XxJ6tjRx7wGqIVhdaoq87W+CzTxgBSNyWEZ+6YQ2ToiF0e0979B
|
||||
mQ/PdGmOjhzsZKvv2YiK9sTU/0yIV1zNrLLx6Vk7lYW7inb0krsScnnUSvzg2C06
|
||||
wZdmqzIuCPzkSLBjZ/AdWlRhN1virf8Ryafjw+0oQQKBgQD5zRJIL3djXpFybQHp
|
||||
hYhhXvzGtGoGCJ9yugJj9r9Wo+9JPSEMs14x/tHa7PMVCswE5xqDgdtqIRtPtQmg
|
||||
SObZ1DEOkHwWNN1o6Pfejowr95WENkN6D03JZdNuHb7+9bsyoxvrw8BaaIz1upoe
|
||||
hWmoBn13bfGso7IDaT0Pv/sicQKBgQC1g7dxLvc9oyMhHRCUxspJ8R1ppUTgMs8W
|
||||
WTDcCVxlPoMkWLIPs5dlDlgu80LxOvzskIqwOf/kFly39xvSlGQNJTBGwOHwLBtf
|
||||
XJDoJfcgBKueV7vvoVA9A4Xzuoqv74DUYJIEvAd9Ak0VkbehixSW2Q/IqRiub6AP
|
||||
P9imK1hylQKBgQCSP1ahvnB2U+pxhJJnBo+2+iahqwSbrba0M2Ss48xXzDiOt2Q/
|
||||
DFBsktSICMu0GRMjF651KbSs6N8VhlcxaR0GkO17qmmLkr3B6wsbWHeGUjhOJHrS
|
||||
3lzbOWtUf8PPf0xutAHnwT4/cBB+2RXcIp2eCtav8kVYnqncx2NBclN0cQKBgH1t
|
||||
JQd68rGO1yl8kgacTxBFIpPr9eoOcfb5br+9YDE9vxUQjQo4iTb1cI4Q3oMexcMa
|
||||
JhucGGyd3zfn8zvR+kjzF6bshbOWZtvAdQlVoqxnTce+zEjL6Uwf8SH4Fvl3wEgA
|
||||
6yWGYI5LVsS+ymtAVdve5f88iaePzsR609QPQ7D5AoGAMp3Vo7xWVV+4OPAc1nuS
|
||||
Usl4XRhw5q4VcJme+7TP2x++cH84f3eDFTLDbsKHe16hRRwRwSUjLopkpu+Cm4/a
|
||||
04dtCy2qmt5FqG8OFBjwMUBiw8dflym7RzWmxCrhB87PeMKkOVgE8w21T6+olvDG
|
||||
w7B2JcALXtaQJ4DAJDUMbgQ=
|
||||
-----END PRIVATE KEY-----
|
||||
@@ -0,0 +1,22 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDkTCCAnmgAwIBAgIUEO25S+4jYn8uga3bnRiVBbdOp7kwDQYJKoZIhvcNAQEL
|
||||
BQAwNTEOMAwGA1UECwwFV2F6dWgxDjAMBgNVBAoMBVdhenVoMRMwEQYDVQQHDApD
|
||||
YWxpZm9ybmlhMB4XDTI2MDgwNDA5MTQzMloXDTM2MDgwMTA5MTQzMlowWjELMAkG
|
||||
A1UEBhMCVVMxEzARBgNVBAcMCkNhbGlmb3JuaWExDjAMBgNVBAoMBVdhenVoMQ4w
|
||||
DAYDVQQLDAVXYXp1aDEWMBQGA1UEAwwNd2F6dWguaW5kZXhlcjCCASIwDQYJKoZI
|
||||
hvcNAQEBBQADggEPADCCAQoCggEBALEehN1t6nlvq1g79E5yYtOgTUdSfYmydgu5
|
||||
eYlRkWVgbpbDb7BSZwPfqGa5nyZY8Okqpbabc72tgT0fuT8UNVT7iHVOg+y2WAcR
|
||||
I1f6BvCfuI3qLa3oPcWB0AQ1nv63xRXPWGLcKUDwjNWlD09Nj5JPXpWEILMpT1W8
|
||||
NhtwOXchaPWQDZHuMqZhWXm+qALzLAekTMtRwo/7+AqeclP4fwxI6NBSEHOsyQMc
|
||||
HUurgDzZT2eFlY5kF4TP8oCEb8gb6VRMwfc/QhuETBk17O0k/KV+PJN6Y4IGdc+F
|
||||
RuqW2t+pT6UwhK08u6sfZX2GvxzZpr3v79eMucMz9tFoC2RZXcUCAwEAAaN0MHIw
|
||||
HwYDVR0jBBgwFoAUHvfuPR+F60hcU65vtUCZsKgcQU8wCQYDVR0TBAIwADALBgNV
|
||||
HQ8EBAMCBPAwGAYDVR0RBBEwD4INd2F6dWguaW5kZXhlcjAdBgNVHQ4EFgQUlR0c
|
||||
nRgkuXrBwGz/x9wVv84qs/QwDQYJKoZIhvcNAQELBQADggEBALnKkXTP+5NxVaPN
|
||||
lR4+abl3qFNKj+oYoHAvX+TjrTzj26dF8ZvUgXNRTvgGJd8UyKe6hvGtfJOZWXtx
|
||||
bDimfBDCmHlWjgmonHLCyDmJMOsjcy31ui0hQD8YvP/fUKkbxzcq3gse78Ox5q8g
|
||||
qZhpnkAphOH4Uko2EIID4q+zAvXYO6K0YjPIqSm9amWDp1Xa5spzno9yE4HKgyci
|
||||
xJlaGckXAr1bxjXRTpIczSaqJJyg5GuiaU70HNDnFZiVqzW7PjOONNtJHo+2lTf8
|
||||
m7qRw4pXkOBv3J4m1GRkJ3krqQFRkxroKWIW3cm1mozvcueh9fpEdswLUYfwGCxt
|
||||
jvGLn0Q=
|
||||
-----END CERTIFICATE-----
|
||||
@@ -0,0 +1,28 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDkOPY3id/evBCe
|
||||
CKRwAOOy5f459a1Pdaa9wgT9pV9AWcBMVNNRTWFj8hs/SkMPD7YAe9gcToTkRqWW
|
||||
JEWt0ISeuR9hZ1S0P/mRjdvZdqDqRN6+RioznEw+pB3E/FX5d0G4U5trGbSjQGz0
|
||||
fjnmFLEQUg2SkGRz9+4cxyIyiyZvgxqatK4G7XrJouZazHt/C+e/nPxmYGPgLkOP
|
||||
hPxuPBBRRRWswJ0t7zkj6wjxDNsQhz/WbHO5H0/7KB7larI2E30RjyjWZhxJBY1e
|
||||
HXT+TMxTlvEzMefCSf4TblozYRD9qS5FpvjjpieL9tAHjepDjseQQRCM3e+EvDJJ
|
||||
NCbkuWuRAgMBAAECggEADOfTtIxNZpEH94fRlKvYNHOhDrH/3PBwP2bLVXSWkFMC
|
||||
9s4NLRnNGhPEyq1uYVmoFxrpu6AND8OW9YiTkCKsfTVGuwFW3uKHQF3fQsrciqLe
|
||||
XbAmDskV3qz1KgCC9Bp0UvIXZdUMS/cGskS5DXO6F4wsTE9x/sTUaDgyjN0ljUSn
|
||||
U+cWNtWx8R34nZPdpJekYRGoidFlDgOzPK0U3CNohDrUDKNozp1BXQ3IIq3D3cvR
|
||||
5EyzwwXZG0eDsvRcgfEt5e5RP652u1XBEJhFW2WGraK34P5jtdXpNAKt7JaIJAC3
|
||||
79ad+OO6dptR1W4LcaET/tVJjxINPSWrFoiFgg9igQKBgQDzwmjr/T0FvZ4+ixup
|
||||
LbSs/uKS30hrPPuSXRO02kl60eaOoEpHamMwE6qU/oZah9fnazj8HY+XnRMqD5b0
|
||||
fKgKpPnW0qKQP2gTcbDSejC77iyErNZLROm/io7XDhitT7oMd43MMcapgHej5m6i
|
||||
lShZ79u/dS8HkunNYPisbfg8CQKBgQDvrtIsj23QLDbS8lWOLQ43hrNkun3ebdF7
|
||||
tI/YAMtw6WD+uijeZZkGALMJ83/VQLprVm/WH81T/VS3Uv2jl5fxlm3daZp8lAMh
|
||||
V62SGUFcTQELstM0Tkqe1Wsw2zNW7qtNbGKMMYxePwsXoXnZUYY6yrh1ZwK+jbxF
|
||||
8lg2LOslSQKBgD+NvYth0Eox4RNPc5vNZeEA55QBkUEcej7z85Jgo23ZUjJ3ikZK
|
||||
b6f2SLBmGCN8bYdRxl69WlXeR0PdIq+F3M5Bqz4eVvIjBgCj0MVfxFsLQyIoagrf
|
||||
4c3l004wx7BQLCLZ/OdzRuekrgzWpJvRJd8lEXc+l09zN3Ary0oxtdn5AoGAE9kD
|
||||
OINsEYgHxjIhGZPrkHeMFXRIBgpMBZVvL/Do5+G7kXxy8++v20pliRZr6Inipg7T
|
||||
VgTuKN1ajY/Gxyw/fdb6JBKho11SYQl0qxuCSRVrV7+oM7WkAkEkDjioqLM85j1q
|
||||
b7eOqyNHVN6fS3qvxeCRo88y7/qms5gc6+eOVVkCgYAHOqBwVXFMFEXuBGtB1eVW
|
||||
Zuj84RpA/VZbZpiGpinBHbp7dYL/Sl43Ff04jnBEIa+ziSShtbN2eZyqWGKAlepr
|
||||
p2yIZTdpYqq0i1d2+2NI8Ed8GbQmrwy48uqlFqsKACX2ixSkzkYliA0By15wsTD9
|
||||
/WoHpR3j0H4VeaBS8HNygQ==
|
||||
-----END PRIVATE KEY-----
|
||||
@@ -0,0 +1,22 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDkTCCAnmgAwIBAgIUEO25S+4jYn8uga3bnRiVBbdOp7owDQYJKoZIhvcNAQEL
|
||||
BQAwNTEOMAwGA1UECwwFV2F6dWgxDjAMBgNVBAoMBVdhenVoMRMwEQYDVQQHDApD
|
||||
YWxpZm9ybmlhMB4XDTI2MDgwNDA5MTQzMloXDTM2MDgwMTA5MTQzMlowWjELMAkG
|
||||
A1UEBhMCVVMxEzARBgNVBAcMCkNhbGlmb3JuaWExDjAMBgNVBAoMBVdhenVoMQ4w
|
||||
DAYDVQQLDAVXYXp1aDEWMBQGA1UEAwwNd2F6dWgubWFuYWdlcjCCASIwDQYJKoZI
|
||||
hvcNAQEBBQADggEPADCCAQoCggEBAOQ49jeJ3968EJ4IpHAA47Ll/jn1rU91pr3C
|
||||
BP2lX0BZwExU01FNYWPyGz9KQw8PtgB72BxOhORGpZYkRa3QhJ65H2FnVLQ/+ZGN
|
||||
29l2oOpE3r5GKjOcTD6kHcT8Vfl3QbhTm2sZtKNAbPR+OeYUsRBSDZKQZHP37hzH
|
||||
IjKLJm+DGpq0rgbtesmi5lrMe38L57+c/GZgY+AuQ4+E/G48EFFFFazAnS3vOSPr
|
||||
CPEM2xCHP9Zsc7kfT/soHuVqsjYTfRGPKNZmHEkFjV4ddP5MzFOW8TMx58JJ/hNu
|
||||
WjNhEP2pLkWm+OOmJ4v20AeN6kOOx5BBEIzd74S8Mkk0JuS5a5ECAwEAAaN0MHIw
|
||||
HwYDVR0jBBgwFoAUHvfuPR+F60hcU65vtUCZsKgcQU8wCQYDVR0TBAIwADALBgNV
|
||||
HQ8EBAMCBPAwGAYDVR0RBBEwD4INd2F6dWgubWFuYWdlcjAdBgNVHQ4EFgQUc9d5
|
||||
sFzgRCGk70iw5/qNrH98sp0wDQYJKoZIhvcNAQELBQADggEBAITNql9jvgHTACd+
|
||||
4nSlqmAejCoBGwoZmfJqOLlk2NXOWLNEuO8rm1cNv03vBY6UwlgvHFNXeCBEw1Sf
|
||||
WHG0xTrQYgBJrW2DL5HX7OL9z4BPekzdTC01HBWG+ueinvS6Rzy5vImxW+XmYjsm
|
||||
coCQnXbw3os8SsS7Kr1IsJRhVmdTHs2gmnuTjNjE3Pmyxb2E82qP/BiIM/lEH+IB
|
||||
ONwbSUVP3RvVQvFTP3seWDfA9fU6mXC/KujmmSmnissCxg+bEJkMMqwYFDfefFio
|
||||
NWb4oxNB0HguolYydi4PnP3kTImr6dWpqYeiOY8r5sEddUKrmZ5BtY0u6VkRVHJ8
|
||||
PhcR5cA=
|
||||
-----END CERTIFICATE-----
|
||||
@@ -0,0 +1,164 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
wazuh.indexer:
|
||||
image: wazuh/wazuh-indexer:${WAZUH_VERSION}
|
||||
container_name: wazuh.indexer
|
||||
hostname: wazuh.indexer
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "9200:9200"
|
||||
environment:
|
||||
- "OPENSEARCH_JAVA_OPTS=-Xms1g -Xmx1g"
|
||||
- "OPENSEARCH_INITIAL_ADMIN_PASSWORD=${INDEXER_PASSWORD}"
|
||||
ulimits:
|
||||
memlock:
|
||||
soft: -1
|
||||
hard: -1
|
||||
nofile:
|
||||
soft: 65536
|
||||
hard: 65536
|
||||
volumes:
|
||||
- wazuh-indexer-data:/var/lib/wazuh-indexer
|
||||
- ./config/wazuh_indexer_ssl_certs/root-ca.pem:/usr/share/wazuh-indexer/certs/root-ca.pem
|
||||
- ./config/wazuh_indexer_ssl_certs/wazuh.indexer-key.pem:/usr/share/wazuh-indexer/certs/wazuh.indexer.key
|
||||
- ./config/wazuh_indexer_ssl_certs/wazuh.indexer.pem:/usr/share/wazuh-indexer/certs/wazuh.indexer.pem
|
||||
- ./config/wazuh_indexer_ssl_certs/admin.pem:/usr/share/wazuh-indexer/certs/admin.pem
|
||||
- ./config/wazuh_indexer_ssl_certs/admin-key.pem:/usr/share/wazuh-indexer/certs/admin-key.pem
|
||||
- ./config/wazuh_indexer/wazuh.indexer.yml:/usr/share/wazuh-indexer/opensearch.yml
|
||||
networks:
|
||||
- lab-network
|
||||
|
||||
wazuh.manager:
|
||||
image: wazuh/wazuh-manager:${WAZUH_VERSION}
|
||||
container_name: wazuh.manager
|
||||
hostname: wazuh.manager
|
||||
restart: unless-stopped
|
||||
ulimits:
|
||||
memlock:
|
||||
soft: -1
|
||||
hard: -1
|
||||
nofile:
|
||||
soft: 655360
|
||||
hard: 655360
|
||||
ports:
|
||||
- "1514:1514"
|
||||
- "1515:1515"
|
||||
- "514:514/udp"
|
||||
- "55000:55000"
|
||||
environment:
|
||||
- INDEXER_URL=https://wazuh.indexer:9200
|
||||
- INDEXER_USERNAME=admin
|
||||
- INDEXER_PASSWORD=${INDEXER_PASSWORD}
|
||||
- FILEBEAT_SSL_VERIFICATION_MODE=full
|
||||
- SSL_CERTIFICATE_AUTHORITIES=/etc/ssl/root-ca.pem
|
||||
- SSL_CERTIFICATE=/etc/ssl/filebeat.pem
|
||||
- SSL_KEY=/etc/ssl/filebeat.key
|
||||
- API_USERNAME=wazuh-wui
|
||||
- API_PASSWORD=${API_PASSWORD}
|
||||
volumes:
|
||||
- wazuh_api_configuration:/var/ossec/api/configuration
|
||||
- wazuh_etc:/var/ossec/etc
|
||||
- wazuh_logs:/var/ossec/logs
|
||||
- wazuh_queue:/var/ossec/queue
|
||||
- wazuh_var_multigroups:/var/ossec/var/multigroups
|
||||
- wazuh_integrations:/var/ossec/integrations
|
||||
- wazuh_active_response:/var/ossec/active-response/bin
|
||||
- wazuh_agentless:/var/ossec/agentless
|
||||
- wazuh_wodles:/var/ossec/wodles
|
||||
- filebeat_etc:/etc/filebeat
|
||||
- filebeat_var:/var/lib/filebeat
|
||||
- ./config/wazuh_indexer_ssl_certs/root-ca-manager.pem:/etc/ssl/root-ca.pem
|
||||
- ./config/wazuh_indexer_ssl_certs/wazuh.manager.pem:/etc/ssl/filebeat.pem
|
||||
- ./config/wazuh_indexer_ssl_certs/wazuh.manager-key.pem:/etc/ssl/filebeat.key
|
||||
depends_on:
|
||||
- wazuh.indexer
|
||||
networks:
|
||||
- lab-network
|
||||
|
||||
wazuh.dashboard:
|
||||
image: wazuh/wazuh-dashboard:${WAZUH_VERSION}
|
||||
container_name: wazuh.dashboard
|
||||
hostname: wazuh.dashboard
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "443:5601"
|
||||
environment:
|
||||
- INDEXER_USERNAME=admin
|
||||
- INDEXER_PASSWORD=${INDEXER_PASSWORD}
|
||||
- WAZUH_API_URL=https://wazuh.manager
|
||||
- DASHBOARD_USERNAME=${DASHBOARD_USERNAME}
|
||||
- DASHBOARD_PASSWORD=${DASHBOARD_PASSWORD}
|
||||
- API_USERNAME=wazuh-wui
|
||||
- API_PASSWORD=${API_PASSWORD}
|
||||
volumes:
|
||||
- ./config/wazuh_indexer_ssl_certs/wazuh.dashboard.pem:/usr/share/wazuh-dashboard/certs/wazuh.dashboard.pem
|
||||
- ./config/wazuh_indexer_ssl_certs/wazuh.dashboard-key.pem:/usr/share/wazuh-dashboard/certs/wazuh.dashboard-key.pem
|
||||
- ./config/wazuh_indexer_ssl_certs/root-ca.pem:/usr/share/wazuh-dashboard/certs/root-ca.pem
|
||||
- ./config/wazuh_dashboard/opensearch_dashboards.yml:/usr/share/wazuh-dashboard/config/opensearch_dashboards.yml
|
||||
- ./config/wazuh_dashboard/wazuh.yml:/usr/share/wazuh-dashboard/data/wazuh/config/wazuh.yml
|
||||
- wazuh-dashboard-custom:/usr/share/wazuh-dashboard/plugins/wazuh/public/assets/custom
|
||||
depends_on:
|
||||
- wazuh.indexer
|
||||
- wazuh.manager
|
||||
networks:
|
||||
- lab-network
|
||||
|
||||
ubuntu-gui:
|
||||
image: lscr.io/linuxserver/webtop:ubuntu-xfce
|
||||
container_name: ubuntu-gui
|
||||
hostname: ubuntu-gui
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "3000:3000"
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=Europe/Paris
|
||||
volumes:
|
||||
- ./data/ubuntu_gui:/config
|
||||
networks:
|
||||
- lab-network
|
||||
|
||||
windows:
|
||||
image: dockurr/windows
|
||||
container_name: windows
|
||||
hostname: windows
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "8006:8006"
|
||||
- "3389:3389/tcp"
|
||||
- "3389:3389/udp"
|
||||
environment:
|
||||
- VERSION=${WIN_VERSION}
|
||||
- RAM_SIZE=${WIN_RAM}
|
||||
- CPU_CORES=${WIN_CPU}
|
||||
- ADAPTER=e1000e
|
||||
devices:
|
||||
- /dev/kvm
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
volumes:
|
||||
- ./data/windows:/storage
|
||||
networks:
|
||||
- lab-network
|
||||
|
||||
volumes:
|
||||
wazuh-indexer-data:
|
||||
wazuh_api_configuration:
|
||||
wazuh_etc:
|
||||
wazuh_logs:
|
||||
wazuh_queue:
|
||||
wazuh_var_multigroups:
|
||||
wazuh_integrations:
|
||||
wazuh_active_response:
|
||||
wazuh_agentless:
|
||||
wazuh_wodles:
|
||||
filebeat_etc:
|
||||
filebeat_var:
|
||||
wazuh-dashboard-custom:
|
||||
|
||||
networks:
|
||||
lab-network:
|
||||
driver: bridge
|
||||
name: lab-network
|
||||
@@ -0,0 +1,23 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
wazuh-agent:
|
||||
image: ubuntu:22.04
|
||||
container_name: wazuh-agent
|
||||
hostname: wazuh-agent
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./auth.log:/var/log/auth.log:ro
|
||||
environment:
|
||||
- WAZUH_MANAGER_IP=${WAZUH_MANAGER_IP}
|
||||
command: >
|
||||
bash -c "
|
||||
apt-get update &&
|
||||
apt-get install -y curl apt-transport-https gnupg &&
|
||||
curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | apt-key add - &&
|
||||
echo 'deb https://packages.wazuh.com/4.x/apt/ stable main' > /etc/apt/sources.list.d/wazuh.list &&
|
||||
apt-get update &&
|
||||
WAZUH_MANAGER=\"$WAZUH_MANAGER_IP\" apt-get install -y wazuh-agent &&
|
||||
service wazuh-agent start &&
|
||||
tail -f /var/log/auth.log
|
||||
"
|
||||
@@ -0,0 +1,164 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
wazuh.indexer:
|
||||
image: wazuh/wazuh-indexer:${WAZUH_VERSION}
|
||||
container_name: wazuh.indexer
|
||||
hostname: wazuh.indexer
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "9200:9200"
|
||||
environment:
|
||||
- "OPENSEARCH_JAVA_OPTS=-Xms1g -Xmx1g"
|
||||
- "OPENSEARCH_INITIAL_ADMIN_PASSWORD=${INDEXER_PASSWORD}"
|
||||
ulimits:
|
||||
memlock:
|
||||
soft: -1
|
||||
hard: -1
|
||||
nofile:
|
||||
soft: 65536
|
||||
hard: 65536
|
||||
volumes:
|
||||
- wazuh-indexer-data:/var/lib/wazuh-indexer
|
||||
- ./config/wazuh_indexer_ssl_certs/root-ca.pem:/usr/share/wazuh-indexer/certs/root-ca.pem
|
||||
- ./config/wazuh_indexer_ssl_certs/wazuh.indexer-key.pem:/usr/share/wazuh-indexer/certs/wazuh.indexer.key
|
||||
- ./config/wazuh_indexer_ssl_certs/wazuh.indexer.pem:/usr/share/wazuh-indexer/certs/wazuh.indexer.pem
|
||||
- ./config/wazuh_indexer_ssl_certs/admin.pem:/usr/share/wazuh-indexer/certs/admin.pem
|
||||
- ./config/wazuh_indexer_ssl_certs/admin-key.pem:/usr/share/wazuh-indexer/certs/admin-key.pem
|
||||
- ./config/wazuh_indexer/wazuh.indexer.yml:/usr/share/wazuh-indexer/opensearch.yml
|
||||
networks:
|
||||
- lab-network
|
||||
|
||||
wazuh.manager:
|
||||
image: wazuh/wazuh-manager:${WAZUH_VERSION}
|
||||
container_name: wazuh.manager
|
||||
hostname: wazuh.manager
|
||||
restart: unless-stopped
|
||||
ulimits:
|
||||
memlock:
|
||||
soft: -1
|
||||
hard: -1
|
||||
nofile:
|
||||
soft: 655360
|
||||
hard: 655360
|
||||
ports:
|
||||
- "1514:1514"
|
||||
- "1515:1515"
|
||||
- "514:514/udp"
|
||||
- "55000:55000"
|
||||
environment:
|
||||
- INDEXER_URL=https://wazuh.indexer:9200
|
||||
- INDEXER_USERNAME=admin
|
||||
- INDEXER_PASSWORD=${INDEXER_PASSWORD}
|
||||
- FILEBEAT_SSL_VERIFICATION_MODE=full
|
||||
- SSL_CERTIFICATE_AUTHORITIES=/etc/ssl/root-ca.pem
|
||||
- SSL_CERTIFICATE=/etc/ssl/filebeat.pem
|
||||
- SSL_KEY=/etc/ssl/filebeat.key
|
||||
- API_USERNAME=wazuh-wui
|
||||
- API_PASSWORD=${API_PASSWORD}
|
||||
volumes:
|
||||
- wazuh_api_configuration:/var/ossec/api/configuration
|
||||
- wazuh_etc:/var/ossec/etc
|
||||
- wazuh_logs:/var/ossec/logs
|
||||
- wazuh_queue:/var/ossec/queue
|
||||
- wazuh_var_multigroups:/var/ossec/var/multigroups
|
||||
- wazuh_integrations:/var/ossec/integrations
|
||||
- wazuh_active_response:/var/ossec/active-response/bin
|
||||
- wazuh_agentless:/var/ossec/agentless
|
||||
- wazuh_wodles:/var/ossec/wodles
|
||||
- filebeat_etc:/etc/filebeat
|
||||
- filebeat_var:/var/lib/filebeat
|
||||
- ./config/wazuh_indexer_ssl_certs/root-ca-manager.pem:/etc/ssl/root-ca.pem
|
||||
- ./config/wazuh_indexer_ssl_certs/wazuh.manager.pem:/etc/ssl/filebeat.pem
|
||||
- ./config/wazuh_indexer_ssl_certs/wazuh.manager-key.pem:/etc/ssl/filebeat.key
|
||||
depends_on:
|
||||
- wazuh.indexer
|
||||
networks:
|
||||
- lab-network
|
||||
|
||||
wazuh.dashboard:
|
||||
image: wazuh/wazuh-dashboard:${WAZUH_VERSION}
|
||||
container_name: wazuh.dashboard
|
||||
hostname: wazuh.dashboard
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "443:5601"
|
||||
environment:
|
||||
- INDEXER_USERNAME=admin
|
||||
- INDEXER_PASSWORD=${INDEXER_PASSWORD}
|
||||
- WAZUH_API_URL=https://wazuh.manager
|
||||
- DASHBOARD_USERNAME=${DASHBOARD_USERNAME}
|
||||
- DASHBOARD_PASSWORD=${DASHBOARD_PASSWORD}
|
||||
- API_USERNAME=wazuh-wui
|
||||
- API_PASSWORD=${API_PASSWORD}
|
||||
volumes:
|
||||
- ./config/wazuh_indexer_ssl_certs/wazuh.dashboard.pem:/usr/share/wazuh-dashboard/certs/wazuh.dashboard.pem
|
||||
- ./config/wazuh_indexer_ssl_certs/wazuh.dashboard-key.pem:/usr/share/wazuh-dashboard/certs/wazuh.dashboard-key.pem
|
||||
- ./config/wazuh_indexer_ssl_certs/root-ca.pem:/usr/share/wazuh-dashboard/certs/root-ca.pem
|
||||
- ./config/wazuh_dashboard/opensearch_dashboards.yml:/usr/share/wazuh-dashboard/config/opensearch_dashboards.yml
|
||||
- ./config/wazuh_dashboard/wazuh.yml:/usr/share/wazuh-dashboard/data/wazuh/config/wazuh.yml
|
||||
- wazuh-dashboard-custom:/usr/share/wazuh-dashboard/plugins/wazuh/public/assets/custom
|
||||
depends_on:
|
||||
- wazuh.indexer
|
||||
- wazuh.manager
|
||||
networks:
|
||||
- lab-network
|
||||
|
||||
ubuntu-gui:
|
||||
image: lscr.io/linuxserver/webtop:ubuntu-xfce
|
||||
container_name: ubuntu-gui
|
||||
hostname: ubuntu-gui
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "3000:3000"
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=Europe/Paris
|
||||
volumes:
|
||||
- ./data/ubuntu_gui:/config
|
||||
networks:
|
||||
- lab-network
|
||||
|
||||
windows:
|
||||
image: dockurr/windows
|
||||
container_name: windows
|
||||
hostname: windows
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "8006:8006"
|
||||
- "3389:3389/tcp"
|
||||
- "3389:3389/udp"
|
||||
environment:
|
||||
- VERSION=${WIN_VERSION}
|
||||
- RAM_SIZE=${WIN_RAM}
|
||||
- CPU_CORES=${WIN_CPU}
|
||||
- ADAPTER=e1000e
|
||||
devices:
|
||||
- /dev/kvm
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
volumes:
|
||||
- ./data/windows:/storage
|
||||
networks:
|
||||
- lab-network
|
||||
|
||||
volumes:
|
||||
wazuh-indexer-data:
|
||||
wazuh_api_configuration:
|
||||
wazuh_etc:
|
||||
wazuh_logs:
|
||||
wazuh_queue:
|
||||
wazuh_var_multigroups:
|
||||
wazuh_integrations:
|
||||
wazuh_active_response:
|
||||
wazuh_agentless:
|
||||
wazuh_wodles:
|
||||
filebeat_etc:
|
||||
filebeat_var:
|
||||
wazuh-dashboard-custom:
|
||||
|
||||
networks:
|
||||
lab-network:
|
||||
driver: bridge
|
||||
name: lab-network
|
||||
@@ -0,0 +1,7 @@
|
||||
services:
|
||||
generator:
|
||||
image: wazuh/wazuh-certs-generator:0.0.4
|
||||
hostname: wazuh-certs-generator
|
||||
volumes:
|
||||
- ./config/wazuh_indexer_ssl_certs/:/certificates/
|
||||
- ./config/certs.yml:/config/certs.yml
|
||||
@@ -0,0 +1,90 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
mkdir -p config/wazuh_indexer
|
||||
mkdir -p config/wazuh_dashboard
|
||||
|
||||
cat > config/wazuh_indexer/wazuh.indexer.yml <<'EOF'
|
||||
network.host: "0.0.0.0"
|
||||
node.name: "wazuh.indexer"
|
||||
cluster.initial_master_nodes:
|
||||
- "wazuh.indexer"
|
||||
cluster.name: "wazuh-cluster"
|
||||
|
||||
path.data: /var/lib/wazuh-indexer
|
||||
path.logs: /var/log/wazuh-indexer
|
||||
path.repo: /var/lib/wazuh-indexer/snapshots
|
||||
|
||||
plugins.security.ssl.transport.pemcert_filepath: /usr/share/wazuh-indexer/certs/wazuh.indexer.pem
|
||||
plugins.security.ssl.transport.pemkey_filepath: /usr/share/wazuh-indexer/certs/wazuh.indexer.key
|
||||
plugins.security.ssl.transport.pemtrustedcas_filepath: /usr/share/wazuh-indexer/certs/root-ca.pem
|
||||
plugins.security.ssl.transport.enforce_hostname_verification: false
|
||||
plugins.security.ssl.http.enabled: true
|
||||
plugins.security.ssl.http.pemcert_filepath: /usr/share/wazuh-indexer/certs/wazuh.indexer.pem
|
||||
plugins.security.ssl.http.pemkey_filepath: /usr/share/wazuh-indexer/certs/wazuh.indexer.key
|
||||
plugins.security.ssl.http.pemtrustedcas_filepath: /usr/share/wazuh-indexer/certs/root-ca.pem
|
||||
plugins.security.allow_default_init_securityindex: true
|
||||
plugins.security.authcz.admin_dn:
|
||||
- "CN=admin,OU=Wazuh,O=Wazuh,L=California,C=US"
|
||||
plugins.security.check_snapshot_restore_write_privileges: true
|
||||
plugins.security.restapi.roles_enabled:
|
||||
- "all_access"
|
||||
- "security_rest_api_access"
|
||||
plugins.security.system_indices.enabled: true
|
||||
plugins.security.system_indices.indices:
|
||||
- ".opendistro-alerting-config"
|
||||
- ".opendistro-alerting-alert*"
|
||||
- ".opendistro-anomaly-results*"
|
||||
- ".opendistro-anomaly-detector*"
|
||||
- ".opendistro-anomaly-checkpoints"
|
||||
- ".opendistro-anomaly-detection-state"
|
||||
- ".opendistro-reports-*"
|
||||
- ".opendistro-notifications-*"
|
||||
- ".opendistro-notebooks"
|
||||
- ".opendistro-observability"
|
||||
- ".opendistro-asynchronous-search-response*"
|
||||
- ".replication-metadata-store"
|
||||
- ".opensearch-observability"
|
||||
- ".opensearch-notifications-*"
|
||||
- ".opensearch-reports-*"
|
||||
- ".opensearch-anomaly-results*"
|
||||
- ".opensearch-anomaly-detector*"
|
||||
- ".opensearch-anomaly-checkpoints"
|
||||
- ".opensearch-anomaly-detection-state"
|
||||
- ".opensearch-security"
|
||||
- ".wazuh"
|
||||
- ".wazuh-*"
|
||||
- ".plugins-*"
|
||||
|
||||
compatibility.override_main_response_version: true
|
||||
EOF
|
||||
|
||||
cat > config/wazuh_dashboard/opensearch_dashboards.yml <<'EOF'
|
||||
server.host: 0.0.0.0
|
||||
server.port: 5601
|
||||
opensearch.hosts: https://wazuh.indexer:9200
|
||||
opensearch.ssl.verificationMode: certificate
|
||||
opensearch.requestHeadersAllowlist:
|
||||
- securitytenant
|
||||
- Authorization
|
||||
opensearch_security.multitenancy.enabled: false
|
||||
opensearch_security.readonly_mode.roles:
|
||||
- kibana_read_only
|
||||
server.ssl.enabled: true
|
||||
server.ssl.certificate: /usr/share/wazuh-dashboard/certs/wazuh.dashboard.pem
|
||||
server.ssl.key: /usr/share/wazuh-dashboard/certs/wazuh.dashboard-key.pem
|
||||
opensearch.ssl.certificateAuthorities: /usr/share/wazuh-dashboard/certs/root-ca.pem
|
||||
uiSettings.overrides.defaultRoute: /app/wazuh
|
||||
EOF
|
||||
|
||||
cat > config/wazuh_dashboard/wazuh.yml <<'EOF'
|
||||
hosts:
|
||||
- default:
|
||||
url: https://wazuh.manager
|
||||
port: 55000
|
||||
username: wazuh-wui
|
||||
password: MyS3cr37P450r.*-
|
||||
run_as: false
|
||||
EOF
|
||||
|
||||
echo "Configuration files created successfully."
|
||||
Reference in New Issue
Block a user