]> juplo.de Git - website/commitdiff
WIP:wp-uploads
authorKai Moritz <kai@juplo.de>
Sat, 15 Nov 2025 16:01:22 +0000 (17:01 +0100)
committerKai Moritz <kai@juplo.de>
Sat, 15 Nov 2025 16:01:22 +0000 (17:01 +0100)
52 files changed:
wordpress/wp-uploads/2014/02/hama_00054807_stock_recovery-150x150.jpg [new file with mode: 0644]
wordpress/wp-uploads/2014/02/hama_00054807_stock_recovery-300x199.jpg [new file with mode: 0644]
wordpress/wp-uploads/2014/02/hama_00054807_stock_recovery.jpg [new file with mode: 0644]
wordpress/wp-uploads/2014/02/jetty-http.xml [new file with mode: 0644]
wordpress/wp-uploads/2014/02/jetty-https.xml [new file with mode: 0644]
wordpress/wp-uploads/2014/02/jetty-ssl.xml [new file with mode: 0644]
wordpress/wp-uploads/2014/02/jetty.keystore [new file with mode: 0644]
wordpress/wp-uploads/2014/02/jetty.xml [new file with mode: 0644]
wordpress/wp-uploads/2014/03/der-nutzer-ist-nicht-dazu-berechtigt-150x150.png [new file with mode: 0644]
wordpress/wp-uploads/2014/03/der-nutzer-ist-nicht-dazu-berechtigt-300x150.png [new file with mode: 0644]
wordpress/wp-uploads/2014/03/der-nutzer-ist-nicht-dazu-berechtigt.png [new file with mode: 0644]
wordpress/wp-uploads/2015/05/replace-1.html [new file with mode: 0644]
wordpress/wp-uploads/2015/05/replace-2.html [new file with mode: 0644]
wordpress/wp-uploads/2015/06/example-01.html [new file with mode: 0644]
wordpress/wp-uploads/2015/06/example-02.html [new file with mode: 0644]
wordpress/wp-uploads/2015/06/example-03.html [new file with mode: 0644]
wordpress/wp-uploads/2015/06/example-04.html [new file with mode: 0644]
wordpress/wp-uploads/2015/06/example-05.html [new file with mode: 0644]
wordpress/wp-uploads/2015/06/example-06.html [new file with mode: 0644]
wordpress/wp-uploads/2015/06/example-07.html [new file with mode: 0644]
wordpress/wp-uploads/2015/06/example-08.html [new file with mode: 0644]
wordpress/wp-uploads/2015/06/example-09.html [new file with mode: 0644]
wordpress/wp-uploads/2015/06/example-10.html [new file with mode: 0644]
wordpress/wp-uploads/2015/06/example-11.html [new file with mode: 0644]
wordpress/wp-uploads/2015/06/example-12.html [new file with mode: 0644]
wordpress/wp-uploads/2015/06/example-13.html [new file with mode: 0644]
wordpress/wp-uploads/2015/06/example-14.html [new file with mode: 0644]
wordpress/wp-uploads/2020/03/github-example-150x150.jpg [new file with mode: 0644]
wordpress/wp-uploads/2020/03/github-example-300x94.jpg [new file with mode: 0644]
wordpress/wp-uploads/2020/03/github-example-768x241.jpg [new file with mode: 0644]
wordpress/wp-uploads/2020/03/github-example.jpg [new file with mode: 0644]
wordpress/wp-uploads/2020/03/real-life-meme-150x150.png [new file with mode: 0644]
wordpress/wp-uploads/2020/03/real-life-meme-300x297.png [new file with mode: 0644]
wordpress/wp-uploads/2020/03/real-life-meme-768x761.png [new file with mode: 0644]
wordpress/wp-uploads/2020/03/real-life-meme.png [new file with mode: 0644]
wordpress/wp-uploads/2021/02/outbox-pattern-sending-order-150x150.png [new file with mode: 0644]
wordpress/wp-uploads/2021/02/outbox-pattern-sending-order-300x144.png [new file with mode: 0644]
wordpress/wp-uploads/2021/02/outbox-pattern-sending-order.png [new file with mode: 0644]
wordpress/wp-uploads/selfsigned+san/create-ca.sh [new file with mode: 0755]
wordpress/wp-uploads/selfsigned+san/gencert.sh [new file with mode: 0755]
wordpress/wp-uploads/selfsigned+san/jks.txt [new file with mode: 0644]
wordpress/wp-uploads/selfsigned+san/pem.txt [new file with mode: 0644]
wordpress/wp-uploads/selfsigned+san/settings.conf [new file with mode: 0644]
wordpress/wp-uploads/zookeeper+tls/README.sh [new file with mode: 0755]
wordpress/wp-uploads/zookeeper+tls/consumer.config [new file with mode: 0644]
wordpress/wp-uploads/zookeeper+tls/create-certs.sh [new file with mode: 0755]
wordpress/wp-uploads/zookeeper+tls/gencert.sh [new file with mode: 0755]
wordpress/wp-uploads/zookeeper+tls/java.env [new file with mode: 0644]
wordpress/wp-uploads/zookeeper+tls/kafka-1.properties [new file with mode: 0644]
wordpress/wp-uploads/zookeeper+tls/kafka-2.properties [new file with mode: 0644]
wordpress/wp-uploads/zookeeper+tls/producer.config [new file with mode: 0644]
wordpress/wp-uploads/zookeeper+tls/zoo.cfg [new file with mode: 0644]

