{"id":3836,"date":"2026-03-07T23:30:19","date_gmt":"2026-03-07T14:30:19","guid":{"rendered":"https:\/\/kiwamaqs.com\/weblog\/?p=3836"},"modified":"2026-03-07T23:30:23","modified_gmt":"2026-03-07T14:30:23","slug":"caddy-installation","status":"publish","type":"post","link":"https:\/\/kiwamaqs.com\/weblog\/caddy-installation\/","title":{"rendered":"Mac mini \u30b5\u30fc\u30d0\u30fc\u3067 Apache \u306e 80\/443 \u3092 Caddy \u306b\u79fb\u884c\u3059\u308b\uff08Reverse Proxy \u69cb\u6210)"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\u81ea\u5b85\u30b5\u30fc\u30d0\u30fc\u3067 Apache \u3092\u76f4\u63a5 80\/443 \u3067\u516c\u958b\u3057\u3066\u3044\u305f\u304c\u3001SSL\u7ba1\u7406\u3084\u30b5\u30fc\u30d3\u30b9\u8ffd\u52a0\u3092\u7c21\u5358\u306b\u3059\u308b\u305f\u3081&nbsp;<strong>Caddy \u3092\u30d5\u30ed\u30f3\u30c8\u306b\u7f6e\u304f\u69cb\u6210<\/strong>\u306b\u5909\u66f4\u3057\u305f\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u69cb\u6210\u3068\u3057\u3066\u306f\u4ee5\u4e0b\u306b\u306a\u308b\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Internet<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cloudflare<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Caddy (80\/443)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Apache (8080)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">WordPress<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u306e\u69cb\u6210\u306b\u3059\u308b\u3068<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>SSL\u7d42\u7aef\u3092 Caddy \u306b\u7d71\u4e00\u3067\u304d\u308b<\/li>\n\n\n\n<li>reverse proxy \u3067\u30b5\u30fc\u30d3\u30b9\u8ffd\u52a0\u304c\u7c21\u5358<\/li>\n\n\n\n<li>Apache \u8a2d\u5b9a\u304c\u30b7\u30f3\u30d7\u30eb\u306b\u306a\u308b<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u4ee5\u4e0b\u306b&nbsp;<strong>\u5b8c\u5168\u30b3\u30d4\u30da\u53ef\u80fd\u306a\u624b\u9806<\/strong>\u3092\u307e\u3068\u3081\u308b\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>1 Apache \u3092 8080 \u306b\u5909\u66f4<\/strong><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\u307e\u305a Apache \u304c\u4f7f\u7528\u3059\u308b\u30dd\u30fc\u30c8\u3092\u5909\u66f4\u3059\u308b\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo nano \/usr\/local\/etc\/httpd\/httpd.conf<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Listen \u3092\u5909\u66f4\u3059\u308b\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Listen 8080<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ServerName \u3082\u5ff5\u306e\u305f\u3081\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ServerName localhost:8080<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4fdd\u5b58\u5f8c\u3001\u8a2d\u5b9a\u78ba\u8a8d\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">httpd -t<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Apache \u518d\u8d77\u52d5\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">brew services restart httpd<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u52d5\u4f5c\u78ba\u8a8d\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">curl -I http:\/\/localhost:8080<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>2 HTTPS\u5f37\u5236\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u3092\u505c\u6b62<\/strong><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\u4ee5\u524d Apache \u3067 HTTPS \u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u3092\u8a2d\u5b9a\u3057\u3066\u3044\u308b\u3068<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Caddy \u3068\u30eb\u30fc\u30d7\u3059\u308b<\/strong>\u305f\u3081\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\u3059\u308b\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo nano \/usr\/local\/etc\/httpd\/httpd.conf<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4ee5\u4e0b\u3092\u7121\u52b9\u5316\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#RewriteCond %{HTTPS} off<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#RewriteRule ^(.*)$ https:\/\/%{HTTP_HOST}%{REQUEST_URI} [R=301,L]<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>3 Caddy \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/strong><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">brew install caddy<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>4 Caddyfile \u4f5c\u6210<\/strong><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">sudo nano \/usr\/local\/etc\/Caddyfile<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4ee5\u4e0b\u3092\u66f8\u304f\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">example.com, www.example.com {<br>tls \/path\/to\/fullchain.pem \/path\/to\/privkey.pem<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">reverse_proxy&nbsp;127.0.0.1:8080&nbsp;{<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp; &nbsp;&nbsp;header_up Host {host}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp; &nbsp;&nbsp;header_up X-Forwarded-Host {host}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp; &nbsp;&nbsp;header_up X-Forwarded-Proto https<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp; &nbsp;&nbsp;header_up X-Forwarded-Port&nbsp;443<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>5 Caddy \u8a2d\u5b9a\u78ba\u8a8d<\/strong><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">caddy validate \u2013config \/usr\/local\/etc\/Caddyfile<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6b63\u5e38\u306a\u3089<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Valid configuration<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u3068\u8868\u793a\u3055\u308c\u308b\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>6 Caddy \u8d77\u52d5<\/strong><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">brew services start caddy<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u78ba\u8a8d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">brew services list<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>7 \u30dd\u30fc\u30c8\u78ba\u8a8d<\/strong><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">sudo lsof -i :80 -i :443 -i :8080<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u671f\u5f85\u3055\u308c\u308b\u72b6\u614b<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">caddy&nbsp;&nbsp;LISTEN :80<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">caddy&nbsp;&nbsp;LISTEN :443<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">httpd&nbsp;&nbsp;LISTEN :8080<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>8 \u52d5\u4f5c\u78ba\u8a8d<\/strong><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">DNS \u3092\u4f7f\u308f\u305a\u30ed\u30fc\u30ab\u30eb\u30c6\u30b9\u30c8\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">curl -k -I \u2013resolve example.com:443:127.0.0.1 https:\/\/example.com<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6210\u529f\u4f8b<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">HTTP\/2 200<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">server: Apache<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">via: 1.1 Caddy<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>9 IPv6 \u78ba\u8a8d<\/strong><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">IPv6 \u3067\u63a5\u7d9a\u30c6\u30b9\u30c8\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">curl -6 https:\/\/example.com<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6210\u529f\u3059\u308c\u3070 IPv6 \u516c\u958b\u3082\u6b63\u5e38\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0<\/strong><\/h1>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Apache \u304c\u8d77\u52d5\u3057\u306a\u3044<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Address already in use<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u306e\u5834\u5408\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">lsof -i :8080<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u30dd\u30fc\u30c8\u7af6\u5408\u3092\u78ba\u8a8d\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>301 \u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u30eb\u30fc\u30d7<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u539f\u56e0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">RewriteCond %{HTTPS}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Apache \u5074\u306e HTTPS \u5f37\u5236\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u89e3\u6c7a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">RewriteCond %{HTTPS}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">RewriteRule<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u3092\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>DNS \u3092\u4f7f\u308f\u305a\u30c6\u30b9\u30c8<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">curl \u2013resolve domain:443:127.0.0.1 https:\/\/domain<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>IPv6 \u78ba\u8a8d<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">dig AAAA example.com<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>\u6700\u7d42\u69cb\u6210<\/strong><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Internet<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cloudflare<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Caddy :443<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Apache :8080<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">WordPress<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u306e\u69cb\u6210\u306b\u3088\u308a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>SSL\u7ba1\u7406\u306e\u7c21\u7565\u5316<\/li>\n\n\n\n<li>reverse proxy \u306b\u3088\u308b\u30b5\u30fc\u30d3\u30b9\u8ffd\u52a0<\/li>\n\n\n\n<li>Apache \u8a2d\u5b9a\u306e\u5358\u7d14\u5316<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u304c\u5b9f\u73fe\u3067\u304d\u308b\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5bb6\u5ead\u30b5\u30fc\u30d0\u30fc\u3067\u3082\u975e\u5e38\u306b\u6271\u3044\u3084\u3059\u3044\u69cb\u6210\u3067\u3042\u308b\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u81ea\u5b85\u30b5\u30fc\u30d0\u30fc\u3067 Apache \u3092\u76f4\u63a5 80\/443 \u3067\u516c\u958b\u3057\u3066\u3044\u305f\u304c\u3001SSL\u7ba1\u7406\u3084\u30b5\u30fc\u30d3\u30b9\u8ffd\u52a0\u3092\u7c21\u5358\u306b\u3059\u308b\u305f\u3081&nbsp;Caddy \u3092\u30d5\u30ed\u30f3\u30c8\u306b\u7f6e\u304f\u69cb\u6210\u306b\u5909\u66f4\u3057\u305f\u3002 \u69cb\u6210\u3068\u3057\u3066\u306f\u4ee5\u4e0b\u306b\u306a\u308b\u3002 Internet \u2193 Cl [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"_lightning_design_setting":{"layout":"default"},"footnotes":""},"categories":[4],"tags":[],"class_list":["post-3836","post","type-post","status-publish","format-standard","hentry","category-mac"],"_links":{"self":[{"href":"https:\/\/kiwamaqs.com\/weblog\/wp-json\/wp\/v2\/posts\/3836","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kiwamaqs.com\/weblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kiwamaqs.com\/weblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kiwamaqs.com\/weblog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/kiwamaqs.com\/weblog\/wp-json\/wp\/v2\/comments?post=3836"}],"version-history":[{"count":1,"href":"https:\/\/kiwamaqs.com\/weblog\/wp-json\/wp\/v2\/posts\/3836\/revisions"}],"predecessor-version":[{"id":3837,"href":"https:\/\/kiwamaqs.com\/weblog\/wp-json\/wp\/v2\/posts\/3836\/revisions\/3837"}],"wp:attachment":[{"href":"https:\/\/kiwamaqs.com\/weblog\/wp-json\/wp\/v2\/media?parent=3836"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kiwamaqs.com\/weblog\/wp-json\/wp\/v2\/categories?post=3836"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kiwamaqs.com\/weblog\/wp-json\/wp\/v2\/tags?post=3836"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}