{"id":1765,"date":"2019-11-29T18:46:07","date_gmt":"2019-11-29T17:46:07","guid":{"rendered":"https:\/\/my.stargazer.at\/?p=1765"},"modified":"2019-11-29T18:47:56","modified_gmt":"2019-11-29T17:47:56","slug":"traefik-2-0-vs-insecure-ssl-certificates","status":"publish","type":"post","link":"https:\/\/my.stargazer.at\/de\/2019\/11\/29\/traefik-2-0-vs-insecure-ssl-certificates\/","title":{"rendered":"traefik 2.0 und unsichere SSL Zertifikate"},"content":{"rendered":"<p>Erstmal sollte ich vielleicht erkl\u00e4ren, warum man sich mit ung\u00fcltigen Zertifikaten herumschlagen m\u00f6chte. Das mag auf den ersten Blick zwar Pervers wie nur was erscheinen, aber es gibt in der Tat Webanwendungen, die nicht im Stande sind, korrekte SSL Zertifikate auszuliefern. Ein Paradebeispiel daf\u00fcr ist der Controller von Ubiquiti, wo es ein ziemlich steiler Akt w\u00e4re, dort herumzustochern.<\/p>\n<p>Da bei mir der Controller als Docker-Container l\u00e4uft, war f\u00fcr mich der n\u00e4chste logische Schritt, das Zertifikat durch einen Reverse-Proxy f\u00fcr mich auszutauschen. <a href=\"https:\/\/traefik.io\/\">Traefik<\/a> bietet sich da sehr gut an und steht als Draufgabe sogar in Version 2.0 als GA zur Verf\u00fcgung. Eine passende docker-compose Passage w\u00fcrde so aussehen:<\/p>\n<blockquote>\n<pre>services:\r\nunifi:\r\nimage: linuxserver\/unifi-controller\r\nrestart: unless-stopped\r\nports:\r\n- \"3478:3478\/udp\"\r\n- \"10001:10001\/udp\"\r\n- \"6789:6789\"\r\n- \"8080:8080\"\r\n- \"8880:8880\"\r\n- \"8443:8443\"\r\n- \"8843:8843\"\r\nnetworks:\r\n- traefik_proxy\r\nlabels:\r\n- \"traefik.enable=true\"\r\n- \"traefik.http.routers.unifi.rule=Host(`${UNIFI_HOSTNAME}`)\"\r\n- \"traefik.http.routers.unifi.entrypoints=http\"\r\n- \"traefik.http.middlewares.unifi.redirectscheme.scheme=https\"\r\n\r\n- \"traefik.http.routers.unifi-secure.rule=Host(`${UNIFI_HOSTNAME}`)\"\r\n- \"traefik.http.routers.unifi-secure.entryPoints=https\"\r\n- \"traefik.http.routers.unifi-secure.tls=true\"\r\n- \"traefik.http.services.unifi-secure.loadbalancer.server.port=8443\"\r\n- \"traefik.http.services.unifi-secure.loadbalancer.server.scheme=https\"\r\n\r\nenvironment:\r\n- TZ=\"Europe\/Vienna\"\r\nvolumes:\r\n- type: volume\r\nsource: unifi_data\r\ntarget: \/config\r\nvolume:\r\nnocopy: true<\/pre>\n<\/blockquote>\n<p>Und genau da patzt dann traefik 2.0 mit dem Ignorieren der Validit\u00e4t des SSL Zertifikats, sodass man gezwungen ist, auf die n\u00e4chste Version 2.1 auszuweichen, welche noch nicht offiziell released wurde. Bugs dieser Funktion scheinen aber &#8211; sofern man Github Issues trauen kann &#8211; vor einer geraumen Weile gemeldet worden sein.<\/p>\n<p>Die passende Fehlermeldung dazu findet sich im Debug Log:<\/p>\n<blockquote><p>&#8218;500 Internal Server Error&#8216; caused by: x509: cannot validate certificate for 172.21.0.2 because it doesn&#8217;t contain any IP SANs<\/p><\/blockquote>\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>Erstmal sollte ich vielleicht erkl\u00e4ren, warum man sich mit ung\u00fcltigen Zertifikaten herumschlagen m\u00f6chte. Das mag auf den ersten Blick zwar Pervers wie nur was erscheinen, aber es gibt in der Tat Webanwendungen, die nicht im Stande sind, korrekte SSL Zertifikate auszuliefern. Ein Paradebeispiel daf\u00fcr ist der Controller von Ubiquiti, wo es ein ziemlich steiler Akt w\u00e4re, dort herumzustochern. [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":1634,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[620,649],"class_list":["post-1765","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-it-related-stuff","tag-docker","tag-ubiquiti"],"_links":{"self":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/posts\/1765","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/comments?post=1765"}],"version-history":[{"count":0,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/posts\/1765\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/media\/1634"}],"wp:attachment":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/media?parent=1765"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/categories?post=1765"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/tags?post=1765"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}