{"id":2281,"date":"2016-08-18T11:43:23","date_gmt":"2016-08-18T09:43:23","guid":{"rendered":"https:\/\/www.boc.de\/watchguard-info-portal\/?p=2281"},"modified":"2016-08-29T17:00:05","modified_gmt":"2016-08-29T15:00:05","slug":"letsencrypt-zertifikat-als-proxy-zertifikat-auf-watchguard-firebox","status":"publish","type":"post","link":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/2016\/08\/letsencrypt-zertifikat-als-proxy-zertifikat-auf-watchguard-firebox\/","title":{"rendered":"LetsEncrypt Zertifikat als Proxy-Zertifikat auf Watchguard Firebox"},"content":{"rendered":"<h3>Ziel<\/h3>\n<p>Setup eines kostenfreien SSL-Zertifikates zum Testen des TLS-Proxies auf einer Watchguard. F\u00fcr den weiteren Artikel wird hier @mail.meinedomain.de@ als Hostname vorausgesetzt.<\/p>\n<h3>Voraussetzung<\/h3>\n<ul>\n<li>DNS konfiguration: mail.meinedomain.de mu\u00df im DNS als A-Record und PTR-Record aufl\u00f6sbar sein<\/li>\n<li>WWW-Konfiguration: http:\/\/mail.meinedomain.de\/ mu\u00df auf einen Webserver zeigen, auf den man Zugriff hat, um die Authorisierungs-Dateien zu hinterlegen<\/li>\n<\/ul>\n<p><!--more--><\/p>\n<h3>Beispiel mit letsencrypt docroot<\/h3>\n<p>Zun\u00e4chst wird eine Policy in der Watchguard angelegt: ANY =&gt; SNAT:80 =&gt; zeigt auf den Linux-Server.<\/p>\n<p>Auf dem Linux-Server mu\u00df Letsencrypt installiert sein. Wer zun\u00e4chst das letsencrypt testen m\u00f6chte, verwendet die Staging-URL https:\/\/acme-staging.api.letsencrypt.org\/directory anstelle der Live-acme-V01 URL. \u00a0Damit kann man das Letsencrypt Setup testen, ohne in die Rate-Limits der Zertifikats-Stelle zu fallen.<\/p>\n<h4>Beantragen des Zertifikates<\/h4>\n<pre>.\/letsencrypt-auto certonly --webroot -w \/pfad\/zum\/documentroot\/ -d mail.meinedomain.de --server https:\/\/acme-v01.api.letsencrypt.org\/directory<\/pre>\n<p>Hierbei werden tempor\u00e4r unter dem webroot in .well-known\/acme-challenge\/ die Verifikations-Dateien abgelegt, daher ben\u00f6tigt man nat\u00fcrlich auch Schreibrechte dort. Die fertigen Zertifikate landen dann in einer Directory-Struktur unter \/etc\/letsencrypt\/&#8230;, unter live\/ liegen Symlinks auf das jeweilige aktuelle Zertifikat.<\/p>\n<pre>\/etc\/letsencrypt\/live\/mail.meinedomain.de\/cert.pem\r\n\/etc\/letsencrypt\/live\/mail.meinedomain.de\/chain.pem\r\n\/etc\/letsencrypt\/live\/mail.meinedomain.de\/fullchain.pem\r\n\/etc\/letsencrypt\/live\/mail.meinedomain.de\/privkey.pem<\/pre>\n<p>fullchain.pem ist beispielsweise die Datei f\u00fcr einen nginx, w\u00e4hrend cert, chain und privkey f\u00fcr den Apache ben\u00f6tigt werden.<\/p>\n<h3>Beispiel mit letsencrypt manual<\/h3>\n<p>falls man die letsencrypt Software nicht direkt auf dem Webserver installieren kann, kann man den manual mode verwenden, hierzu erstellt man das Zertifikat manuell:<\/p>\n<pre>openssl req \\\r\n -new -newkey rsa:2048 -sha256 -nodes \\\r\n -keyout privkey1.pem -out signreq.der -outform der \\\r\n -subj \"\/C=UK\/ST=Bundesland\/L=Musterhausen\/O=Technik\/emailAddress=postmaster@meinedomain.de\/CN=mail.meinedomain.de\" \\\r\n -reqexts SAN<\/pre>\n<p>und gibt den CSR dann per Letsencrypt weiter<\/p>\n<pre>letsencrypt certonly \\\r\n --authenticator manual \\\r\n --server https:\/\/acme-v01.api.letsencrypt.org\/directory --text \\\r\n --email postmaster@meinedomain.de \\\r\n --csr signreq.der<\/pre>\n<p>f\u00fcr jeden Zertifikatsnamen wird man dann aufgefordert, eine Datei in das .well-known\/ Verzeichnis zu legen.<\/p>\n<p><strong>Achtung: der Account hnter der E-MailAdresse sollte unbedingt Mails empfangen k\u00f6nnen.<\/strong><\/p>\n<h3>Installation der Zertifikate auf die Watchguard<\/h3>\n<p>Die Installation der Zertifikate auf die Watchguard ist etwas tricky, da Letsencrypt bisher nicht in allen Browsern verankert ist und daher deren Root-Authority von einer anderen CA cross-signiert wurde. Daher m\u00fcssen auf die Watchguard eine ganze Reihe von Zertifikaten installiert werden, und das in der richtigen Reihenfolge. Hierzu verwendet man den Firebox System Manager und editiert die Zertifikate (View-&gt;Certificates).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2283 size-full alignleft\" src=\"https:\/\/www.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/08\/import-cert.png\" alt=\"import-cert\" width=\"450\" height=\"450\" srcset=\"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/08\/import-cert.png 450w, https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/08\/import-cert-150x150.png 150w, https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/08\/import-cert-300x300.png 300w\" sizes=\"(max-width: 450px) 100vw, 450px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>\u00dcber den Import Certificate Button, anw\u00e4hlen von &#8220;IPSEC\/Web Server\/Other&#8221; kann man die Zertifkate importieren.<\/p>\n<p><strong>Es sind dies in dieser Reihenfolge:<\/strong><\/p>\n<p>* DST Root CA X3 (<a href=\"https:\/\/www.identrust.com\/certificates\/trustid\/root-download-x3.html\">https:\/\/www.identrust.com\/certificates\/trustid\/root-download-x3.html<\/a>) (hier mu\u00df ggf. der Anfangs (&#8212;&#8211;BEGIN CERTIFICATE&#8212;&#8211;) und Ende (&#8212;&#8211;END CERTIFICATE&#8212;&#8211;) Marker hinzugef\u00fcgt werden.<br \/>\n* ISRG Root X1 (<a href=\"https:\/\/letsencrypt.org\/certs\/isrgrootx1.pem.txt\">https:\/\/letsencrypt.org\/certs\/isrgrootx1.pem.txt<\/a>)<br \/>\n* Let&#8217;s Encrypt Authority X1 (<a href=\"https:\/\/letsencrypt.org\/certs\/lets-encrypt-x1-cross-signed.pem.txt\">https:\/\/letsencrypt.org\/certs\/lets-encrypt-x1-cross-signed.pem.txt<\/a>)<\/p>\n<p><strong>Was genau passiert hier?<\/strong><\/p>\n<p>zun\u00e4chst wird das DST Root Zertifikat auf die Box geladen (Root-Zertifikat von IdentTrust), anschlie\u00dfend das ISGRoot-Zertifikat der Letsencrypt Authority. Danach das cross-signierte Zertifikat, f\u00fcr das die beiden anderen vorher existieren m\u00fcssen. Mit dem letzten Zertifikat wurde schlie\u00dflich unser mail.meinedomain.de Zertifikat signiert.<\/p>\n<p>Zum Schlu\u00df wird also das mail.meinedomain.de Zertifikat auf die Box geladen. Achtung: Hier mu\u00df nicht nur das Zertifikat hochladen werden, sondern auch der Private-Key. Am besten beides zusammen in das Import-Paste-Window einf\u00fcgen. Als Zertifikatstyp wird nun Proxy Server ausgew\u00e4hlt.<\/p>\n<p>&nbsp;<\/p>\n<h4>Aktivieren von TLS im SMTP-Proxy<\/h4>\n<p>im der Incoming-SMTP-Proxy-Policy wird nun TLS aktiviert. Bitte gleich darauf achten, SSL2 abgeschaltet zu lassen &#8211; das kann inzwischen nicht mehr als sicher betrachtet werden. Wenn nun ein connect auf den entsprechenden Mailserver erfolgt, w\u00e4hlt die Watchguard gem\u00e4\u00df der Antwort des dahinterstehenden Mailservers (220 mail.meinedomain.de ESMTP) das entsprechende Zertifikat.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2282 aligncenter\" src=\"https:\/\/www.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/08\/enable-tls.png\" alt=\"enable-tls\" width=\"816\" height=\"806\" srcset=\"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/08\/enable-tls.png 816w, https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/08\/enable-tls-300x296.png 300w, https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/08\/enable-tls-768x759.png 768w, https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2016\/08\/enable-tls-800x790.png 800w\" sizes=\"(max-width: 816px) 100vw, 816px\" \/><\/p>\n<p>Im unteren Bereich k\u00f6nnen nun noch Regeln hinterlegt werden, an welche Ziel-Domains oder von welchen Sender-Domains TLS verwendet werden soll. Die Einstellungen reichen hierbei von &#8220;kein TLS verwenden&#8221; bis hin zu &#8220;TLS erzwingen&#8221;. Somit kann beispielsweise sichergestellt werden, da\u00df der Kommunikationskanal zu einem Empf\u00e4nger verschl\u00fcsselt ist. Das ersetzt nat\u00fcrlich keine saubere Ende-Zu-Ende Verschl\u00fcsselung, ist aber sicherlich besser als keine Verschl\u00fcsselung.<br \/>\nW\u00e4hlt man oben noch die OCSP-Validation an, so wird beim Aufbau der kommunikation das SSL-Zertifikat des Ziel-Servers validiert und bei einem ung\u00fcltigen Zertifikat abgelehnt. Weitere Informationen hierzu finden Sie in den Watchguard-Hilfe-Dokumenten.<\/p>\n<h4>Pr\u00fcfung des Setups<\/h4>\n<p>Von einem externen Linux-Server kann man das Setup wie folgt pr\u00fcfen:<\/p>\n<pre>openssl s_client -starttls smtp -connect mail.meinedomain.de:25<\/pre>\n<pre>die Antwort enth\u00e4lt dann Dinge wie:\r\n\r\nCONNECTED(00000003)\r\ndepth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X1\r\nverify error:num=20:unable to get local issuer certificate\r\nverify return:0\r\n---\r\nCertificate chain\r\n 0 s:\/CN=mail.meinedomain.de\r\n i:\/C=US\/O=Let's Encrypt\/CN=Let's Encrypt Authority X1\r\n 1 s:\/C=US\/O=Let's Encrypt\/CN=Let's Encrypt Authority X1\r\n i:\/O=Digital Signature Trust Co.\/CN=DST Root CA X3\r\n---\r\nServer certificate\r\n-----BEGIN CERTIFICATE-----\r\nMIIFXjCCBEagAwIBAgISAfc7Q9N4B0X+lNCJfc9C0Sz3MA0GCSqGSIb3DQEBCwUA\r\n[...]\r\nstInAEa1hihz\/Ls0eEapthU2YPFaC5KYb8GMIZcDjKBoIA==\r\n-----END CERTIFICATE-----\r\nsubject=\/CN=mail.meinedomain.de\r\nissuer=\/C=US\/O=Let's Encrypt\/CN=Let's Encrypt Authority X1\r\n[...]<\/pre>\n<p>Der vermutlich auftretende Fehler &#8220;unable to get local issuer certificate&#8221; kann ignoriert werden; um dies zu fixen, m\u00fc\u00dften auf der entsprechenden Linux-Box auch noch zus\u00e4tzlich alle signierenden Zertifikate hinterlegt werden, insbesondere das <em>Let&#8217;s Encrypt Authority X1<\/em> Zertifikat.<\/p>\n<p>Korrekterweise wird hier also angem\u00e4kelt, da\u00df einem der Signatur-Zertifikat nicht vertraut werden kann, weil es nicht im Lokalen Zertifikatsspeicher vorhanden ist. Das ist letzlich auch der Grund warum sich letsencrypt um eine Cross-Signatur von Identtrust bem\u00fcht hat.<\/p>\n<h3>Offizielles Zertifikat<\/h3>\n<p>Auch wenn das Setup mit Letsencrypt der Watchguard Firebox ein offizielles Zertifikat gegeben hat, empfehlen wir f\u00fcr die Verwendung als Mailgateway trotzdem ein kostenpflichtiges Zertifikat. Die Zertifikate von letsencrypt sind auf 3 Monate Limitiert, w\u00e4hrend offizielle Zertifikate \u00fcber mehrere Jahre laufen. Man erspart sich somit die Arbeit, das Zertifikat regelm\u00e4\u00dfig alle 8-10 Wochen zu tauschen. Bei den aktuellen Zertifikatspreisen von anderen Zertifizierungsstellen eine durchaus zu empfehlende Option.<\/p>\n<p>Falls Sie Unterst\u00fctzung im Bereich SSL-Zertifikate ben\u00f6tigen, sprecheen Sie uns bitte an.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ziel Setup eines kostenfreien SSL-Zertifikates zum Testen des TLS-Proxies auf einer Watchguard. F\u00fcr den weiteren Artikel wird hier @mail.meinedomain.de@ als Hostname vorausgesetzt. Voraussetzung DNS konfiguration: mail.meinedomain.de mu\u00df im DNS als A-Record und PTR-Record aufl\u00f6sbar sein WWW-Konfiguration: http:\/\/mail.meinedomain.de\/ mu\u00df auf einen Webserver zeigen, auf den man Zugriff hat, um die Authorisierungs-Dateien zu hinterlegen<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[362,3],"tags":[266,55,35],"class_list":["post-2281","post","type-post","status-publish","format-standard","hentry","category-howto","category-watchguard-technischer-blog","tag-letsencrypt","tag-proxy","tag-zertifikat"],"_links":{"self":[{"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/posts\/2281"}],"collection":[{"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/comments?post=2281"}],"version-history":[{"count":3,"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/posts\/2281\/revisions"}],"predecessor-version":[{"id":2428,"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/posts\/2281\/revisions\/2428"}],"wp:attachment":[{"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/media?parent=2281"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/categories?post=2281"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/tags?post=2281"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}