diff --git a/wordpress/wp-uploads/2014/02/hama_00054807_stock_recovery-150x150.jpg b/wordpress/wp-uploads/2014/02/hama_00054807_stock_recovery-150x150.jpg
new file mode 100644 (file)
index 0000000..5405a78
Binary files /dev/null and b/wordpress/wp-uploads/2014/02/hama_00054807_stock_recovery-150x150.jpg differ
diff --git a/wordpress/wp-uploads/2014/02/hama_00054807_stock_recovery-300x199.jpg b/wordpress/wp-uploads/2014/02/hama_00054807_stock_recovery-300x199.jpg
new file mode 100644 (file)
index 0000000..5528728
Binary files /dev/null and b/wordpress/wp-uploads/2014/02/hama_00054807_stock_recovery-300x199.jpg differ
diff --git a/wordpress/wp-uploads/2014/02/hama_00054807_stock_recovery.jpg b/wordpress/wp-uploads/2014/02/hama_00054807_stock_recovery.jpg
new file mode 100644 (file)
index 0000000..20db95c
Binary files /dev/null and b/wordpress/wp-uploads/2014/02/hama_00054807_stock_recovery.jpg differ
diff --git a/wordpress/wp-uploads/2014/02/jetty-http.xml b/wordpress/wp-uploads/2014/02/jetty-http.xml
new file mode 100644 (file)
index 0000000..7b742cc
--- /dev/null
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
+<!-- ============================================================= -->
+<!-- Configure the Jetty Server instance with an ID "Server"       -->
+<!-- by adding a HTTP connector.                                   -->
+<!-- This configuration must be used in conjunction with jetty.xml -->
+<!-- ============================================================= -->
+<Configure id="Server" class="org.eclipse.jetty.server.Server">
+  <!-- =========================================================== -->
+  <!-- Add a HTTP Connector.                                       -->
+  <!-- Configure an o.e.j.server.ServerConnector with a single     -->
+  <!-- HttpConnectionFactory instance using the common httpConfig  -->
+  <!-- instance defined in jetty.xml                               -->
+  <!--                                                             -->
+  <!-- Consult the javadoc of o.e.j.server.ServerConnector and     -->
+  <!-- o.e.j.server.HttpConnectionFactory for all configuration    -->
+  <!-- that may be set here.                                       -->
+  <!-- =========================================================== -->
+  <Call name="addConnector">
+    <Arg>
+      <New class="org.eclipse.jetty.server.ServerConnector">
+        <Arg name="server"><Ref refid="Server" /></Arg>
+        <Arg name="factories">
+          <Array type="org.eclipse.jetty.server.ConnectionFactory">
+            <Item>
+              <New class="org.eclipse.jetty.server.HttpConnectionFactory">
+                <Arg name="config"><Ref refid="httpConfig" /></Arg>
+              </New>
+            </Item>
+          </Array>
+        </Arg>
+        <Set name="host"><Property name="jetty.host" /></Set>
+        <Set name="port"><Property name="jetty.port" default="8080" /></Set>
+        <Set name="idleTimeout"><Property name="http.timeout" default="30000"/></Set>
+      </New>
+    </Arg>
+  </Call>
+</Configure>
diff --git a/wordpress/wp-uploads/2014/02/jetty-https.xml b/wordpress/wp-uploads/2014/02/jetty-https.xml
new file mode 100644 (file)
index 0000000..9d11217
--- /dev/null
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
+<!-- ============================================================= -->
+<!-- Configure a HTTPS connector.                                  -->
+<!-- This configuration must be used in conjunction with jetty.xml -->
+<!-- and jetty-ssl.xml.                                            -->
+<!-- ============================================================= -->
+<Configure id="Server" class="org.eclipse.jetty.server.Server">
+  <!-- =========================================================== -->
+  <!-- Add a HTTPS Connector.                                      -->
+  <!-- Configure an o.e.j.server.ServerConnector with connection   -->
+  <!-- factories for TLS (aka SSL) and HTTP to provide HTTPS.      -->
+  <!-- All accepted TLS connections are wired to a HTTP connection.-->
+  <!--                                                             -->
+  <!-- Consult the javadoc of o.e.j.server.ServerConnector,        -->
+  <!-- o.e.j.server.SslConnectionFactory and                       -->
+  <!-- o.e.j.server.HttpConnectionFactory for all configuration    -->
+  <!-- that may be set here.                                       -->
+  <!-- =========================================================== -->
+  <Call id="httpsConnector" name="addConnector">
+    <Arg>
+      <New class="org.eclipse.jetty.server.ServerConnector">
+        <Arg name="server"><Ref refid="Server" /></Arg>
+          <Arg name="factories">
+            <Array type="org.eclipse.jetty.server.ConnectionFactory">
+              <Item>
+                <New class="org.eclipse.jetty.server.SslConnectionFactory">
+                  <Arg name="next">http/1.1</Arg>
+                  <Arg name="sslContextFactory"><Ref refid="sslContextFactory"/></Arg>
+                </New>
+              </Item>
+              <Item>
+                <New class="org.eclipse.jetty.server.HttpConnectionFactory">
+                  <Arg name="config"><Ref refid="sslHttpConfig"/></Arg>
+                </New>
+              </Item>
+            </Array>
+          </Arg>
+          <Set name="host"><Property name="jetty.host" /></Set>
+          <Set name="port"><Property name="https.port" default="8443" /></Set>
+          <Set name="idleTimeout"><Property name="https.timeout" default="30000"/></Set>
+        </New>
+    </Arg>
+  </Call>
+</Configure>
diff --git a/wordpress/wp-uploads/2014/02/jetty-ssl.xml b/wordpress/wp-uploads/2014/02/jetty-ssl.xml
new file mode 100644 (file)
index 0000000..760b9ba
--- /dev/null
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
+<!-- ============================================================= -->
+<!-- Configure a TLS (SSL) Context Factory                         -->
+<!-- This configuration must be used in conjunction with jetty.xml -->
+<!-- and either jetty-https.xml or jetty-spdy.xml (but not both)   -->
+<!-- ============================================================= -->
+<Configure id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory">
+  <Set name="KeyStorePath"><Property name="jetty.base" default="." />/<Property name="jetty.keystore" default="src/test/resources/jetty.keystore"/></Set>
+  <Set name="KeyStorePassword"><Property name="jetty.keystore.password" default="secret"/></Set>
+  <Set name="KeyManagerPassword"><Property name="jetty.keymanager.password" default="secret"/></Set>
+  <Set name="TrustStorePath"><Property name="jetty.base" default="." />/<Property name="jetty.truststore" default="src/test/resources/jetty.keystore"/></Set>
+  <Set name="TrustStorePassword"><Property name="jetty.truststore.password" default="secret"/></Set>
+  <Set name="EndpointIdentificationAlgorithm"></Set>
+  <Set name="ExcludeCipherSuites">
+    <Array type="String">
+      <Item>SSL_RSA_WITH_DES_CBC_SHA</Item>
+      <Item>SSL_DHE_RSA_WITH_DES_CBC_SHA</Item>
+      <Item>SSL_DHE_DSS_WITH_DES_CBC_SHA</Item>
+      <Item>SSL_RSA_EXPORT_WITH_RC4_40_MD5</Item>
+      <Item>SSL_RSA_EXPORT_WITH_DES40_CBC_SHA</Item>
+      <Item>SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA</Item>
+      <Item>SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA</Item>
+    </Array>
+  </Set>
+  <!-- =========================================================== -->
+  <!-- Create a TLS specific HttpConfiguration based on the        -->
+  <!-- common HttpConfiguration defined in jetty.xml               -->
+  <!-- Add a SecureRequestCustomizer to extract certificate and    -->
+  <!-- session information                                         -->
+  <!-- =========================================================== -->
+  <New id="sslHttpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
+    <Arg><Ref refid="httpConfig"/></Arg>
+    <Call name="addCustomizer">
+      <Arg><New class="org.eclipse.jetty.server.SecureRequestCustomizer"/></Arg>
+    </Call>
+  </New>
+</Configure>
diff --git a/wordpress/wp-uploads/2014/02/jetty.keystore b/wordpress/wp-uploads/2014/02/jetty.keystore
new file mode 100644 (file)
index 0000000..75b82ef
Binary files /dev/null and b/wordpress/wp-uploads/2014/02/jetty.keystore differ
diff --git a/wordpress/wp-uploads/2014/02/jetty.xml b/wordpress/wp-uploads/2014/02/jetty.xml
new file mode 100644 (file)
index 0000000..cd8962d
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
+<!-- ============================================================= -->
+<!-- Configure the Http Configuration                              -->
+<!-- ============================================================= -->
+<Configure id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
+  <Set name="secureScheme">https</Set>
+  <Set name="securePort"><Property name="jetty.secure.port" default="8443" /></Set>
+  <Set name="outputBufferSize">32768</Set>
+  <Set name="requestHeaderSize">8192</Set>
+  <Set name="responseHeaderSize">8192</Set>
+  <Set name="sendServerVersion">true</Set>
+  <Set name="sendDateHeader">false</Set>
+  <Set name="headerCacheSize">512</Set>
+  <!-- Uncomment to enable handling of X-Forwarded- style headers
+  <Call name="addCustomizer">
+    <Arg><New class="org.eclipse.jetty.server.ForwardedRequestCustomizer"/></Arg>
+  </Call>
+  -->
+</Configure>
diff --git a/wordpress/wp-uploads/2014/03/der-nutzer-ist-nicht-dazu-berechtigt-150x150.png b/wordpress/wp-uploads/2014/03/der-nutzer-ist-nicht-dazu-berechtigt-150x150.png
new file mode 100644 (file)
index 0000000..bd97d57
Binary files /dev/null and b/wordpress/wp-uploads/2014/03/der-nutzer-ist-nicht-dazu-berechtigt-150x150.png differ
diff --git a/wordpress/wp-uploads/2014/03/der-nutzer-ist-nicht-dazu-berechtigt-300x150.png b/wordpress/wp-uploads/2014/03/der-nutzer-ist-nicht-dazu-berechtigt-300x150.png
new file mode 100644 (file)
index 0000000..4326f00
Binary files /dev/null and b/wordpress/wp-uploads/2014/03/der-nutzer-ist-nicht-dazu-berechtigt-300x150.png differ
diff --git a/wordpress/wp-uploads/2014/03/der-nutzer-ist-nicht-dazu-berechtigt.png b/wordpress/wp-uploads/2014/03/der-nutzer-ist-nicht-dazu-berechtigt.png
new file mode 100644 (file)
index 0000000..b466500
Binary files /dev/null and b/wordpress/wp-uploads/2014/03/der-nutzer-ist-nicht-dazu-berechtigt.png differ
diff --git a/wordpress/wp-uploads/2015/05/replace-1.html b/wordpress/wp-uploads/2015/05/replace-1.html
new file mode 100644 (file)
index 0000000..d55a96c
--- /dev/null
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+
+  <meta charset="utf-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+
+  <title>Example how to replace text by a graphic</title>
+
+  <style type="text/css">
+    h1
+    {
+      text-indent: -99em;
+      line-height: 0;
+    }
+    h1:after
+    {
+      display: block;
+      text-indent: 0;
+      content: "blub";
+    }
+  </style>
+</head>
+
+  <body>
+    <h1>Bla</h1>
+  </body>
+
+</html>
diff --git a/wordpress/wp-uploads/2015/05/replace-2.html b/wordpress/wp-uploads/2015/05/replace-2.html
new file mode 100644 (file)
index 0000000..fafe0fd
--- /dev/null
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+
+  <meta charset="utf-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+
+  <title>Example how to replace text by a graphic</title>
+
+  <style type="text/css">
+    h1
+    {
+      text-indent: -99em;
+      line-height: 0;
+    }
+    h1:after
+    {
+      display: block;
+      text-indent: 0;
+      content: url("data:image/svg+xml;base64,PHN2ZyB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMzAuNiIgaGVpZ2h0PSI3MC42IiB2ZXJzaW9uPSIxLjEiPjxzdHlsZT4uczB7ZmlsbDpub25lO308L3N0eWxlPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC05NS4wNDkyMTUsLTM3OS45MDg3OSkiPjx0ZXh0IHhtbDpzcGFjZT0icHJlc2VydmUiIHg9IjMwNC4xIiB5PSI1OTguOCIgc3R5bGU9ImZpbGw6IzAwMDtmb250LWZhbWlseTpTYW5zO2ZvbnQtc2l6ZTo0MDtsZXR0ZXItc3BhY2luZzowO2xpbmUtaGVpZ2h0OjEyNTt3b3JkLXNwYWNpbmc6MCI+PHRzcGFuIHg9IjMwNC4xIiB5PSI1OTguOCIvPjwvdGV4dD48cGF0aCBkPSJtOTUgMzc5LjljMCAyNS41IDAgNDggMCA3MC42IDQ1LjkgMCA5MC4xIDAgMTMwLjYgMCAwLTIxLjggMC00My41IDAtNjUuM2wwLTUuM2MtNDQuOSAwLTg5IDAtMTMwLjYgMHptMTguMiAxMC42IDM0LjMgMC0xNy4yIDE3LjJ6bTUyLjUgMCA0OS40IDAgMCA0OS40LTQ5LjQgMHptMjQuNyA2Yy0xMC4zIDAtMTguNyA4LjQtMTguNyAxOC43IDAgMTAuMyA4LjQgMTguNyAxOC43IDE4LjcgMTAuMyAwIDE4LjctOC40IDE4LjctMTguNyAwLTEwLjMtOC40LTE4LjctMTguNy0xOC43em0tODQuNyAxLjVjOC4yIDguMiAxNi41IDE2LjUgMjQuNyAyNC43IDguMi04LjIgMTYuNS0xNi41IDI0LjctMjQuN2wwIDQxLjktNDkuNCAwem04NC43IDkuMWM0LjUgMCA4LjEgMy42IDguMSA4LjEgMCA0LjUtMy41IDguMS04LjEgOC4xLTQuNSAwLTguMS0zLjUtOC4xLTguMSAwLTQuNSAzLjUtOC4xIDguMS04LjF6IiBzdHlsZT0iLWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpTYW5zO2Jhc2VsaW5lLXNoaWZ0OmJhc2VsaW5lO2Jsb2NrLXByb2dyZXNzaW9uOnRiO2RpcmVjdGlvbjpsdHI7ZmlsbDojMDAwO2ZvbnQtZmFtaWx5OlNhbnM7Zm9udC1zaXplOm1lZGl1bTtsZXR0ZXItc3BhY2luZzpub3JtYWw7bGluZS1oZWlnaHQ6bm9ybWFsO3RleHQtYWxpZ246c3RhcnQ7dGV4dC1hbmNob3I6c3RhcnQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dGV4dC1pbmRlbnQ6MDt0ZXh0LXRyYW5zZm9ybTpub25lO3dvcmQtc3BhY2luZzpub3JtYWw7d3JpdGluZy1tb2RlOmxyLXRiIi8+PHJlY3Qgd2lkdGg9IjEzMC42IiBoZWlnaHQ9IjcwLjYiIHg9Ijk1IiB5PSIzNzkuOSIgZmlsbD0ibm9uZSIvPjxyZWN0IHdpZHRoPSI1LjciIGhlaWdodD0iNzcuNSIgeD0iMTYwIiB5PSIzNjIuNCIgZmlsbD0ibm9uZSIvPjxyZWN0IHdpZHRoPSI2NS43IiBoZWlnaHQ9IjE3LjUiIHg9IjE2MCIgeT0iMzYyLjQiIGZpbGw9Im5vbmUiLz48L2c+PC9zdmc+");
+    }
+  </style>
+</head>
+
+  <body>
+    <h1>mo</h1>
+  </body>
+
+</html>
diff --git a/wordpress/wp-uploads/2015/06/example-01.html b/wordpress/wp-uploads/2015/06/example-01.html
new file mode 100644 (file)
index 0000000..9a4e40c
--- /dev/null
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<title>Example 01</title>
+<header>
+  <h2>Header</h2>
+  <nav>Navigation</nav>
+</header>
+<main>
+  <h1>Main</h1>
+  <section>
+    <h2>Section I</h2>
+  </section>
+  <section>
+    <h2>Section II</h2>
+    <section>
+      <h3>Subsection a</h3>
+    </section>
+    <section>
+      <h3>Subsection b</h3>
+    </section>
+  </section>
+  <section>
+    <h2>Section III</h2>
+    <section>
+      <h3>Subsection a</h3>
+    </section>
+  </section>
+</main>
+<aside>
+  <h1>Aside</h1>
+</aside>
+<footer>
+  <h2>Footer</h2>
+</footer>
diff --git a/wordpress/wp-uploads/2015/06/example-02.html b/wordpress/wp-uploads/2015/06/example-02.html
new file mode 100644 (file)
index 0000000..b403e3f
--- /dev/null
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<title>Example 02</title>
+<header>
+  <h2>Header</h2>
+  <nav>
+    <header><h3>Navigation</h3></header>
+  </nav>
+</header>
+<main>
+  <header><h1>Main</h1></header>
+  <section>
+    <header><h2>Section I</h2></header>
+  </section>
+  <section>
+    <header><h2>Section II</h2></header>
+    <section>
+      <header><h3>Subsection a</h3></header>
+    </section>
+    <section>
+      <header><h3>Subsection b</h3></header>
+    </section>
+  </section>
+  <section>
+    <header><h2>Section III</h2></header>
+    <section>
+      <header><h3>Subsection a</h3></header>
+    </section>
+  </section>
+</main>
+<aside>
+  <header><h1>Aside</h1></header>
+</aside>
+<footer>
+  <header><h2>Footer</h2></header>
+</footer>
diff --git a/wordpress/wp-uploads/2015/06/example-03.html b/wordpress/wp-uploads/2015/06/example-03.html
new file mode 100644 (file)
index 0000000..c19622b
--- /dev/null
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<title>Example 03</title>
+<header>
+  <h2>Header</h2>
+  <nav>
+    <header><h3>Navigation</h333></header>
+  </nav>
+</header>
+<article>
+  <header><h1>Article (Main)</h1></header>
+  <section>
+    <header><h2>Section I</h2></header>
+  </section>
+  <section>
+    <header><h2>Section II</h2></header>
+    <section>
+      <header><h3>Subsection a</h3></header>
+    </section>
+    <section>
+      <header><h3>Subsection b</h3></header>
+    </section>
+  </section>
+  <section>
+    <header><h2>Section III</h2></header>
+    <section>
+      <header><h3>Subsection a</h3></header>
+    </section>
+  </section>
+</article>
+<aside>
+  <header><h1>Aside</h1></header>
+</aside>
+<footer>
+  <header><h2>Footer</h2></header>
+</footer>
diff --git a/wordpress/wp-uploads/2015/06/example-04.html b/wordpress/wp-uploads/2015/06/example-04.html
new file mode 100644 (file)
index 0000000..2bcc8ca
--- /dev/null
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<title>Example 04</title>
+<article>
+  Main
+  <section>
+    Section I
+  </section>
+  <section>
+    Section II
+    <section>
+      Subsection a
+    </section>
+    <section>
+      Subsection b
+    </section>
+  </section>
+  <section>
+    Section III
+    <section>
+      Subsection a
+    </section>
+  </section>
+</main>
diff --git a/wordpress/wp-uploads/2015/06/example-05.html b/wordpress/wp-uploads/2015/06/example-05.html
new file mode 100644 (file)
index 0000000..03333d8
--- /dev/null
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<title>Example 05</title>
+<h1>Page</h1>
+<article>
+  <h1>Article</h1>
+  <section>
+    <h1>Section I</h1>
+  </section>
+  <section>
+    <h1>Section II</h1>
+    <section>
+      <h1>Subsection a</h1>
+    </section>
+    <section>
+      <h1>Subsection b</h1>
+    </section>
+  </section>
+  <section>
+    <h1>Section III</h1>
+    <section>
+      <h1>Subsection a</h1>
+    </section>
+  </section>
+</article>
diff --git a/wordpress/wp-uploads/2015/06/example-06.html b/wordpress/wp-uploads/2015/06/example-06.html
new file mode 100644 (file)
index 0000000..39d2775
--- /dev/null
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<title>Example 06</title>
+<header>Page</header>
+<main>Main</main>
+<footer>Footer</footer>
diff --git a/wordpress/wp-uploads/2015/06/example-07.html b/wordpress/wp-uploads/2015/06/example-07.html
new file mode 100644 (file)
index 0000000..ca18ec1
--- /dev/null
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<title>Example 07</title>
+<header><h2>Page</h2></header>
+<main><h1>Main</h1></main>
+<footer><h3>Footer</h3></footer>
diff --git a/wordpress/wp-uploads/2015/06/example-08.html b/wordpress/wp-uploads/2015/06/example-08.html
new file mode 100644 (file)
index 0000000..39bb0a9
--- /dev/null
@@ -0,0 +1,9 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+  <head><title>Example 08</title></head>
+  <body>
+    <div class="header"><h2>Page</h2></div>
+    <div class="main"><h1>Main</h1></div>
+    <div class="footer"><h3>Footer</h3></div>
+  </body>
+</html>
diff --git a/wordpress/wp-uploads/2015/06/example-09.html b/wordpress/wp-uploads/2015/06/example-09.html
new file mode 100644 (file)
index 0000000..5b90f0d
--- /dev/null
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<title>Example 09</title>
+<h4>h4</h4>
+<h2>h2</h2>
+<h4>h4</h4>
+<h3>h3</h3>
+<h2>h2</h2>
+<h1>h1</h1>
+<h2>h2</h2>
+<h3>h3</h3>
diff --git a/wordpress/wp-uploads/2015/06/example-10.html b/wordpress/wp-uploads/2015/06/example-10.html
new file mode 100644 (file)
index 0000000..097d9d5
--- /dev/null
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<title>Example 10</title>
+<header>
+  <section>
+    <h2>Header</h2>
+  </section>
+</header>
+<main>
+  <article>
+    <h1>Main</h1>
+    <section>
+      <h2>Section I</h2>
+    </section>
+    <section>
+      <h2>Section II</h2>
+      <section>
+        <h3>Subsection a</h3>
+      </section>
+      <section>
+        <h3>Subsection b</h3>
+      </section>
+    </section>
+    <section>
+      <h2>Section III</h2>
+      <section>
+        <h3>Subsection a</h3>
+      </section>
+    </section>
+  </article>
+</main>
+<footer>
+  <section>
+    <h3>Footer</h3>
+  </section>
+</footer>
diff --git a/wordpress/wp-uploads/2015/06/example-11.html b/wordpress/wp-uploads/2015/06/example-11.html
new file mode 100644 (file)
index 0000000..929d5c0
--- /dev/null
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<title>Example 11</title>
+<header>
+  <h2>Page</h2>
+  <section>
+    <h3>Header</h3>
+  </section>
+</header>
+<main>
+  <article>
+    <h1>Main</h1>
+    <section>
+      <h2>Section I</h2>
+    </section>
+    <section>
+      <h2>Section II</h2>
+      <section>
+        <h3>Subsection a</h3>
+      </section>
+      <section>
+        <h3>Subsection b</h3>
+      </section>
+    </section>
+    <section>
+      <h2>Section III</h2>
+      <section>
+        <h3>Subsection a</h3>
+      </section>
+    </section>
+  </article>
+</main>
+<footer>
+  <section>
+    <h3>Footer</h3>
+  </section>
+</footer>
diff --git a/wordpress/wp-uploads/2015/06/example-12.html b/wordpress/wp-uploads/2015/06/example-12.html
new file mode 100644 (file)
index 0000000..4b1ccd4
--- /dev/null
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<title>Example 12</title>
+<header>
+  <h1>Page</h1>
+  <nav><h1>Navigation</h1></nav>
+</header>
+<main><h1>Main</h1></main>
+<aside><h1>Aside</h1></aside>
+<footer><h1>Footer</h1></footer>
diff --git a/wordpress/wp-uploads/2015/06/example-13.html b/wordpress/wp-uploads/2015/06/example-13.html
new file mode 100644 (file)
index 0000000..ac8209e
--- /dev/null
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<title>Example 13</title>
+<header>
+  Page
+  <nav>Navigation</nav>
+</header>
+<main>Main</main>
+<aside>Aside</aside>
+<footer>Footer</footer>
diff --git a/wordpress/wp-uploads/2015/06/example-14.html b/wordpress/wp-uploads/2015/06/example-14.html
new file mode 100644 (file)
index 0000000..d3c1a28
--- /dev/null
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<title>Example 14</title>
+<header>
+  <h2>Page</h2>
+  <section>
+    <h3>Header</h3>
+    <nav><h4>Navigation</h4></nav>
+  </section>
+</header>
+<main>
+  <article>
+    <h1>Main</h1>
+    <section>
+      <h2>Section I</h2>
+    </section>
+    <section>
+      <h2>Section II</h2>
+      <section>
+        <h3>Subsection a</h3>
+      </section>
+      <section>
+        <h3>Subsection b</h3>
+      </section>
+    </section>
+    <section>
+      <h2>Section III</h2>
+      <section>
+        <h3>Subsection a</h3>
+      </section>
+    </section>
+  </article>
+</main>
+<aside><h3>Aside</h3></aside>
+<footer>
+  <section>
+    <h3>Footer</h3>
+  </section>
+</footer>
diff --git a/wordpress/wp-uploads/2020/03/github-example-150x150.jpg b/wordpress/wp-uploads/2020/03/github-example-150x150.jpg
new file mode 100644 (file)
index 0000000..8bbece4
Binary files /dev/null and b/wordpress/wp-uploads/2020/03/github-example-150x150.jpg differ
diff --git a/wordpress/wp-uploads/2020/03/github-example-300x94.jpg b/wordpress/wp-uploads/2020/03/github-example-300x94.jpg
new file mode 100644 (file)
index 0000000..45ac6ba
Binary files /dev/null and b/wordpress/wp-uploads/2020/03/github-example-300x94.jpg differ
diff --git a/wordpress/wp-uploads/2020/03/github-example-768x241.jpg b/wordpress/wp-uploads/2020/03/github-example-768x241.jpg
new file mode 100644 (file)
index 0000000..0c12310
Binary files /dev/null and b/wordpress/wp-uploads/2020/03/github-example-768x241.jpg differ
diff --git a/wordpress/wp-uploads/2020/03/github-example.jpg b/wordpress/wp-uploads/2020/03/github-example.jpg
new file mode 100644 (file)
index 0000000..36ed859
Binary files /dev/null and b/wordpress/wp-uploads/2020/03/github-example.jpg differ
diff --git a/wordpress/wp-uploads/2020/03/real-life-meme-150x150.png b/wordpress/wp-uploads/2020/03/real-life-meme-150x150.png
new file mode 100644 (file)
index 0000000..949ee0c
Binary files /dev/null and b/wordpress/wp-uploads/2020/03/real-life-meme-150x150.png differ
diff --git a/wordpress/wp-uploads/2020/03/real-life-meme-300x297.png b/wordpress/wp-uploads/2020/03/real-life-meme-300x297.png
new file mode 100644 (file)
index 0000000..e285b14
Binary files /dev/null and b/wordpress/wp-uploads/2020/03/real-life-meme-300x297.png differ
diff --git a/wordpress/wp-uploads/2020/03/real-life-meme-768x761.png b/wordpress/wp-uploads/2020/03/real-life-meme-768x761.png
new file mode 100644 (file)
index 0000000..5dd7a3d
Binary files /dev/null and b/wordpress/wp-uploads/2020/03/real-life-meme-768x761.png differ
diff --git a/wordpress/wp-uploads/2020/03/real-life-meme.png b/wordpress/wp-uploads/2020/03/real-life-meme.png
new file mode 100644 (file)
index 0000000..7bb414d
Binary files /dev/null and b/wordpress/wp-uploads/2020/03/real-life-meme.png differ
diff --git a/wordpress/wp-uploads/2021/02/outbox-pattern-sending-order-150x150.png b/wordpress/wp-uploads/2021/02/outbox-pattern-sending-order-150x150.png
new file mode 100644 (file)
index 0000000..c5ba406
Binary files /dev/null and b/wordpress/wp-uploads/2021/02/outbox-pattern-sending-order-150x150.png differ
diff --git a/wordpress/wp-uploads/2021/02/outbox-pattern-sending-order-300x144.png b/wordpress/wp-uploads/2021/02/outbox-pattern-sending-order-300x144.png
new file mode 100644 (file)
index 0000000..d6a07d2
Binary files /dev/null and b/wordpress/wp-uploads/2021/02/outbox-pattern-sending-order-300x144.png differ
diff --git a/wordpress/wp-uploads/2021/02/outbox-pattern-sending-order.png b/wordpress/wp-uploads/2021/02/outbox-pattern-sending-order.png
new file mode 100644 (file)
index 0000000..5e55c73
Binary files /dev/null and b/wordpress/wp-uploads/2021/02/outbox-pattern-sending-order.png differ
diff --git a/wordpress/wp-uploads/selfsigned+san/create-ca.sh b/wordpress/wp-uploads/selfsigned+san/create-ca.sh
new file mode 100755 (executable)
index 0000000..8f2eaaf
--- /dev/null
@@ -0,0 +1,39 @@
+#!/bin/bash
+#
+# Example-script to show, how to set up a self-signed CA
+#
+# Usage:
+# ./create-ca.sh PASSWORD VALIDITY
+
+. settings.conf
+
+if [ -z "$1" ]
+then
+  PASSWORD=$DEFAULT_PASSWORD
+else
+  PASSWORD="$1"
+fi
+
+if [ -z "$2" ]
+then
+  VALIDITY=$DEFAULT_VALIDITY
+else
+  VALIDITY="$2"
+fi
+
+if [ -a ca-cert ]
+then
+  echo "The root-certificate for the CA already exists..."
+else
+  echo "Creating a x509-certificate for the CA..."
+  openssl req -new -x509 -subj "/C=$C/ST=$ST/L=$L/O=$O/OU=$OU/CN=Root-CA" -keyout ca-key -out ca-cert -days $VALIDITY -passout pass:$PASSWORD
+fi
+#
+
+if [ -a truststore.p12 ]
+then
+  echo "The keystore truststore.jks already exists!"
+else
+  echo "Importing the root-certificate of the CA into truststore.jks..."
+  keytool -keystore truststore.p12 -storetype pkcs12 -storepass $PASSWORD -alias CARoot -import -file ca-cert -noprompt
+fi
diff --git a/wordpress/wp-uploads/selfsigned+san/gencert.sh b/wordpress/wp-uploads/selfsigned+san/gencert.sh
new file mode 100755 (executable)
index 0000000..a62a6d9
--- /dev/null
@@ -0,0 +1,64 @@
+#!/bin/bash
+#
+# Example-script to show, how to create and sign a selfsigned certificate, that
+# contains multiple DNS-entries (SAN-extension)
+#
+# Usage:
+# ./gencert.sh CN [CA_PASSWORD [KEYSTORE_PASSWORD [VALIDITY]]]
+
+
+. settings.conf
+
+if [ -z "$1" ];
+then
+  echo "CN must not be empty!"
+  echo "$0 CN [CA_PASSWORD [KEYSTORE_PASSWORD [VALIDITY]]]"
+  exit;
+fi
+
+if [ -a $1.p12 ];
+then
+  echo "The keystore $1.jks already exists";
+  exit;
+fi
+
+
+if [ -z "$2" ]
+then
+  CA_PASSWORD=$DEFAULT_PASSWORD
+else
+  CA_PASSWORD="$2"
+fi
+
+if [ -z "$3" ]
+then
+  KEYSTORE_PASSWORD=$DEFAULT_PASSWORD
+else
+  KEYSTORE_PASSWORD="$3"
+fi
+
+if [ -z "$4" ]
+then
+  VALIDITY=365
+else
+  VALIDITY="$4"
+fi
+
+
+echo "Creating keystore $1.jks with a certificate and a key-pair for CN $1"
+keytool -keystore $1.p12 -storetype pkcs12 -alias $1 -validity $VALIDITY -genkey -storepass $KEYSTORE_PASSWORD -dname "CN=$1,OU=$OU,O=$O,L=$L,ST=$ST,C=$C"
+
+echo "Creating a Certificate-Signing-Request for the generated certificate"
+keytool -keystore $1.p12 -storetype pkcs12 -alias $1 -certreq -file cert-file -storepass $KEYSTORE_PASSWORD
+
+echo "Signing the Certificate-Signing-Request and adding an additional DNS-entry for localhost"
+openssl x509 -req -CA ca-cert -CAkey ca-key -in cert-file -out $1.pem -days $VALIDITY -CAcreateserial -passin pass:$CA_PASSWORD -extensions SAN -extfile <(printf "\n[SAN]\nsubjectAltName=DNS:$1,DNS:localhost")
+
+echo "Importing the root-certificate for the CA into the keystore $1.jks"
+keytool -keystore $1.p12 -storetype pkcs12 -alias ca-root -import -file ca-cert -storepass $KEYSTORE_PASSWORD -noprompt
+
+echo "Importing the signed certificate for CN $1 into the keystore $1.jks"
+keytool -keystore $1.p12 -storetype pkcs12 -alias $1 -import -file $1.pem -storepass $KEYSTORE_PASSWORD
+
+echo "Removing obsolet files..."
+rm -v cert-file
diff --git a/wordpress/wp-uploads/selfsigned+san/jks.txt b/wordpress/wp-uploads/selfsigned+san/jks.txt
new file mode 100644 (file)
index 0000000..e6aa425
--- /dev/null
@@ -0,0 +1,120 @@
+Keystore-Typ: jks
+Keystore-Provider: SUN
+
+Keystore enthält 2 Einträge
+
+Aliasname: ca-root
+Erstellungsdatum: 26.06.2019
+Eintragstyp: trustedCertEntry
+
+Eigentümer: CN=Root-CA, OU=security, O=juplo, L=Juist, ST=Niedersachsen, C=DE
+Aussteller: CN=Root-CA, OU=security, O=juplo, L=Juist, ST=Niedersachsen, C=DE
+Seriennummer: 8c62092a6d59c829
+Gültig von: Wed Jun 26 10:26:50 CEST 2019 bis: Thu Jun 25 10:26:50 CEST 2020
+Zertifikatfingerprints:
+        MD5: EE:55:36:1F:19:7A:01:58:3F:54:C3:8B:BF:D9:3C:36
+        SHA1: 3B:D6:01:F1:A1:9D:B1:6E:CA:4D:E7:FA:A6:C1:A1:3A:D8:CA:FD:0C
+        SHA256: 38:5F:6E:2A:E4:25:8A:54:31:57:91:5C:34:FA:E6:9A:E0:1A:2A:27:8C:D7:E5:B0:FB:8B:D7:1A:F6:79:CC:5E
+Signaturalgorithmusname: SHA256withRSA
+Algorithmus des Public Key von Betreff: 2048-Bit-RSA-Schlüssel
+Version: 3
+
+Erweiterungen: 
+
+#1: ObjectId: 2.5.29.35 Criticality=false
+AuthorityKeyIdentifier [
+KeyIdentifier [
+0000: 9D 29 BD 63 D1 D7 C1 98   26 E4 47 3E 27 6A DE AC  .).c....&.G>'j..
+0010: ED 8A 75 2F                                        ..u/
+]
+]
+
+#2: ObjectId: 2.5.29.19 Criticality=false
+BasicConstraints:[
+  CA:true
+  PathLen:2147483647
+]
+
+#3: ObjectId: 2.5.29.14 Criticality=false
+SubjectKeyIdentifier [
+KeyIdentifier [
+0000: 9D 29 BD 63 D1 D7 C1 98   26 E4 47 3E 27 6A DE AC  .).c....&.G>'j..
+0010: ED 8A 75 2F                                        ..u/
+]
+]
+
+
+
+*******************************************
+*******************************************
+
+
+Aliasname: test
+Erstellungsdatum: 26.06.2019
+Eintragstyp: PrivateKeyEntry
+Zertifikatskettenlänge: 2
+Zertifikat[1]:
+Eigentümer: CN=test, OU=security, O=juplo, L=Juist, ST=Niedersachsen, C=DE
+Aussteller: CN=Root-CA, OU=security, O=juplo, L=Juist, ST=Niedersachsen, C=DE
+Seriennummer: b75834de7e0b9b26
+Gültig von: Wed Jun 26 10:27:23 CEST 2019 bis: Thu Jun 25 10:27:23 CEST 2020
+Zertifikatfingerprints:
+        MD5: 3F:3E:46:A4:45:28:18:3C:E4:C3:11:6B:6A:AC:88:94
+        SHA1: 24:27:02:2F:6A:68:32:EA:5F:9D:53:C5:28:65:F7:FC:6D:5D:BC:B7
+        SHA256: 7C:2B:D4:36:06:0C:69:4E:93:75:0F:F9:9C:D8:9D:DD:02:50:14:72:49:95:E3:AC:4C:B4:7A:E6:CE:9D:05:D5
+Signaturalgorithmusname: SHA256withRSA
+Algorithmus des Public Key von Betreff: 2048-Bit-DSA-Schlüssel
+Version: 3
+
+Erweiterungen: 
+
+#1: ObjectId: 2.5.29.17 Criticality=false
+SubjectAlternativeName [
+  DNSName: test
+  DNSName: localhost
+  IPAddress: 127.0.0.1
+]
+
+Zertifikat[2]:
+Eigentümer: CN=Root-CA, OU=security, O=juplo, L=Juist, ST=Niedersachsen, C=DE
+Aussteller: CN=Root-CA, OU=security, O=juplo, L=Juist, ST=Niedersachsen, C=DE
+Seriennummer: 8c62092a6d59c829
+Gültig von: Wed Jun 26 10:26:50 CEST 2019 bis: Thu Jun 25 10:26:50 CEST 2020
+Zertifikatfingerprints:
+        MD5: EE:55:36:1F:19:7A:01:58:3F:54:C3:8B:BF:D9:3C:36
+        SHA1: 3B:D6:01:F1:A1:9D:B1:6E:CA:4D:E7:FA:A6:C1:A1:3A:D8:CA:FD:0C
+        SHA256: 38:5F:6E:2A:E4:25:8A:54:31:57:91:5C:34:FA:E6:9A:E0:1A:2A:27:8C:D7:E5:B0:FB:8B:D7:1A:F6:79:CC:5E
+Signaturalgorithmusname: SHA256withRSA
+Algorithmus des Public Key von Betreff: 2048-Bit-RSA-Schlüssel
+Version: 3
+
+Erweiterungen: 
+
+#1: ObjectId: 2.5.29.35 Criticality=false
+AuthorityKeyIdentifier [
+KeyIdentifier [
+0000: 9D 29 BD 63 D1 D7 C1 98   26 E4 47 3E 27 6A DE AC  .).c....&.G>'j..
+0010: ED 8A 75 2F                                        ..u/
+]
+]
+
+#2: ObjectId: 2.5.29.19 Criticality=false
+BasicConstraints:[
+  CA:true
+  PathLen:2147483647
+]
+
+#3: ObjectId: 2.5.29.14 Criticality=false
+SubjectKeyIdentifier [
+KeyIdentifier [
+0000: 9D 29 BD 63 D1 D7 C1 98   26 E4 47 3E 27 6A DE AC  .).c....&.G>'j..
+0010: ED 8A 75 2F                                        ..u/
+]
+]
+
+
+
+*******************************************
+*******************************************
+
+
diff --git a/wordpress/wp-uploads/selfsigned+san/pem.txt b/wordpress/wp-uploads/selfsigned+san/pem.txt
new file mode 100644 (file)
index 0000000..b5ac413
--- /dev/null
@@ -0,0 +1,123 @@
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 13211367637093423910 (0xb75834de7e0b9b26)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=DE, ST=Niedersachsen, L=Juist, O=juplo, OU=security, CN=Root-CA
+        Validity
+            Not Before: Jun 26 08:27:23 2019 GMT
+            Not After : Jun 25 08:27:23 2020 GMT
+        Subject: C=DE, ST=Niedersachsen, L=Juist, O=juplo, OU=security, CN=test
+        Subject Public Key Info:
+            Public Key Algorithm: dsaEncryption
+                pub: 
+                    00:8d:f8:cc:68:da:ab:56:e0:30:b1:cf:68:49:6f:
+                    ff:30:ba:fe:b6:63:c7:7f:70:e4:db:f4:c1:b5:7d:
+                    90:34:58:a1:93:2a:90:cc:19:2f:eb:e8:f9:81:1d:
+                    19:a4:ad:18:23:b1:5e:94:27:a3:1d:87:60:6a:d6:
+                    44:b1:40:d2:86:e7:53:3e:95:86:ec:c6:3f:2a:f5:
+                    6a:2a:79:40:08:d9:a9:c9:04:83:3f:65:6b:81:75:
+                    5d:ec:78:3d:df:a5:0f:49:98:9a:ef:98:b3:c9:8e:
+                    61:ee:b2:c1:e5:08:4a:13:20:d6:5b:33:0e:bd:38:
+                    e5:cb:f7:dc:7c:43:bb:fc:33:a4:b0:81:8b:3c:24:
+                    10:0f:8f:d6:fe:8c:52:05:1d:07:8f:f7:06:86:e8:
+                    77:20:32:b6:ec:26:cf:19:e1:aa:48:66:ba:d4:be:
+                    8b:7d:e3:a9:3b:45:ca:fc:18:04:19:ec:53:f1:86:
+                    9b:b3:0b:c0:86:8a:ca:47:01:02:8e:ba:91:54:89:
+                    9e:43:d5:0a:73:47:31:36:39:2e:26:07:92:a7:5d:
+                    26:cd:2c:2a:b3:aa:97:d1:65:34:8f:2a:fc:1a:19:
+                    7f:03:b7:ca:88:0f:73:31:bf:0c:d1:8d:9a:3c:d7:
+                    a1:56:76:ee:f0:ad:f3:77:2f:0b:2a:d6:c9:8b:70:
+                    27:cd
+                P:   
+                    00:8f:79:35:d9:b9:aa:e9:bf:ab:ed:88:7a:cf:49:
+                    51:b6:f3:2e:c5:9e:3b:af:37:18:e8:ea:c4:96:1f:
+                    3e:fd:36:06:e7:43:51:a9:c4:18:33:39:b8:09:e7:
+                    c2:ae:1c:53:9b:a7:47:5b:85:d0:11:ad:b8:b4:79:
+                    87:75:49:84:69:5c:ac:0e:8f:14:b3:36:08:28:a2:
+                    2f:fa:27:11:0a:3d:62:a9:93:45:34:09:a0:fe:69:
+                    6c:46:58:f8:4b:dd:20:81:9c:37:09:a0:10:57:b1:
+                    95:ad:cd:00:23:3d:ba:54:84:b6:29:1f:9d:64:8e:
+                    f8:83:44:86:77:97:9c:ec:04:b4:34:a6:ac:2e:75:
+                    e9:98:5d:e2:3d:b0:29:2f:c1:11:8c:9f:fa:9d:81:
+                    81:e7:33:8d:b7:92:b7:30:d7:b9:e3:49:59:2f:68:
+                    09:98:72:15:39:15:ea:3d:6b:8b:46:53:c6:33:45:
+                    8f:80:3b:32:a4:c2:e0:f2:72:90:25:6e:4e:3f:8a:
+                    3b:08:38:a1:c4:50:e4:e1:8c:1a:29:a3:7d:df:5e:
+                    a1:43:de:4b:66:ff:04:90:3e:d5:cf:16:23:e1:58:
+                    d4:87:c6:08:e9:7f:21:1c:d8:1d:ca:23:cb:6e:38:
+                    07:65:f8:22:e3:42:be:48:4c:05:76:39:39:60:1c:
+                    d6:67
+                Q:   
+                    00:ba:f6:96:a6:85:78:f7:df:de:e7:fa:67:c9:77:
+                    c7:85:ef:32:b2:33:ba:e5:80:c0:bc:d5:69:5d
+                G:   
+                    16:a6:5c:58:20:48:50:70:4e:75:02:a3:97:57:04:
+                    0d:34:da:3a:34:78:c1:54:d4:e4:a5:c0:2d:24:2e:
+                    e0:4f:96:e6:1e:4b:d0:90:4a:bd:ac:8f:37:ee:b1:
+                    e0:9f:31:82:d2:3c:90:43:cb:64:2f:88:00:41:60:
+                    ed:f9:ca:09:b3:20:76:a7:9c:32:a6:27:f2:47:3e:
+                    91:87:9b:a2:c4:e7:44:bd:20:81:54:4c:b5:5b:80:
+                    2c:36:8d:1f:a8:3e:d4:89:e9:4e:0f:a0:68:8e:32:
+                    42:8a:5c:78:c4:78:c6:8d:05:27:b7:1c:9a:3a:bb:
+                    0b:0b:e1:2c:44:68:96:39:e7:d3:ce:74:db:10:1a:
+                    65:aa:2b:87:f6:4c:68:26:db:3e:c7:2f:4b:55:99:
+                    83:4b:b4:ed:b0:2f:7c:90:e9:a4:96:d3:a5:5d:53:
+                    5b:eb:fc:45:d4:f6:19:f6:3f:3d:ed:bb:87:39:25:
+                    c2:f2:24:e0:77:31:29:6d:a8:87:ec:1e:47:48:f8:
+                    7e:fb:5f:de:b7:54:84:31:6b:22:32:de:e5:53:dd:
+                    af:02:11:2b:0d:1f:02:da:30:97:32:24:fe:27:ae:
+                    da:8b:9d:4b:29:22:d9:ba:8b:e3:9e:d9:e1:03:a6:
+                    3c:52:81:0b:c6:88:b7:e2:ed:43:16:e1:ef:17:db:
+                    de
+        X509v3 extensions:
+            X509v3 Subject Alternative Name: 
+                DNS:test, DNS:localhost, IP Address:127.0.0.1
+    Signature Algorithm: sha256WithRSAEncryption
+         60:80:c4:5e:7d:c6:cf:88:94:14:69:8d:c2:d7:ce:af:b4:97:
+         1c:08:9b:ff:65:db:77:24:c5:8a:87:1e:6f:30:70:71:a1:c5:
+         ac:af:67:49:ce:b0:91:b9:5a:55:27:12:49:72:be:7d:f5:45:
+         12:ff:32:1a:ee:b1:f9:44:cd:62:1f:20:48:ac:0f:5a:f4:c7:
+         b0:1b:05:b0:84:20:fe:da:6d:73:92:da:32:f6:77:3c:df:07:
+         5b:da:fd:c3:f3:6f:08:e8:4d:3e:ba:35:b2:a8:cc:a5:b3:9c:
+         5c:61:c0:cb:35:ea:fe:c8:d2:e7:d3:ea:e0:0e:3b:7d:fb:22:
+         60:e6:96:34:af:a4:bc:cb:70:e0:60:75:f9:93:0d:31:f1:60:
+         aa:50:34:8a:87:50:13:d1:8a:db:ee:d9:59:17:25:d9:b2:ad:
+         55:14:09:92:9a:80:54:70:01:9f:65:ed:bf:e5:10:65:f5:8b:
+         b8:7c:72:48:65:72:60:56:d8:de:b3:9f:90:9a:58:a4:ed:eb:
+         27:b2:a1:ae:90:52:0f:a4:d6:52:bd:36:b1:bb:d1:49:54:d1:
+         df:d9:1a:92:55:4a:56:e1:47:e7:f2:7e:52:c6:64:68:db:70:
+         87:cc:a5:ed:e7:fe:93:5b:bc:21:57:c9:02:06:0c:2b:c5:5d:
+         29:57:95:76
+-----BEGIN CERTIFICATE-----
+MIIFmTCCBIGgAwIBAgIJALdYNN5+C5smMA0GCSqGSIb3DQEBCwUAMGoxCzAJBgNV
+BAYTAkRFMRYwFAYDVQQIDA1OaWVkZXJzYWNoc2VuMQ4wDAYDVQQHDAVKdWlzdDEO
+MAwGA1UECgwFanVwbG8xETAPBgNVBAsMCHNlY3VyaXR5MRAwDgYDVQQDDAdSb290
+LUNBMB4XDTE5MDYyNjA4MjcyM1oXDTIwMDYyNTA4MjcyM1owZzELMAkGA1UEBhMC
+REUxFjAUBgNVBAgTDU5pZWRlcnNhY2hzZW4xDjAMBgNVBAcTBUp1aXN0MQ4wDAYD
+VQQKEwVqdXBsbzERMA8GA1UECxMIc2VjdXJpdHkxDTALBgNVBAMTBHRlc3QwggND
+MIICNQYHKoZIzjgEATCCAigCggEBAI95Ndm5qum/q+2Ies9JUbbzLsWeO683GOjq
+xJYfPv02BudDUanEGDM5uAnnwq4cU5unR1uF0BGtuLR5h3VJhGlcrA6PFLM2CCii
+L/onEQo9YqmTRTQJoP5pbEZY+EvdIIGcNwmgEFexla3NACM9ulSEtikfnWSO+INE
+hneXnOwEtDSmrC516Zhd4j2wKS/BEYyf+p2BgeczjbeStzDXueNJWS9oCZhyFTkV
+6j1ri0ZTxjNFj4A7MqTC4PJykCVuTj+KOwg4ocRQ5OGMGimjfd9eoUPeS2b/BJA+
+1c8WI+FY1IfGCOl/IRzYHcojy244B2X4IuNCvkhMBXY5OWAc1mcCHQC69pamhXj3
+397n+mfJd8eF7zKyM7rlgMC81WldAoIBABamXFggSFBwTnUCo5dXBA002jo0eMFU
+1OSlwC0kLuBPluYeS9CQSr2sjzfuseCfMYLSPJBDy2QviABBYO35ygmzIHannDKm
+J/JHPpGHm6LE50S9IIFUTLVbgCw2jR+oPtSJ6U4PoGiOMkKKXHjEeMaNBSe3HJo6
+uwsL4SxEaJY559POdNsQGmWqK4f2TGgm2z7HL0tVmYNLtO2wL3yQ6aSW06VdU1vr
+/EXU9hn2Pz3tu4c5JcLyJOB3MSltqIfsHkdI+H77X963VIQxayIy3uVT3a8CESsN
+HwLaMJcyJP4nrtqLnUspItm6i+Oe2eEDpjxSgQvGiLfi7UMW4e8X294DggEGAAKC
+AQEAjfjMaNqrVuAwsc9oSW//MLr+tmPHf3Dk2/TBtX2QNFihkyqQzBkv6+j5gR0Z
+pK0YI7FelCejHYdgatZEsUDShudTPpWG7MY/KvVqKnlACNmpyQSDP2VrgXVd7Hg9
+36UPSZia75izyY5h7rLB5QhKEyDWWzMOvTjly/fcfEO7/DOksIGLPCQQD4/W/oxS
+BR0Hj/cGhuh3IDK27CbPGeGqSGa61L6LfeOpO0XK/BgEGexT8YabswvAhorKRwEC
+jrqRVImeQ9UKc0cxNjkuJgeSp10mzSwqs6qX0WU0jyr8Ghl/A7fKiA9zMb8M0Y2a
+PNehVnbu8K3zdy8LKtbJi3AnzaMkMCIwIAYDVR0RBBkwF4IEdGVzdIIJbG9jYWxo
+b3N0hwR/AAABMA0GCSqGSIb3DQEBCwUAA4IBAQBggMRefcbPiJQUaY3C186vtJcc
+CJv/Zdt3JMWKhx5vMHBxocWsr2dJzrCRuVpVJxJJcr599UUS/zIa7rH5RM1iHyBI
+rA9a9MewGwWwhCD+2m1zktoy9nc83wdb2v3D828I6E0+ujWyqMyls5xcYcDLNer+
+yNLn0+rgDjt9+yJg5pY0r6S8y3DgYHX5kw0x8WCqUDSKh1AT0Yrb7tlZFyXZsq1V
+FAmSmoBUcAGfZe2/5RBl9Yu4fHJIZXJgVtjes5+Qmlik7esnsqGukFIPpNZSvTax
+u9FJVNHf2RqSVUpW4Ufn8n5SxmRo23CHzKXt5/6TW7whV8kCBgwrxV0pV5V2
+-----END CERTIFICATE-----
diff --git a/wordpress/wp-uploads/selfsigned+san/settings.conf b/wordpress/wp-uploads/selfsigned+san/settings.conf
new file mode 100644 (file)
index 0000000..5715d82
--- /dev/null
@@ -0,0 +1,8 @@
+DEFAULT_PASSWORD=confidential
+DEFAULT_VALIDITY=365
+
+OU=security
+O=juplo
+L=Juist
+ST=Niedersachsen
+C=DE
diff --git a/wordpress/wp-uploads/zookeeper+tls/README.sh b/wordpress/wp-uploads/zookeeper+tls/README.sh
new file mode 100755 (executable)
index 0000000..efe60ab
--- /dev/null
@@ -0,0 +1,217 @@
+#!/bin/bash
+#
+# Example-script to show, how to encrypt the communication between two
+# Kafka-brokers and a standalone ZooKeeper
+#
+# Usage:
+# ./README.sh         -- Download Kafka/ZooKeeper, create the needed
+#                        certificates and start a ZooKeeper and two brokers
+#                        --------
+#                        Will not shut down the services, so that one can
+#                        experiment with single commands from this example.
+#                        Can be run multiple times: certificates are only
+#                        recreated and services are only restart, if they were
+#                        removed / stopped
+# ./README.sh stop    -- Stop the standalone ZooKeeper and the two brokers
+# ./README.sh cleanup -- Stop the standalone ZooKeeper and the two brokers,
+#                        then remove all data, the created certificates and
+#                        the written logs (does not remove dowloaded data)
+
+
+ZOOKEEPER_DOWNLOAD=http://ftp.fau.de/apache/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5-bin.tar.gz
+ZOOKEEPER_DIR=apache-zookeeper-3.5.5-bin
+KAFKA_DOWNLOAD=http://ftp.fau.de/apache/kafka/2.3.0/kafka_2.12-2.3.0.tgz
+KAFKA_DIR=kafka_2.12-2.3.0
+
+PASSWORD=confidential
+
+
+# Stops all services (Kafka and ZooKeeper)
+#
+function stop
+{
+  if [ -a ZOOKEEPER ]
+  then
+    ZOOPIDFILE=ZOOKEEPER $ZOOKEEPER_DIR/bin/zkServer.sh --config . stop
+  fi
+  if [ -a KAFKA-1 ]
+  then
+    kill $(cat KAFKA-1)
+    rm -f KAFKA-1
+  fi
+  if [ -a KAFKA-2 ]
+  then
+    kill $(cat KAFKA-2)
+    rm -f KAFKA-2
+  fi
+
+  if [ -a CONSUMER ]
+  then
+    kill $(cat CONSUMER)
+    rm -f CONSUMER
+  fi
+  if [ -a PRODUCER ]
+  then
+    kill $(cat PRODUCER)
+    rm -f PRODUCER
+  fi
+}
+
+
+# Stops all services (Kafka/ZooKeeper)
+#
+if [ "$1" = "stop" ]
+then
+  stop
+  exit
+fi
+
+# Removes data, certificates and logs (does not remove the downloads)
+#
+if [ "$1" = "cleanup" ]
+then
+
+  stop
+
+  rm -rvf /tmp/zookeeper
+  rm -rvf /tmp/kafka-1-logs
+  rm -rvf /tmp/kafka-2-logs
+
+  rm -rfv *.log *.out ca-cert* ca-key *.jks
+
+  exit
+
+fi
+
+
+if [ -x "$ZOOKEEPER_DIR" ];
+then
+  echo "Version 3.5.5 of Apache ZooKeeper already downloaded";
+else
+  echo "Downloading version 3.5.5 of Apache ZooKeeper...";
+  curl -sc - $ZOOKEEPER_DOWNLOAD | tar -xzv
+  cp -av $ZOOKEEPER_DIR/conf/log4j.properties ./
+fi
+
+if [ -x "$KAFKA_DIR" ];
+then
+  echo "Version 2.3.0 of Apache Kafka already downloaded";
+else
+  echo "Downloading version 2.3.0 of Apache Kafka...";
+  curl -sc - $KAFKA_DOWNLOAD | tar -xzv
+  echo "Replacing ZooKeeper-libs in Kafka with versions from 3.5.5..."
+  rm -v $KAFKA_DIR/libs/zookeeper-3.4.14.jar
+  cp -av $ZOOKEEPER_DIR/lib/zookeeper-3.5.5.jar $KAFKA_DIR/libs/
+  cp -av $ZOOKEEPER_DIR/lib/zookeeper-jute-3.5.5.jar $KAFKA_DIR/libs/
+  cp -av $ZOOKEEPER_DIR/lib/netty-all-4.1.29.Final.jar $KAFKA_DIR/libs/
+  echo "Only needed for ZooKeeper-CLI-clients (for example zookeeper-shell.sh):"
+  cp -av $ZOOKEEPER_DIR/lib/commons-cli-1.2.jar $KAFKA_DIR/libs/
+fi
+
+
+./create-certs.sh
+
+
+if [ -a ZOOKEEPER ]
+then
+  echo "zookeeper is already running!"
+else
+  echo "Starting zookeeper on port 2128..."
+  (
+    ZOOPIDFILE=ZOOKEEPER $ZOOKEEPER_DIR/bin/zkServer.sh --config . start
+  )
+fi
+
+if [ -a KAFKA-1 ]
+then
+  echo "kafka-1 is already running!"
+else
+  echo "Starting kafka-1 on port 9193/9194..."
+  (
+    export KAFKA_OPTS="
+      -Dzookeeper.clientCnxnSocket=org.apache.zookeeper.ClientCnxnSocketNetty
+      -Dzookeeper.client.secure=true
+      -Dzookeeper.ssl.keyStore.location=kafka-1.jks
+      -Dzookeeper.ssl.keyStore.password=$PASSWORD
+      -Dzookeeper.ssl.trustStore.location=truststore.jks
+      -Dzookeeper.ssl.trustStore.password=$PASSWORD
+    "
+    $KAFKA_DIR/bin/kafka-server-start.sh kafka-1.properties & echo $! > KAFKA-1
+  ) > kafka-1.log &
+fi
+if [ -a KAFKA-2 ]
+then
+  echo "kafka-2 is already running!"
+else
+  echo "Starting kafka-2 on port 9293/9294..."
+  (
+    export KAFKA_OPTS="
+      -Dzookeeper.clientCnxnSocket=org.apache.zookeeper.ClientCnxnSocketNetty
+      -Dzookeeper.client.secure=true
+      -Dzookeeper.ssl.keyStore.location=kafka-2.jks
+      -Dzookeeper.ssl.keyStore.password=$PASSWORD
+      -Dzookeeper.ssl.trustStore.location=truststore.jks
+      -Dzookeeper.ssl.trustStore.password=$PASSWORD
+    "
+    $KAFKA_DIR/bin/kafka-server-start.sh kafka-2.properties & echo $! > KAFKA-2
+  ) > kafka-2.log &
+fi
+
+
+while ! nc -w1 kafka-1 9193; do echo "Waiting for kafka-1..."; sleep 1; done
+while ! nc -w1 kafka-1 9293; do echo "Waiting for kafka-2..."; sleep 1; done
+
+# Creates topic "test", if it does not exist already
+# Note the usage of KAFKA_OPTS, to configure the SSL-encryption
+(
+  export KAFKA_OPTS="
+    -Dzookeeper.clientCnxnSocket=org.apache.zookeeper.ClientCnxnSocketNetty
+    -Dzookeeper.client.secure=true
+    -Dzookeeper.ssl.keyStore.location=client.jks
+    -Dzookeeper.ssl.keyStore.password=$PASSWORD
+    -Dzookeeper.ssl.trustStore.location=truststore.jks
+    -Dzookeeper.ssl.trustStore.password=$PASSWORD
+  "
+  $KAFKA_DIR/bin/kafka-topics.sh --zookeeper zookeeper:2182 --if-not-exists --create --topic test --partitions 1 --replication-factor 2
+)
+# Prints information about topic "test"
+# Note the usage of KAFKA_OPTS, to configure the SSL-encryption
+(
+  export KAFKA_OPTS="
+    -Dzookeeper.clientCnxnSocket=org.apache.zookeeper.ClientCnxnSocketNetty
+    -Dzookeeper.client.secure=true
+    -Dzookeeper.ssl.keyStore.location=client.jks
+    -Dzookeeper.ssl.keyStore.password=$PASSWORD
+    -Dzookeeper.ssl.trustStore.location=truststore.jks
+    -Dzookeeper.ssl.trustStore.password=$PASSWORD
+  "
+  $KAFKA_DIR/bin/kafka-topics.sh --zookeeper zookeeper:2182 --describe --topic test
+)
+
+# Starts a console-consumer, that reads 3 messages from the topic "test"
+# See consumer.config for the configuration of the SSL-encryption
+{ $KAFKA_DIR/bin/kafka-console-consumer.sh --bootstrap-server kafka-1:9194 --consumer.config consumer.config --topic test --from-beginning --max-messages 3 & echo $! > CONSUMER ; } |& tee consumer.log &
+echo "Started consumer with PID $(cat CONSUMER)"
+
+# Starts a console-consumer, that writes some messages to the topic "test"
+# See producer.config for the configuration of the SSL-encryption
+{ echo -e "Foo\nBar\nFooBar\n" | $KAFKA_DIR/bin/kafka-console-producer.sh --broker-list kafka-1:9194 --producer.config producer.config --topic test & echo $! > PRODUCER ; } |& tee producer.log &
+echo "Started producer with PID $(cat PRODUCER)"
+
+echo "Waiting for consumer/producer..."
+wait
+rm -f PRODUCER CONSUMER
+
+# Connect to ZooKeeper and get some informations about the broker 1
+# Note the usage of KAFKA_OPTS, to configure the SSL-encryption
+(
+  export KAFKA_OPTS="
+    -Dzookeeper.clientCnxnSocket=org.apache.zookeeper.ClientCnxnSocketNetty
+    -Dzookeeper.client.secure=true
+    -Dzookeeper.ssl.keyStore.location=client.jks
+    -Dzookeeper.ssl.keyStore.password=$PASSWORD
+    -Dzookeeper.ssl.trustStore.location=truststore.jks
+    -Dzookeeper.ssl.trustStore.password=$PASSWORD
+  "
+  $KAFKA_DIR/bin/zookeeper-shell.sh  zookeeper:2182 get /brokers/ids/1
+)
diff --git a/wordpress/wp-uploads/zookeeper+tls/consumer.config b/wordpress/wp-uploads/zookeeper+tls/consumer.config
new file mode 100644 (file)
index 0000000..960ae66
--- /dev/null
@@ -0,0 +1,5 @@
+security.protocol=SASL_SSL
+sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="consumer" password="pw4consumer";
+sasl.mechanism=PLAIN
+ssl.truststore.location=truststore.jks
+ssl.truststore.password=confidential
diff --git a/wordpress/wp-uploads/zookeeper+tls/create-certs.sh b/wordpress/wp-uploads/zookeeper+tls/create-certs.sh
new file mode 100755 (executable)
index 0000000..a989bf7
--- /dev/null
@@ -0,0 +1,33 @@
+#!/bin/bash
+#
+# Example-script to show, how to set up a self-signed CA
+#
+# Usage:
+# ./create-certs.sh
+
+VALIDITY=365
+PASSWORD=confidential
+if [ -a ca-cert ];
+then
+  echo "The root-certificate for the CA already exists...";
+else
+  echo "Creating a x509-certificate for the CA...";
+  openssl req -new -x509 -subj "/C=DE/ST=NRW/L=MS/O=trion/OU=kafka/CN=Root-CA" -keyout ca-key -out ca-cert -days $VALIDITY -passout pass:$PASSWORD
+fi
+#
+
+if [ -a truststore.jks ];
+then
+  echo "The keystore truststore.jks already exists!";
+else
+  echo "Importing the root-certificate of the CA into truststore.jks..."
+  keytool -keystore truststore.jks -storepass $PASSWORD -alias CARoot -import -file ca-cert -noprompt
+fi
+
+
+# Generating certificates for the standalone ZooKeeper, an example CLI-client
+# and the two Kafka-Brokers
+./gencert.sh zookeeper
+./gencert.sh client
+./gencert.sh kafka-1
+./gencert.sh kafka-2
diff --git a/wordpress/wp-uploads/zookeeper+tls/gencert.sh b/wordpress/wp-uploads/zookeeper+tls/gencert.sh
new file mode 100755 (executable)
index 0000000..dbdd032
--- /dev/null
@@ -0,0 +1,31 @@
+#!/bin/bash
+#
+# Example-script to show, how to create and sign a selfsigned certificate, that
+# contains multiple DNS-entries (SAN-extension)
+#
+# Usage:
+# ./gencert.sh NAME
+
+VALIDITY=365
+PASSWORD=confidential
+
+if [ -a $1.jks ];
+then
+  echo "The keystore $1.jks already exists";
+  exit;
+fi
+
+echo "Creating keystore $1.jks with a certificate and a key-pair for CN $1"
+keytool -keystore $1.jks -alias $1 -validity $VALIDITY -genkey -storepass $PASSWORD -keypass $PASSWORD -dname "CN=$1,OU=kafka,O=trion,L=MS,ST=NRW,C=DE"
+echo "Creating a Certificate-Signing-Request for the generated certificate"
+keytool -keystore $1.jks -alias $1 -certreq -file cert-file -storepass $PASSWORD
+echo "Signing the Certificate-Signing-Request and adding an additional DNS-entry for localhost"
+openssl x509 -req -CA ca-cert -CAkey ca-key -in cert-file -out cert-signed -days $VALIDITY -CAcreateserial -passin pass:$PASSWORD -extensions SAN -extfile <(printf "\n[SAN]\nsubjectAltName=DNS:$1,DNS:localhost")
+echo "Importing the root-certificate for the CA into the keystore $1.jks"
+keytool -keystore $1.jks -alias CARoot -import -file ca-cert -storepass $PASSWORD -noprompt
+echo "Importing the signed certificate for CN $1 into the keystore $1.jks"
+keytool -keystore $1.jks -alias $1 -import -file cert-signed -storepass $PASSWORD
+echo "Removing obsolet files..."
+rm -v cert-file cert-signed
+
+
diff --git a/wordpress/wp-uploads/zookeeper+tls/java.env b/wordpress/wp-uploads/zookeeper+tls/java.env
new file mode 100644 (file)
index 0000000..e3ebca6
--- /dev/null
@@ -0,0 +1,2 @@
+SERVER_JVMFLAGS="-Xms512m -Xmx512m -Dzookeeper.serverCnxnFactory=org.apache.zookeeper.server.NettyServerCnxnFactory"
+ZOO_LOG_DIR=.
diff --git a/wordpress/wp-uploads/zookeeper+tls/kafka-1.properties b/wordpress/wp-uploads/zookeeper+tls/kafka-1.properties
new file mode 100644 (file)
index 0000000..1e7c305
--- /dev/null
@@ -0,0 +1,17 @@
+broker.id=1
+zookeeper.connect=zookeeper:2182
+listeners=SSL://kafka-1:9193,SASL_SSL://kafka-1:9194
+security.inter.broker.protocol=SSL
+ssl.client.auth=required
+ssl.keystore.location=kafka-1.jks
+ssl.keystore.password=confidential
+ssl.key.password=confidential
+ssl.truststore.location=truststore.jks
+ssl.truststore.password=confidential
+listener.name.sasl_ssl.plain.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required user_consumer="pw4consumer" user_producer="pw4producer";
+sasl.enabled.mechanisms=PLAIN
+
+log.dirs=/tmp/kafka-1-logs
+offsets.topic.replication.factor=2
+transaction.state.log.replication.factor=2
+transaction.state.log.min.isr=2
diff --git a/wordpress/wp-uploads/zookeeper+tls/kafka-2.properties b/wordpress/wp-uploads/zookeeper+tls/kafka-2.properties
new file mode 100644 (file)
index 0000000..ec53f9b
--- /dev/null
@@ -0,0 +1,17 @@
+broker.id=2
+zookeeper.connect=zookeeper:2182
+listeners=SSL://kafka-2:9293,SASL_SSL://kafka-2:9294
+security.inter.broker.protocol=SSL
+ssl.client.auth=required
+ssl.keystore.location=kafka-2.jks
+ssl.keystore.password=confidential
+ssl.key.password=confidential
+ssl.truststore.location=truststore.jks
+ssl.truststore.password=confidential
+listener.name.sasl_ssl.plain.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required user_consumer="pw4consumer" user_producer="pw4producer";
+sasl.enabled.mechanisms=PLAIN
+
+log.dirs=/tmp/kafka-2-logs
+offsets.topic.replication.factor=2
+transaction.state.log.replication.factor=2
+transaction.state.log.min.isr=2
diff --git a/wordpress/wp-uploads/zookeeper+tls/producer.config b/wordpress/wp-uploads/zookeeper+tls/producer.config
new file mode 100644 (file)
index 0000000..5809edf
--- /dev/null
@@ -0,0 +1,5 @@
+security.protocol=SASL_SSL
+sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="producer" password="pw4producer";
+sasl.mechanism=PLAIN
+ssl.truststore.location=truststore.jks
+ssl.truststore.password=confidential
diff --git a/wordpress/wp-uploads/zookeeper+tls/zoo.cfg b/wordpress/wp-uploads/zookeeper+tls/zoo.cfg
new file mode 100644 (file)
index 0000000..ad80add
--- /dev/null
@@ -0,0 +1,8 @@
+dataDir=/tmp/zookeeper
+secureClientPort=2182
+maxClientCnxns=0
+authProvider.1=org.apache.zookeeper.server.auth.X509AuthenticationProvider
+ssl.keyStore.location=zookeeper.jks
+ssl.keyStore.password=confidential
+ssl.trustStore.location=truststore.jks
+ssl.trustStore.password=confidential