{"id":620,"date":"2019-01-11T14:14:24","date_gmt":"2019-01-11T13:14:24","guid":{"rendered":"https:\/\/www.gluecksgriff-taschen.de\/?p=620"},"modified":"2022-07-02T17:45:27","modified_gmt":"2022-07-02T15:45:27","slug":"eigene-ca-betreiben-schritt-1-eigene-ca-erstellen","status":"publish","type":"post","link":"https:\/\/www.gluecksgriff-taschen.de\/?p=620","title":{"rendered":"Eigene CA betreiben &#8211; Schritt 1 (eigene CA erstellen)"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Wir betreiben hier verschiedene Webserver, die nur internen Zwecken dienen, aber die Daten dennoch verschl\u00fcsselt ausliefern. Nun ist es ziemlich nervig bei jedem Aufruf diese &#8222;Diese Seite ist nicht sicher&#8220;-Warnung wegklicken zu m\u00fcssen. Au\u00dferdem besteht die Gefahr, dass die User sich daran gew\u00f6hnen, dass diese Warnmeldung kommt und  die auch dann missachten, wenn echt mal Gefahr droht.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wir m\u00fcssen also g\u00fcltige Zertifikate f\u00fcr diese Server ausstellen, damit die SSL\/TLS verschl\u00fcsselte \u00dcbertragung per https ohne Fehlermeldung funktioniert. W\u00e4hrend das bei extern erreichbaren Webservern ja recht einfach ist, d\u00fcrfte es schwierig werden eine CA (certificate authority) zu finden, die einem ein Zertifikat f\u00fcr die Domain firma.local ausstellt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wir m\u00fcssen also unsere lokale CA gr\u00fcnden, den Rechnern in der Windows-Domain beibringen dieser CA zu vertrauen und dann von unserer internen CA Zertifikate f\u00fcr diverse Server erstellen lassen und installieren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Klingt nach viel Arbeit &#8211; ist es leider auch &#8211; aber nicht so kompliziert wie es eigentlich klingt, fangen wir einfach mal an.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr unsere CA nutze ich einen virtuellen Linux-Server unter Ubuntu 16.04 LTS, die interne Domain lautet fafa4.local. Spielt aber letztlich keine Rolle, da eine CA ja kein aktiv laufender Dienst ist, sondern nur per OpenSSL Zertifikate erzeugt werden. Es kann also jeder Rechner mit funktionierendem OpenSSL verwendet werden, egal ob Linux oder Windows.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Verzeichnisstruktur vorbereiten<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Zun\u00e4chst erstelle ich ein Verzeichnis, in welchem privater Schl\u00fcssel und Stamm-Zertifikat abgelegt werden und vergebe daf\u00fcr restriktive Berechtigungen.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; highlight: [1,2]; title: ; notranslate\" title=\"\">\n$ sudo mkdir -p \/root\/CA\n$ sudo chmod 700 \/root\/CA\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Privaten Schl\u00fcssel erstellen<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Jetzt erstelle ich in diesem Verzeichnis den privaten Schl\u00fcssel. Sicherheitshalber wird dieser mit einem guten Passwort gesch\u00fctzt.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; highlight: [1]; title: ; notranslate\" title=\"\">\n$ sudo openssl genrsa -aes256 -out \/root\/CA\/fafa4-ca.key 4096\nGenerating RSA private key, 4096 bit long modulus\n..............................................................................................................................................++\n........................................................++\ne is 65537 (0x10001)\nEnter pass phrase for \/root\/CA\/fafa4-ca.key:\nVerifying - Enter pass phrase for \/root\/CA\/fafa4-ca.key:\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Auch dieser bekommt passende Zugriffsrechte.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; highlight: [1]; title: ; notranslate\" title=\"\">\n$ sudo chmod 700 \/root\/CA\/fafa4-ca.key\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Stammzertifikat erstellen<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Das Stammzertifikat dient dazu die G\u00fcltigkeit aller f\u00fcr unsere internen Server ausgestellten Zertifikate zu best\u00e4tigen. Wie jedes Zertifikat hat es ein Datum, an dem es ung\u00fcltig wird. Ich w\u00e4hle hier bewusst ein weit in der Zukunft liegendes Datum (25 Jahre, also 2044) , aber das ist nat\u00fcrlich Geschmackssache.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Zum Erstellen des Stammzertifikats ben\u00f6tige ich den eben erstellen privaten Schl\u00fcssel, zudem fragt openssl ein paar Informationen ab. Auch wenn diese (bis auf den Country Name) optional sind, f\u00fclle ich sie mit sinnvollen Werten.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; highlight: [1]; title: ; notranslate\" title=\"\">\n$ sudo openssl req -new -nodes -x509 -extensions v3_ca -days 9129 -key \/root\/CA\/fafa4-ca.key -out \/root\/CA\/fafa4-ca.pem -sha512\nEnter pass phrase for \/root\/CA\/fafa4-ca.key:\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 - coole Firma\nOrganizational Unit Name (eg, section) &#x5B;]:Administration\nCommon Name (e.g. server FQDN or YOUR name) &#x5B;]:Fafa4 - interne CA\nEmail Address &#x5B;]:xxxxxxxxxx@gluecksgriff-taschen.de\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Unser \/root\/CA-Verzeichnis sieht jetzt also so aus:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; highlight: [1]; title: ; notranslate\" title=\"\">\n$ sudo ls -lah \/root\/CA\ninsgesamt 16K\ndrwx------ 2 root root 4,0K Jan 11 14:04 .\ndrwx------ 4 root root 4,0K Jan 11 11:49 ..\n-rwx------ 1 root root 3,3K Jan 11 12:09 fafa4-ca.key\n-rw-r--r-- 1 root root 2,2K Jan 11 14:04 fafa4-ca.pem\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">So, das war auch schon alles. 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> bringe ich dann die Client-Rechner dazu dieses Zertifikat als vertrauensw\u00fcrdige Stammzertifizierungsstelle zu akzeptieren.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wir betreiben hier verschiedene Webserver, die nur internen Zwecken dienen, aber die Daten dennoch verschl\u00fcsselt ausliefern. Nun ist es ziemlich nervig bei jedem Aufruf diese &#8222;Diese Seite ist nicht sicher&#8220;-Warnung wegklicken zu m\u00fcssen. Au\u00dferdem besteht die Gefahr, dass die User sich daran gew\u00f6hnen, dass diese Warnmeldung kommt und die auch dann missachten, wenn echt mal &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.gluecksgriff-taschen.de\/?p=620\"> <span class=\"screen-reader-text\">Eigene CA betreiben &#8211; Schritt 1 (eigene CA erstellen)<\/span> Weiterlesen &raquo;<\/a><\/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,102,106,107,104,108,105,103],"class_list":["post-620","post","type-post","status-publish","format-standard","hentry","category-linux","category-windows","tag-ca","tag-certificate-authority","tag-https","tag-root-ca","tag-ssl","tag-stammzertifizierungsstelle","tag-tls","tag-zertifikat"],"_links":{"self":[{"href":"https:\/\/www.gluecksgriff-taschen.de\/index.php?rest_route=\/wp\/v2\/posts\/620","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=620"}],"version-history":[{"count":13,"href":"https:\/\/www.gluecksgriff-taschen.de\/index.php?rest_route=\/wp\/v2\/posts\/620\/revisions"}],"predecessor-version":[{"id":779,"href":"https:\/\/www.gluecksgriff-taschen.de\/index.php?rest_route=\/wp\/v2\/posts\/620\/revisions\/779"}],"wp:attachment":[{"href":"https:\/\/www.gluecksgriff-taschen.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=620"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gluecksgriff-taschen.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=620"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gluecksgriff-taschen.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=620"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}