{"id":853,"date":"2020-02-12T18:06:27","date_gmt":"2020-02-12T17:06:27","guid":{"rendered":"https:\/\/www.gluecksgriff-taschen.de\/?p=853"},"modified":"2022-07-02T17:45:26","modified_gmt":"2022-07-02T15:45:26","slug":"eigene-ca-betreiben-schritt-4-zertifikate-fuer-die-server-erzeugen-und-installieren","status":"publish","type":"post","link":"https:\/\/www.gluecksgriff-taschen.de\/?p=853","title":{"rendered":"Eigene CA betreiben \u2013 Schritt 4 (Zertifikate f\u00fcr die Server erzeugen und installieren)"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Nachdem wir in <a rel=\"noreferrer noopener\" aria-label=\"Teil 2 (\u00f6ffnet in neuem Tab)\" href=\"https:\/\/www.gluecksgriff-taschen.de\/?p=638\" target=\"_blank\">Teil 2<\/a> bzw. <a rel=\"noreferrer noopener\" aria-label=\" (\u00f6ffnet in neuem Tab)\" href=\"https:\/\/www.gluecksgriff-taschen.de\/?p=686\" target=\"_blank\">Teil 3<\/a> unser Root-Zertifikat auf den Clients installiert haben, kommen wir nun zum eigentlichen Zweck des Ganzen. Wir erzeugen f\u00fcr unseren Webserver ein Zertifikat und binden es ein, so dass die aufrufenden Clients eine verschl\u00fcsselte und sichere Verbindung bekommen.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\">Leider gibt es kein einheitliches Vorgehen zum Installieren der Server, da dies je nach verwendeter Software (Apache, Nginx, Drucker, etc.) immer etwas unterschiedlich ist. Ich werde diesen Beitrag daher nach und nach erg\u00e4nzen, ganz so wie mir die unterschiedlichen Anwendungen unterkommen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Der grundlegende Ablauf ist jedoch immer identisch (Key erzeugen -&gt; CSR generieren -&gt; Extension-Datei anpassen -&gt; Zertifikat erzeugen -&gt; Zertifikat installieren), so dass ihr das sicher auch hinbekommt, wenn die von Euch verwendete Software hier nicht auftaucht.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"#vcsa\">VCSA (VMware vCenter Server Appliance) 6.7<\/a><\/li><li><a href=\"#ciphermail\">Ciphermail<\/a><\/li><li><a href=\"#unifi\">Unifi Network Controller Software<\/a><\/li><li><a href=\"#payara\">Payara (Glassfish)<\/a><\/li><\/ul>\n\n\n\n<h2 id=\"vcsa\">VCSA (VMware&nbsp;<em>vCenter Server Appliance<\/em>) 6.7<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Zun\u00e4chst einmal in der VCSA einloggen und zu Startseite &#8211; Verwaltung &#8211; Zertifikatsverwaltung navigieren. Klickt man dann beim __MACHINE_CERT auf Details sollte das dann ungef\u00e4hr so aussehen:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignleft size-large\"><a href=\"https:\/\/www.gluecksgriff-taschen.de\/wp-content\/uploads\/2020\/02\/screeb006.jpg\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"668\" src=\"https:\/\/www.gluecksgriff-taschen.de\/wp-content\/uploads\/2020\/02\/screeb006-1024x668.jpg\" alt=\"\" class=\"wp-image-868\" srcset=\"https:\/\/www.gluecksgriff-taschen.de\/wp-content\/uploads\/2020\/02\/screeb006-1024x668.jpg 1024w, https:\/\/www.gluecksgriff-taschen.de\/wp-content\/uploads\/2020\/02\/screeb006-300x196.jpg 300w, https:\/\/www.gluecksgriff-taschen.de\/wp-content\/uploads\/2020\/02\/screeb006-768x501.jpg 768w, https:\/\/www.gluecksgriff-taschen.de\/wp-content\/uploads\/2020\/02\/screeb006.jpg 1262w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Default Maschinen-SSL-Zertifikat der VCSA, welches nicht von unserer CA ausgestellt wurde.<\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Das Maschinen-SSL-Zertifikat ist also nicht von unserer eigenen CA ausgestellt und die Verbindung zur VCSA wird daher im Browser als &#8222;nicht sicher&#8220; angezeigt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das m\u00f6chte ich nat\u00fcrlich \u00e4ndern und logge mich daher auf dem Rechner ein, den ich schon zur Erstellung der Root-CA genutzt habe. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Zun\u00e4chst generiere ich den privaten Schl\u00fcssel f\u00fcr die VCSA.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; highlight: [1]; title: ; notranslate\" title=\"\">\nsudo openssl genrsa -out vcsa-server.key 4096\nGenerating RSA private key, 4096 bit long modulus\n.....++\n...++\ne is 65537 (0x10001)\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Mit diesem Key erzeuge ich nun den dazu geh\u00f6renden CSR. Wichtig hierbei ist, dass das geforderte <code>challenge password<\/code> leer bleibt, also bei dieser Abfrage einfach Enter dr\u00fccken. Die anderen Fragen nat\u00fcrlich mit den bei Euch passenden Werten f\u00fcllen, logisch.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; highlight: [1]; title: ; notranslate\" title=\"\">\nsudo openssl req -new -key vcsa-server.key -out vcsa-server.csr -sha512\nYou are about to be asked to enter information that will be incorporated\ninto your certificate request.\nWhat you are about to enter is what is called a Distinguished Name or a DN.\nThere are quite a few fields but you can leave some blank\nFor some fields there will be a default value,\nIf you enter &#039;.&#039;, the field will be left blank.\n-----\nCountry Name (2 letter code) &#x5B;AU]:DE\nState or Province Name (full name) &#x5B;Some-State]:NRW\nLocality Name (eg, city) &#x5B;]:Titz\nOrganization Name (eg, company) &#x5B;Internet Widgits Pty Ltd]:Fafa4 - Beoweos und Elwes\nOrganizational Unit Name (eg, section) &#x5B;]:IT\nCommon Name (e.g. server FQDN or YOUR name) &#x5B;]:vcsa-server.fafa4.local\nEmail Address &#x5B;]:edv@fafa4.local\n\nPlease enter the following &#039;extra&#039; attributes\nto be sent with your certificate request\nA challenge password &#x5B;]:\nAn optional company name &#x5B;]:\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Diesen CSR k\u00f6nnte ich jetzt bereits nutzen, um daraus ein Zertifikat f\u00fcr unsere VCSA  zu erstellen, allerdings m\u00f6chte ich auch, dass dieses Zertifikat nicht nur f\u00fcr den FQDN des Rechners gilt, sondern auch f\u00fcr die IP-Adresse. Ansonsten w\u00fcrde eine Verbindung zu https:\/\/vcsa-server.fafa4.local im Browser als sicher angezeigt, eine Verbindung zu https:\/\/10.6.82.32 jedoch als unsicher, was nat\u00fcrlich bl\u00f6d ist.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wie ihr beim Erzeugen des CSR sicher bemerkt habt, habe ich dort nirgendwo die M\u00f6glichkeit eine IP anzugeben, sondern es wird lediglich der FQDN abgefragt. Geht nat\u00fcrlich trotzdem \u00fcber die OpenSSL SAN Extension, hierzu lege ich eine Datei namens  <code>vcsa-server.conf<\/code> mit diesem Inhalt an.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n&#x5B;SAN]\nsubjectAltName = @alt_names\n\n&#x5B;alt_names]\nDNS.2 = vcsa-server\nDNS.1 = vcsa-server.fafa4.local\nIP = 10.6.82.32\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Nun kann ich wirklich das Zertifikat erzeugen, welches 3 Jahre g\u00fcltig sein soll. Hierbei werdet ihr nach dem Passwort des CA-Keys gefragt, ansonsten sind alle ben\u00f6tigen Angaben im CSR enthalten.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; highlight: [1]; title: ; notranslate\" title=\"\">\nsudo openssl x509 -req -days 1095 -in vcsa-server.csr -CA \/root\/CA\/Fafa4-CA.pem -CAkey \/root\/CA\/Fafa4-CA.key -CAcreateserial -out vcsa-server.pem -extfile vcsa-server.conf -extensions SAN\nSignature ok\nsubject=\/C=DE\/ST=NRW\/L=Titz\/O=Fafa4 - Beoweos und Elwes\/OU=IT\/CN=vcsa-server.fafa4.local\/emailAddress=edv@fafa4.local\nGetting CA Private Key\nEnter pass phrase for \/root\/CA\/Fafa4-CA.key:\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Nun habe ich das von unserer CA ausgestellte Zertifikat unter dem Namen vcsa-server.pem vorliegen, dieses kopiere ich tempor\u00e4r auf meine lokale Festplatte und wechsle wieder zur\u00fcck zur VCSA-Oberfl\u00e4che.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beim __MACHINE_CERT w\u00e4hle ich unter &#8222;Aktionen&#8220; den Punkt &#8222;Ersetzen&#8220;, worauf sich folgendes Fenster \u00f6ffnet.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.gluecksgriff-taschen.de\/wp-content\/uploads\/2020\/02\/screeb007.jpg\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" width=\"860\" height=\"424\" src=\"https:\/\/www.gluecksgriff-taschen.de\/wp-content\/uploads\/2020\/02\/screeb007.jpg\" alt=\"\" class=\"wp-image-874\" srcset=\"https:\/\/www.gluecksgriff-taschen.de\/wp-content\/uploads\/2020\/02\/screeb007.jpg 860w, https:\/\/www.gluecksgriff-taschen.de\/wp-content\/uploads\/2020\/02\/screeb007-300x148.jpg 300w, https:\/\/www.gluecksgriff-taschen.de\/wp-content\/uploads\/2020\/02\/screeb007-768x379.jpg 768w\" sizes=\"auto, (max-width: 860px) 100vw, 860px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Hier w\u00e4hle ich unsere eben erzeugten <code>vcsa-server.pem<\/code> und <code>vcsa-server.key<\/code> aus und klicke auf &#8222;Ersetzen&#8220;.  <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das war dann auch schon alles, nach einem Reboot der VCSA \u00fcber die Managementoberfl\u00e4che wird das neue Zertifikat verwendet.<\/p>\n\n\n\n<h2 id=\"ciphermail\">Ciphermail<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Wir verwenden <a rel=\"noreferrer noopener\" aria-label=\"Ciphermail (\u00f6ffnet in neuem Tab)\" href=\"https:\/\/www.ciphermail.com\" target=\"_blank\">Ciphermail<\/a> um ein- und ausgehende Mails automatisch zu signieren, ggf. zu ver- bzw. entschl\u00fcsseln und einiges mehr. Gerade in diesem Bereich ist es nat\u00fcrlich angebracht ein vertrauensw\u00fcrdiges Zertifikat f\u00fcr die Weboberfl\u00e4che zu pr\u00e4sentieren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In Ciphermail navigiere ich zu Admin &#8211; SSL\/TLS &#8211; Web, was dann ungef\u00e4hr so aussehen sollte.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.gluecksgriff-taschen.de\/wp-content\/uploads\/2020\/02\/ciphermail.jpg\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"403\" src=\"https:\/\/www.gluecksgriff-taschen.de\/wp-content\/uploads\/2020\/02\/ciphermail-1024x403.jpg\" alt=\"\" class=\"wp-image-891\" srcset=\"https:\/\/www.gluecksgriff-taschen.de\/wp-content\/uploads\/2020\/02\/ciphermail-1024x403.jpg 1024w, https:\/\/www.gluecksgriff-taschen.de\/wp-content\/uploads\/2020\/02\/ciphermail-300x118.jpg 300w, https:\/\/www.gluecksgriff-taschen.de\/wp-content\/uploads\/2020\/02\/ciphermail-768x302.jpg 768w, https:\/\/www.gluecksgriff-taschen.de\/wp-content\/uploads\/2020\/02\/ciphermail.jpg 1269w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Konfigurationsoberfl\u00e4che von Ciphermail f\u00fcr die Zertifikatverwaltung der Weboberfl\u00e4che<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Ciphermail h\u00e4tte gerne eine PKCS#12-Datei, die den private Key des Ciphermail-Servers, das Zertifikat unserer internen CA und nat\u00fcrlich das von der CA ausgestellte Zertifkat f\u00fcr Ciphermail enth\u00e4lt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Los geht es wie \u00fcblich indem ich den private-Key des Ciphermail-Servers erstellen.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; highlight: [1]; title: ; notranslate\" title=\"\">\nsudo openssl genrsa -out ciphermail.key 4096\nGenerating RSA private key, 4096 bit long modulus\n..................................++\n......................................................................................................................................................................................++\ne is 65537 (0x10001)\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Nun erzeuge ich den entsprechenden CSR, das challenge Password bleibt leer, der Rest der Felder wird mit sinnvollen Werten gef\u00fcllt.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; highlight: [1]; title: ; notranslate\" title=\"\">\nsudo openssl req -new -key ciphermail.key -out ciphermail.csr -sha512\nYou are about to be asked to enter information that will be incorporated\ninto your certificate request.\nWhat you are about to enter is what is called a Distinguished Name or a DN.\nThere are quite a few fields but you can leave some blank\nFor some fields there will be a default value,\nIf you enter &#039;.&#039;, the field will be left blank.\n-----\nCountry Name (2 letter code) &#x5B;AU]:DE\nState or Province Name (full name) &#x5B;Some-State]:NRW\nLocality Name (eg, city) &#x5B;]:Titz\nOrganization Name (eg, company) &#x5B;Internet Widgits Pty Ltd]:Fafa4 - Beoweos und Elwes\nOrganizational Unit Name (eg, section) &#x5B;]:IT\nCommon Name (e.g. server FQDN or YOUR name) &#x5B;]:ciphermail.fafa4.local\nEmail Address &#x5B;]:edv@fafa4.local\n\nPlease enter the following &#039;extra&#039; attributes\nto be sent with your certificate request\nA challenge password &#x5B;]:\nAn optional company name &#x5B;]:\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr die obligatorische SAN Extension lege ich eine Datei namens <code>ciphermail.conf<\/code> mit diesem Inhalt an.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n&#x5B;SAN]\nsubjectAltName = @alt_names\n\n&#x5B;alt_names]\nDNS.2 = ciphermail\nDNS.1 = ciphermail.fafa4.local\nIP = 10.217.82.99\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Nun habe ich alles um das Zertifikat f\u00fcr Ciphermail zu erzeugen, als G\u00fcltigkeit w\u00e4hle ich 3 Jahre, aber das ist nat\u00fcrlich Geschmackssache.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; highlight: [1]; title: ; notranslate\" title=\"\">\nsudo openssl x509 -req -days 1095 -in ciphermail.csr -CA \/root\/CA\/Fafa4-CA.pem -CAkey \/root\/CA\/Fafa4-CA.key -CAcreateserial -out ciphermail.pem -extfile ciphermail.conf -extensions SAN\nSignature ok\nsubject=\/C=DE\/ST=NRW\/L=Titz\/O=Fafa4 - Beoweos und Elwes\/OU=IT\/CN=ciphermail.fafa4.local\/emailAddress=edv@fafa4.local\nGetting CA Private Key\nEnter pass phrase for \/root\/CA\/Fafa4-CA.key:\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Da Ciphermail eine PKCS#12-Datei erwartet, wandel ich das per OpenSSL entsprechend um. Das Export-Passwort spielt keine gr\u00f6\u00dfere Rolle, es wird nur einmalig von Ciphermail bei der Installation des Zertifikats abgefragt.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; highlight: [1]; title: ; notranslate\" title=\"\">\nsudo openssl pkcs12 -export -out ciphermail.p12 -inkey ciphermail.key -in ciphermail.pem -certfile Fafa4-CA.pem\nEnter Export Password:\nVerifying - Enter Export Password:\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Die so erzeuge ciphermail.p12 lade ich in der Ciphermail Weboberfl\u00e4che hoch, gebe das Export-Kennwort ein und nach einem Neustart des Webservers von Ciphermail wird das neue Zertifikat verwendet.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.gluecksgriff-taschen.de\/wp-content\/uploads\/2020\/02\/screeb008.jpg\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"335\" src=\"https:\/\/www.gluecksgriff-taschen.de\/wp-content\/uploads\/2020\/02\/screeb008-1024x335.jpg\" alt=\"\" class=\"wp-image-903\" srcset=\"https:\/\/www.gluecksgriff-taschen.de\/wp-content\/uploads\/2020\/02\/screeb008-1024x335.jpg 1024w, https:\/\/www.gluecksgriff-taschen.de\/wp-content\/uploads\/2020\/02\/screeb008-300x98.jpg 300w, https:\/\/www.gluecksgriff-taschen.de\/wp-content\/uploads\/2020\/02\/screeb008-768x251.jpg 768w, https:\/\/www.gluecksgriff-taschen.de\/wp-content\/uploads\/2020\/02\/screeb008.jpg 1271w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Das Zertifikat wurde erfolgreich installiert, nach einem Neustart des Webservers wird es verwendet.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"unifi\">Unifi Network Controller Software<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Wie \u00fcblich erstelle ich zun\u00e4chst den private Key des Servers.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; highlight: [1]; title: ; notranslate\" title=\"\">\nsudo openssl genrsa -out unifi.key 4096\nGenerating RSA private key, 4096 bit long modulus\n.++\n......................................................++\ne is 65537 (0x10001)\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Den CSR erstellen und mit sinnvollen Werten f\u00fcllen.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; highlight: [1]; title: ; notranslate\" title=\"\">\nsudo openssl req -new -key unifi.key -out unifi.csr -sha512\nYou are about to be asked to enter information that will be incorporated\ninto your certificate request.\nWhat you are about to enter is what is called a Distinguished Name or a DN.\nThere are quite a few fields but you can leave some blank\nFor some fields there will be a default value,\nIf you enter &#039;.&#039;, the field will be left blank.\n-----\nCountry Name (2 letter code) &#x5B;AU]:DE\nState or Province Name (full name) &#x5B;Some-State]:NRW\nLocality Name (eg, city) &#x5B;]:Titz\nOrganization Name (eg, company) &#x5B;Internet Widgits Pty Ltd]:Fafa4 - Beoweos und Elwes\nOrganizational Unit Name (eg, section) &#x5B;]:IT\nCommon Name (e.g. server FQDN or YOUR name) &#x5B;]:ubiquiti.fafa4.local\nEmail Address &#x5B;]:edv@fafa4.local\n\nPlease enter the following &#039;extra&#039; attributes\nto be sent with your certificate request\nA challenge password &#x5B;]:\nAn optional company name &#x5B;]:\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr die SAN Extension lege ich eine Datei namens unifi.conf mit folgendem Inhalt an.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n&#x5B;SAN]\nsubjectAltName = @alt_names\n\n&#x5B;alt_names]\nDNS.2 = ubiquiti\nDNS.1 = ubiquiti.fafa4.local\nIP = 10.6.82.136\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Nun kann ich das eigentliche Zertifikat erstellen.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; highlight: [1]; title: ; notranslate\" title=\"\">\nsudo openssl x509 -req -days 1095 -in unifi.csr -CA \/root\/CA\/Fafa4-CA.pem -CAkey \/root\/CA\/Fafa4-CA.key -CAcreateserial -out unifi.pem -extfile unifi.conf -extensions SAN\nSignature ok\nsubject=\/C=DE\/ST=NRW\/L=Titz\/O=Fafa4 - Beoweos und Elwes\/OU=IT\/CN=ubiquiti.fafa4.local\/emailAddress=edv@fafa4.local\nGetting CA Private Key\nEnter pass phrase for \/root\/CA\/Fafa4-CA.key:\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Die Unifi Software nutzt den Java Keystore, so dass wir alles in ein PKCS#12 packen m\u00fcssen. Das angeforderte Export-Passwort ist nicht weiter kritisch, es wird lediglich beim Import abgefragt. Ich nehme hier mal &#8222;banane&#8220; als Kennwort.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; highlight: [1]; title: ; notranslate\" title=\"\">\nsudo openssl pkcs12 -export -nodes -out unifi.p12 -inkey unifi.key -in unifi.pem -certfile \/root\/CA\/Fafa4-CA.pem -name unifi\nEnter Export Password:\nVerifying - Enter Export Password:\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Die so erzeugte <code>unifi.p12<\/code> kopiere ich per WinSCP in mein Home-Verzeichnis auf den Rechner, auf dem der Unifi Network Controller l\u00e4uft. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Zun\u00e4chst schaue ich mir an welche Zertifikate sich in dem vom der Unifi Network Controller verwendeten Keystore befinden. Das hierbei ben\u00f6tigte Kennwort lautet als Default <strong>aircontrolenterprise<\/strong>.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; highlight: [1]; title: ; notranslate\" title=\"\">\nsudo keytool -list -keystore \/var\/lib\/unifi\/keystore\nKeystore-Kennwort eingeben:\nKeystore-Typ: jks\nKeystore-Provider: SUN\n\nKeystore enth\u00e4lt 1 Eintrag\n\nunifi, 27.11.2019, PrivateKeyEntry,\nZertifikat-Fingerprint (SHA1): 29:BD:36:01:93:99:FE:5D:93:D8:F2:5B:CA:32:D8:1E:9F:64:EF:26\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Dort befindet sich wie erwartet nur der unifi-Alias, dieses Zertifikat l\u00f6sche ich nun.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; highlight: [1]; title: ; notranslate\" title=\"\">\nsudo keytool -delete -alias unifi -keystore \/var\/lib\/unifi\/keystore\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Nun kann ich unser Zertifikat importieren.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; highlight: [1]; title: ; notranslate\" title=\"\">\nsudo keytool -importkeystore -srckeystore \/home\/edv\/unifi.p12 -srcstorepass banane -destkeystore \/var\/lib\/unifi\/keystore -deststorepass aircontrolenterprise -alias unifi -trustcacerts\nKeystore \/home\/edv\/unifi.p12 wird in \/var\/lib\/unifi\/keystore importiert...\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Jetzt noch den Dienst neu starten und das war&#8217;s dann auch schon.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; highlight: [1]; title: ; notranslate\" title=\"\">\nsudo systemctl restart unifi\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"payara\">Payara (Glassfish)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Auch hier wird zun\u00e4chst der private Key des Servers erstellt.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; highlight: [1]; title: ; notranslate\" title=\"\">\nsudo openssl genrsa -out clp-sam.key 4096\nGenerating RSA private key, 4096 bit long modulus (2 primes)\n..................................................................................................................++++\n.............................................................++++\ne is 65537 (0x010001)\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Nun den CSR erstellen und mit sinnvollen Werten f\u00fcllen.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; highlight: [1]; title: ; notranslate\" title=\"\">\nsudo openssl req -new -key clp-sam.key -out clp-sam.csr -sha512\nYou are about to be asked to enter information that will be incorporated\ninto your certificate request.\nWhat you are about to enter is what is called a Distinguished Name or a DN.\nThere are quite a few fields but you can leave some blank\nFor some fields there will be a default value,\nIf you enter &#039;.&#039;, the field will be left blank.\n-----\nCountry Name (2 letter code) &#x5B;DE]:\nState or Province Name (full name) &#x5B;NRW]:\nLocality Name (eg, city) &#x5B;Titz]:\nOrganization Name (eg, company) &#x5B;Fafa4 - Beoweos und Elwes]:\nOrganizational Unit Name (eg, section) &#x5B;IT]:\nCommon Name (e.g. server FQDN or YOUR name) &#x5B;clp-sam.fafa4.local]:\nEmail Address &#x5B;edv@fafa4.local]:\n\nPlease enter the following &#039;extra&#039; attributes\nto be sent with your certificate request\nA challenge password &#x5B;]:\nAn optional company name &#x5B;]:\n\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr die SAN-Extension lege ich eine Datei <code>clp-sam.conf<\/code> im Unterverzeichnis <code>configs\/<\/code> mit folgendem Inhalt an.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n&#x5B;SAN]\nsubjectAltName = @alt_names\n\n&#x5B;alt_names]\nDNS.2 = clp-sam\nDNS.1 = clp-sam.fafa4.local\nIP = 192.168.178.126\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Nun kann ich das eigentliche Zertifikat erstellen, in diesem Falls soll es 2 Jahre g\u00fcltig sein.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; highlight: [1]; title: ; notranslate\" title=\"\">\nsudo openssl x509 -req -days 730 -in clp-sam.csr -CA Fafa4-CA.pem -CAkey Fafa4-CA.key -CAcreateserial -out clp-sam.pem -extfile configs\/clp-sam.conf -extensions SAN\nSignature ok\nsubject=C = DE, ST = NRW, L = Titz, O = Fafa4 - Beoweos und Elwes, OU = IT, CN = clp-sam.fafa4.local, emailAddress = edv@fafa4.local\nGetting CA Private Key\nEnter pass phrase for Fafa4-CA.key:\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Payara verwendet den Java-Keystore, so dass ich unsere Zertifkate noch in diesen importieren muss, hierzu kopiere ich das soeben erstellte Zertifikat (<code>clp-sam.pem<\/code>), den dazu geh\u00f6renden Key (<code>clp-sam.key<\/code>) und unser CA-Zertifikat (<code>Fafa4-CA.pem<\/code>) auf den Payara-Server in das Verzeichnis <code>\/opt\/payara41\/glassfish\/domains\/payaradomain\/config<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bevor ich irgendetwas an den Keystore-Dateien anstelle, sichere ich mir die Originaldateien nat\u00fcrlich, so dass ich im Fehlerfall wieder zur\u00fcck kann.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; highlight: [1,2]; title: ; notranslate\" title=\"\">\n# cp keystore.jks keystore.clp\n# cp cacerts.jks cacerts.clp\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Nun l\u00f6sche ich aus den beiden Keystores die Zertifkate mit dem Alias s1as.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; highlight: [1,2]; title: ; notranslate\" title=\"\">\n# keytool -delete -alias s1as -keystore keystore.jks\n# keytool -delete -alias s1as -keystore cacerts.jks\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Nachdem die bestehenden Zertifikate gel\u00f6scht sind, erstelle ich eine Zertifikatskette und f\u00fcge sie dem Keystore hinzu mittels<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; highlight: [1,2,3]; title: ; notranslate\" title=\"\">\n# cat clp-sam.pem Fafa4-CA.pem &gt; all.pem\n# openssl pkcs12 -export -in all.pem -inkey clp-sam.key -name s1as -passout pass:changeit &gt; akeystore.p12\n# keytool -importkeystore -srckeystore akeystore.p12 -srcstoretype PKCS12 -srcstorepass changeit -deststorepass changeit -destkeypass changeit -destkeystore keystore.jks -alias s1as -destalias s1as\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Nun noch einen Neustart von Payara und damit ist das eigene Zertifikat installiert und wird verwendet.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; highlight: [1]; title: ; notranslate\" title=\"\">\n# asadmin restart-domain payaradomain\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>Nachdem wir in Teil 2 bzw. Teil 3 unser Root-Zertifikat auf den Clients installiert haben, kommen wir nun zum eigentlichen Zweck des Ganzen. Wir erzeugen f\u00fcr unseren Webserver ein Zertifikat und binden es ein, so dass die aufrufenden Clients eine verschl\u00fcsselte und sichere Verbindung bekommen.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","site-sidebar-layout":"default","site-content-layout":"default","ast-global-header-display":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","footnotes":""},"categories":[3,4],"tags":[101,137,141,142,107,140,138,139],"class_list":["post-853","post","type-post","status-publish","format-standard","hentry","category-linux","category-windows","tag-ca","tag-csr","tag-extensions","tag-openssl","tag-root-ca","tag-san","tag-v3_req","tag-vcsa"],"_links":{"self":[{"href":"https:\/\/www.gluecksgriff-taschen.de\/index.php?rest_route=\/wp\/v2\/posts\/853","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gluecksgriff-taschen.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gluecksgriff-taschen.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gluecksgriff-taschen.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gluecksgriff-taschen.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=853"}],"version-history":[{"count":66,"href":"https:\/\/www.gluecksgriff-taschen.de\/index.php?rest_route=\/wp\/v2\/posts\/853\/revisions"}],"predecessor-version":[{"id":982,"href":"https:\/\/www.gluecksgriff-taschen.de\/index.php?rest_route=\/wp\/v2\/posts\/853\/revisions\/982"}],"wp:attachment":[{"href":"https:\/\/www.gluecksgriff-taschen.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=853"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gluecksgriff-taschen.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=853"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gluecksgriff-taschen.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=853"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}