{"id":1584,"date":"2014-12-14T18:30:47","date_gmt":"2014-12-14T17:30:47","guid":{"rendered":"http:\/\/blog.benny-baumann.de\/?p=1584"},"modified":"2014-12-15T14:02:23","modified_gmt":"2014-12-15T13:02:23","slug":"ssl-mit-wordpress-hinter-reverse-proxy","status":"publish","type":"post","link":"https:\/\/blog.benny-baumann.de\/?p=1584","title":{"rendered":"SSL mit WordPress hinter Reverse Proxy"},"content":{"rendered":"<p>Nachdem mein Server-Setup letztens nach dem Umzug auf neue Hardware ja etwas umgebaut wurde, hatte ich mit meinem Blog ein wenig zu K\u00e4mpfen, da das Blog aus Performance-Gr\u00fcnden nur interne IPs mit HTTP-Requests sieht (die externen IPs sind via Header auch sichtbar). Entsprechend war das Blog auch bei Abruf \u00fcber SSL st\u00e4ndig der Meinung die Resourcen mit HTTP, also ohne Verschl\u00fcsslung abzurufen.<!--more--><\/p>\n<p>Ursache f\u00fcr dieses Ph\u00e4nomen ist, dass die Funktion is_ssl() von WordPress nicht mit Reverse-Proxy-Konfigurationen kann, und daher das Request-Schema der internen Verbindung f\u00fcr die Entscheidung heranzieht. Dies l\u00e4sst sich aber leicht \u00e4ndern.<\/p>\n<p>Mit zwei kleinen \u00c4nderungen kann man WordPress vorgaukeln, dass die interne Verbindung HTTPS nutzt. Hierzu f\u00fcgt man in seiner wp-config.php folgende Zeilen vor dem Include der wp-settings.php ein:<\/p>\n<pre lang=\"php\" escaped=\"false\">\r\nif (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {\r\n    $_SERVER['HTTPS']='on';\r\n}\r\n<\/pre>\n<p>Nun muss man im Reverse-Proxy nur noch f\u00fcr eine korrekte Weitergabe der Information zum Protokoll der urspr\u00fcnglichen Verbindung sorgen. In meinem Fall mit nginx ist das exakt eine Zeile:<\/p>\n<pre lang=\"nginx\" escaped=\"false\">\r\nproxy_set_header X-Forwarded-Proto $scheme;\r\n<\/pre>\n<p>Und siehe da: Nun klappt das auch mit dem WordPress und SSL.<\/p>\n<p class=\"wp-flattr-button\"><a href=\"https:\/\/blog.benny-baumann.de\/?flattrss_redirect&amp;id=1584&amp;md5=c060a61f98072b88eb4401afdcca2aa7\" title=\"Flattr\" target=\"_blank\"><img src=\"http:\/\/blog.benny-baumann.de\/wp-content\/plugins\/flattr\/img\/flattr-badge-large.png\" srcset=\"http:\/\/blog.benny-baumann.de\/wp-content\/plugins\/flattr\/img\/flattr-badge-large.png\" alt=\"Flattr this!\"\/><\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Nachdem mein Server-Setup letztens nach dem Umzug auf neue Hardware ja etwas umgebaut wurde, hatte ich mit meinem Blog ein wenig zu K\u00e4mpfen, da das Blog aus Performance-Gr\u00fcnden nur interne IPs mit HTTP-Requests sieht (die externen IPs sind via Header auch sichtbar). Entsprechend war das Blog auch bei Abruf \u00fcber SSL st\u00e4ndig der Meinung die [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[4],"tags":[8,344,21,346,50,80,336],"class_list":["post-1584","post","type-post","status-publish","format-standard","hentry","category-server","tag-blogs","tag-nginx","tag-php","tag-server","tag-ssl","tag-umzug","tag-wordpress"],"_links":{"self":[{"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=\/wp\/v2\/posts\/1584","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1584"}],"version-history":[{"count":5,"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=\/wp\/v2\/posts\/1584\/revisions"}],"predecessor-version":[{"id":1591,"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=\/wp\/v2\/posts\/1584\/revisions\/1591"}],"wp:attachment":[{"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1584"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1584"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1584"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}